如何强制GitHub Pages构建?

Pie*_*tti 92 github-pages

每个GitHub存储库都可以拥有(或者是)GitHub Pages网站,可以使用Jekyll构建.每次推送新提交时,GitHub都会构建网站.
有没有办法在不推送新提交的情况下强制刷新Github Pages网站?

Pie*_*tti 138

来自GitHub支持,2014-06-07:

目前无法手动触发重建,无需将提交推送到适当的分支.


编辑:

正如Andy在评论中指出的那样,您可以使用以下命令推送空提交:

git commit -m 'rebuild pages' --allow-empty
git push origin <branch-name>
Run Code Online (Sandbox Code Playgroud)

  • 如果您像我一样幸运,还请检查Github的状态,因为它们可能不可用或后台作业/构建有问题。 (2认同)

arn*_*bpl 23

如果你想要一个快速的脚本解决方案,这里是。只需执行以下任务一次,并在您想要重建 GitHub 页面时运行该脚本。

1. 为命令行创建个人访问令牌:

  • 按照此处的官方帮助创建个人访问令牌。基本上,您必须登录您的 GitHub 帐户并转到:Settings > Developer settings > Personal access tokens > Generate new token
  • 勾选repo范围。
  • 复制令牌。

2. 创建以下脚本:

  • 创建一个名为的文件RebuildPage.sh并添加以下行:

    #!/bin/bash
    curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds
    
    Run Code Online (Sandbox Code Playgroud)

    这里,

    • 替换yourname为您的 GitHub 用户名。
    • 替换yourtoken为您复制的个人访问令牌。
    • 替换yourrepo为您的存储库名称。

3. 运行脚本:

  • 如果您使用的是 Windows 10:

    • 如果尚未完成,您需要为 Linux设置Windows 子系统。按照操作。
    • #!/bin/bash从脚本中删除第一行 ( ) 并将脚本另存为RebuildPage.bat. (即替代.sh.bat在脚本文件名)
    • 上述观点的替代方法:要获得运行.sh文件的双击功能:

      • 设置bash.exe.sh文件的默认程序。
      • 打开regedit.exe并编辑HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command。将(Default)值设置为:

        "C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
        
        Run Code Online (Sandbox Code Playgroud)
    • 现在即使您想重建 GitHub 页面,也可以双击该脚本。完毕!

  • 如果您使用 Linux/Mac,运行该脚本与运行其他脚本相同。完毕!

解决方案的附加说明:

此解决方案使用 GitHub REST API v3 的 API。是 API 的官方文档。


SUP*_*LEX 9

现在 GitHub Actions 可用,这很简单:

# 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 }}
Run Code Online (Sandbox Code Playgroud)

执行此操作的示例存储库:https : //github.com/SUPERCILEX/personal-website/actions

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


Ben*_*ger 7

从 GitHub API v3 开始,这是可行的,尽管目前处于预览状态 https://developer.github.com/v3/repos/pages/#request-a-page-build

POST /repos/:owner/:repo/pages/builds
Run Code Online (Sandbox Code Playgroud)


Pie*_*ran 6

我有一阵子遇到这个问题,并且推送到master分支上并没有改变任何东西myapp.github.io,原因有两个:

1-建立

无论我尝试将其工作推向master多少次,构建都不会启动。我通过在Github在线编辑器中修改文件找到了一种解决方法(打开index.html并在Github网站上进行编辑,然后提交)

2-缓存问题

即使构建成功后,我仍然会在上看到完全相同的页面myapp.github.io,并且用硬重新加载Ctrl + Shift + R也无法解决它。相反,如果使用Chrome,请检查您的页面,进入Application标签,在左侧菜单中选择“清除存储”,然后单击菜单底部的“清除站点数据”。


ant*_*oni 5

空的提交对我不起作用,但是基于@benett答案,这对我有用:

打开邮递员,使用以下URL创建一个新请求:https ://api.github.com/repos/ [user_name] / [repo_name] / pages / builds (用您的名称和repo替换),然后选择POST方法。

在运行它之前,请转到headers选项卡并添加一个Accept具有以下值的新密钥application/vnd.github.mister-fantastic-preview+json

现在,您可以运行它并再次访问您的页面。


Sib*_*enu 5

即使在将更改推送到GitHub存储库后,今天仍然看不到更改。然后,我检查了存储库设置以获取更多信息,在那里,所有这些时间我都可以看到构建失败,这就是我无法看到更改的原因。

在此处输入图片说明

您可能还会看到一条消息“您的站点在构建时出现问题:无法构建页面。请稍后重试。”

然后,我检查了我最近的提交,并试图找出导致此问题的原因。最后,我能够解决此问题。

在此处输入图片说明

标签(,)中还有一个逗号,引起了这个问题

在此处输入图片说明

如果您的.md文件中有任何问题,您将不会收到相关的错误消息。如果您遇到相同的问题,建议您检查构建状态并比较更改。