Github action not triggering gh-pages upon push

It would be really handy if GitHub Actions can trigger GitHub Pages build using GITHUB_TOKEN.

You can do the “workaround” using SSH deploy keys, but it’s adding complexity and I’m not sure if this can be automated if you have many GitHub repos.

When you use GITHUB_TOKEN there is nothing to configure - you just create “GitHub Action” and you are done.

Thank you…


It seems to have been established that it is a bug by now. The fact it works as expected with private repositories, like reported by @bryanschuetz and tested by @peaceiris , but not with public repositories is an inconsistency in itself that can not be considered in another way than a bug.

Let’s just hope that the Github team will solve it one day or another ^^


I can confirm that a Private repository does “fix” the issue. It’s still a bit of a weird scenario and the error message really doesn’t help troubleshooting the issue :slight_smile:


I ran into this issue too.

While I was developing the action in private repository, it worked fine. But once I published it, deploying gh-pages started to fail.


Finally, GitHub Actions is going to be GA today. Thank you, the GitHub support team and the community. Also, I hope that this issue will be considered after Actions become stable.


As of last week I’m not even able to deloy using an access token anymore. Has something changed? I just end up with Page Build Errorr everytime. 

Edit: This was resolved by changing actions/checkout@master to actions/checkout@v1.


@ethomson Just re-iterating that this is still not working for public repositories, even after the General Availablity. You can push to the gh-pages branch with a GITHUB_TOKEN, but the push does not trigger a GitHub pages deploy.

Doing something else to trigger a deploy (like a manual empty commit) does trigger a deploy with the updated content however.


Seeing this same issue in my public repo. My action is setup on a schedule, so the ‘avoiding recursive actions’ feature should not even apply to this action. Also, I’m using checkout@v2. Action:


Also experienced this issue. Pushing to public repo with ${{ secrets.GITHUB_TOKEN }} does not trigger a successful github pages build. Manual workaround is to change the branch which github pages is to deploy for a moment and then change it back to the original branch.

- name: Deploy
      uses: peaceiris/actions-gh-pages@v2.8.0
        PUBLISH_BRANCH: master
        PUBLISH_DIR: ./public
        keepFiles: true

I modify my  configuration here , now it is success. You should add  SSH deploy key following this :

1 Like

@lovepoem, as commented in, using a deployment key is not a solution, but an (uncomfortable) workaround. The default GITHUB_TOKEN allows to push changes to a branch of the same repo (which can be ‘gh-pages’). The issue is on GitHub’s deployment feature refusing to pick the commits pushed by the bot.

Yes. Deployment key option is a current workaround better than a personal access token (PAT has too large scope). I hope that GitHub Pages build event can be triggered by GITHUB_TOKEN on a public repository. (GITHUB_TOKEN can trigger the event on a private repository.)

Even the Personal Access Token seems to not trigger the update these days.


Correct, just tried today with my personal token and the push is not trigering the build. I had to request a build manually using the GH API:

- name: Request Github Pages build job
        run: >-
          curl -L -X POST
          -H "Content-Type: application/json"
          -H "Authorization: token ${{ secrets.GH_PAT}}"
          "${{ github.repository }}/pages/builds"

@xotl - when you manually used the GH API to request the pages build, which permission(s) did your personal access token require to work?

@bwvolleyball, I used t public_repo scope, but if your repo is a private repo you might need the whole repo scope.


Now, I tested deployment with github_token using the GitHub Pages Action on some public repositories. It looks working well…

I do not know any official announcement of the GitHub starts to support triggering the GitHub Pages build event using GITHUB_TOKEN on public repositories…


Yup, I can confirm on my end that the GITHUB_TOKEN secret works for deploying code on the gh-pages branch.

You can view a relevant commit where I reverted the current token (a PAT) to the GITHUB_TOKEN secret here and the deployment run here.

1 Like

Looks like a Personal Access Token is not required anymore to trigger a page build on a public repository. Everything seems to work for me on several repositories with the built-in GITHUB_TOKEN using :

name: website

on: push

    runs-on: ubuntu-latest
        name: Checkout
        uses: actions/checkout@v1
        name: Build
        run: |
          mkdir public
          cat > public/index.html <<EOL
          <!doctype html>
              <title>GitHub Pages deployed!</title>
              <p>GitHub Pages with <strong>${{ github.sha }}</strong> commit ID has been deployed through <a href="">GitHub Pages action</a> successfully.</p>
        name: Deploy
        if: success()
        uses: crazy-max/ghaction-github-pages@v1
          target_branch: gh-pages
          build_dir: public
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

1 Like

To visitors,

This problem has been already fixed about 3 months ago.

Now, the GITHUB_TOKEN works well for deploying to GitHub Pages on public repositories and private repositories.

- uses: peaceiris/actions-gh-pages@v3
    github_token: ${{ secrets.GITHUB_TOKEN }}
    publish_dir: ./public

1 Like