How to force GitHub Pages build?

前端 未结 9 1575
天涯浪人
天涯浪人 2020-12-12 14:41

Every GitHub repository can have (or be) a GitHub Pages website, that can be built with Jekyll. GitHub builds the site every time you push a new commit.
Is there a way t

相关标签:
9条回答
  • 2020-12-12 15:04

    Even after I pushed my changes to GitHub repository, I was not able to see the changes today. Then I checked my repository settings for more information, there I could see, all these times the build was failing and that was the reason I was not able to see the changes.

    You may also see a message as "Your site is having problems building: Unable to build page. Please try again later."

    Then I was checking my recent commits and tried to find out what causes this issue. At the end I was able to fix the issue.

    There was an additional comma in the tags (,) and that caused this issue.

    You will not get relevant error messages if there are any issues in your .md file. I recommend you to check for the build status and compare the changes if you are facing the same issue.

    0 讨论(0)
  • 2020-12-12 15:09

    If you want a quick script solution, here it is. Just do the following tasks only once, and run the script whenever you want to rebuild your GitHub page.

    1. Create a personal access token for the command line:

    • Follow the official help here to create a personal access token. Basically, you have to log in your GitHub account and go to: Settings > Developer settings > Personal access tokens > Generate new token.
    • Tick repo scope.
    • Copy the token.

    2. Create the following script:

    • Create a file called RebuildPage.sh and add the lines:

      #!/bin/bash
      curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds
      

      Here,

      • Replace yourname with your GitHub username.
      • Replace yourtoken with your copied personal access token.
      • Replace yourrepo with your repository name.

    3. Run the script:

    • If you use Windows 10:

      • You need to setup Windows Subsystem for Linux, if not already done. Follow this to do so.
      • Remove the first line (#!/bin/bash) from the script and save the script as RebuildPage.bat. (i.e., replace .sh with .bat in the script file name)
      • Alternative to the above point: To get the double-click feature for running the .sh file:

        • Set bash.exe as the default program for .sh files.
        • Open regedit.exe and edit HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command. Set the (Default) value to:

          "C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
          
      • Now double-click the script wheneven you want to rebuild your GitHub page. Done!

    • If you use Linux/Mac, running the script is as same as running other scripts. Done!

    Additional notes for the solution:

    This solution utilizes a API of GitHub REST API v3. Here is the official documentation for the API.

    0 讨论(0)
  • 2020-12-12 15:09

    I had this problem for a while, and pushing to master branch didn't change anything on myapp.github.io, for two reasons :

    1 - Build

    No matter how many time I tried to push my work on master, build would not start. I found a workaround by modifying my file in Github online editor (open your index.html and edit it on Github website, then commit)

    2 - Caching issues

    Even after a successful build, I would still see the exact same page on myapp.github.io, and hard reloading with Ctrl + Shift + R wouldn't solve it. Instead, if using Chrome, inspect your page, head into the Application tab, select "Clear storage" in the left menu, and click on "Clear site data" at the bottom of the menu.

    0 讨论(0)
  • 2020-12-12 15:13

    The empty commit didn't work for me, but based on @benett answer, this worked for me:

    Open Postman, create a new request with this URL: https://api.github.com/repos/[user_name]/[repo_name]/pages/builds (replace with your name and repo), and select POST method.

    Before you run it, go to the headers tab and add a new key Accept with the value application/vnd.github.mister-fantastic-preview+json

    Now you can run it and visit your pages again.

    0 讨论(0)
  • 2020-12-12 15:15

    Now that GitHub Actions are available, this is trivial to do:

    # File: .github/workflows/refresh.yml
    name: Refresh
    
    on:
      schedule:
        - cron:  '0 3 * * *' # Runs every day at 3am
    
    jobs:
      refresh:
        runs-on: ubuntu-latest
        steps:
          - name: Trigger GitHub pages rebuild
            run: |
              curl --fail --request POST \
                --url https://api.github.com/repos/${{ github.repository }}/pages/builds \
                --header "Authorization: Bearer $USER_TOKEN"
            env:
              # You must create a personal token with repo access as GitHub does
              # not yet support server-to-server page builds.
              USER_TOKEN: ${{ secrets.USER_TOKEN }}
    

    Sample repo that does this: https://github.com/SUPERCILEX/personal-website/actions

    Pages API: https://developer.github.com/v3/repos/pages/#request-a-page-build

    0 讨论(0)
  • 2020-12-12 15:16

    I was having trouble refreshing even though my Github Actions was showing that my site has been deployed.

    Toggling the publishing source did the trick for me. I switched the publishing source from master to content and then back to master. You can check how to change the publishing source of the branch here

    0 讨论(0)
提交回复
热议问题