web-dev-qa-db-ja.com

GitHubページのビルドを強制する方法は?

すべてのGitHubリポジトリは、 have (- またはbe )a GitHub Pages Jekyllで構築できるWebサイトを作成できます。 GitHubは、新しいコミットをプッシュするたびにサイトを構築します。
新しいコミットをプッシュせずにGithubページWebサイトを強制的に更新する方法はありますか?

85
Pierre Prinetti

GitHubサポートから、2014-06-07:

現在、適切なブランチにコミットをプッシュせずに、手動で再構築をトリガーすることはできません。


編集:

Andyがコメントで指摘したように、次のコマンドで空のコミットをプッシュできます。

git commit -m 'rebuild pages' --allow-empty
git Push Origin <branch-name>
130
Pierre Prinetti

私はしばらくこの問題を抱えていましたが、マスターブランチにプッシュしても_myapp.github.io_で何も変わりませんでした。

1-ビルド

何度マスターに作業をプッシュしようとしても、ビルドは開始されません。 Githubオンラインエディターでファイルを変更して回避策を見つけました(index.htmlを開いてGithub Webサイトで編集し、コミットします)

2-キャッシュの問題

ビルドが成功した後でも、_myapp.github.io_にまったく同じページが表示されますが、_Ctrl + Shift + R_でハードリロードしても解決しません。代わりに、Chromeを使用している場合は、ページを調べてApplicationタブに移動し、左側のメニューで[ストレージを消去]を選択し、メニューの下部にある[サイトデータを消去]をクリックします。

6

簡単なスクリプトソリューションが必要な場合は、こちらをご覧ください。次のタスクを1回だけ実行し、GitHubページを再構築するたびにスクリプトを実行します。

1.コマンドラインの個人用アクセストークンを作成します。

  • 公式ヘルプ here に従って、パーソナルアクセストークンを作成します。基本的に、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 -H "Accept: application/vnd.github.mister-fantastic-preview+json"
    

    ここに、

    • yournameをGitHubユーザー名に置き換えます。
    • yourtokenをコピーした個人アクセストークンに置き換えます。
    • yourrepoをリポジトリ名に置き換えます。

3.スクリプトを実行します。

  • Windows 10を使用している場合:

    • Linux用Windowsサブシステムをセットアップする必要があります(まだ完了していない場合)。 this に従ってください。
    • スクリプトから最初の行(#!/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')\";"
        
    • GitHubページを再構築する場合でも、スクリプトをダブルクリックします。完了!

  • Linux/Macを使用している場合、スクリプトの実行は他のスクリプトの実行と同じです。できた!

ソリューションに関する追加の注意事項:

このソリューションは、GitHub REST API v3。 Here のプレビューAPIを使用しています。APIの公式ドキュメントです。

4
arnobpl

空のコミットは私にとってはうまくいきませんでしたが、@ benettの答えに基づいて、これは私にとってはうまくいきました:

Postmanを開き、次のURLで新しいリクエストを作成します: https://api.github.com/repos/ [user_name]/[repo_name]/pages/builds (名前とリポジトリに置き換えて)、POST method。

実行する前に、headersタブに移動し、値application/vnd.github.mister-fantastic-preview+jsonを持つ新しいキーAcceptを追加します

これで、それを実行して、再びページにアクセスできます。

4
antoni

変更をGitHubリポジトリにプッシュした後でも、今日は変更を確認できませんでした。その後、リポジトリの設定で詳細を確認しましたが、ビルドが失敗していたので、変更を確認できませんでした。

enter image description here

「サイトの構築に問題があります:ページを構築できません。しばらくしてからもう一度お試しください」というメッセージが表示される場合もあります。

次に、最近のコミットをチェックして、この問題の原因を見つけようとしました。最後に、問題を修正することができました。

enter image description here

タグ(、)に追加のコンマが含まれていたため、この問題が発生しました

enter image description here

.mdファイルに問題がある場合、関連するエラーメッセージは表示されません。同じ問題に直面している場合は、ビルドステータスを確認し、変更を比較することをお勧めします。

4
Sibeesh Venu

これはGitHub API v3の時点で実行可能ですが、現在プレビュー中です https://developer.github.com/v3/repos/pages/#request-a-page-build

POST /repos/:owner/:repo/pages/builds
3

代替ソリューション

GitHubから、Jekyllがgh-pagesにプッシュしたときにサイトの構築に成功しなかったことを知らせるメールを受信した可能性があります。この場合、Pushに別のビルドをトリガーさせることができます。

最終Webサイト専用のフォルダー(publicフォルダーなど)を使用する場合、フォルダーを再構築して、コミットされた変更にフォルダーを追加することができます。その後、これらのファイルをgh-pagesブランチに分割し、ファイルがまったく変更されていない場合でも別のビルドをトリガーする必要があります。以下のコードの残りの部分では、便宜上publicフォルダーのコミットを削除し、ローカルファイルシステムから削除します。

コード

git add public
git commit -am ":bug: triggering another jekyll build"
git Push Origin $(git subtree split --prefix public master):gh-pages --force
git reset HEAD~1
rm -rf public

ヒント

最終サイトの一部ではないコミットされていない変更がある場合は、次のコマンドを使用してそれらを隠します。

git stash

次に、上記のコマンドを実行して、手動でJekyllビルドを強制し、それらをアンスタッシュします。

git stash pop

参照資料

0
Amin NAIRI