GitHub Actions のトラブルシューティング
GitHub Actions でよく遭遇するトラブルの解決策。
ローカルでは動くが GitHub Actions で動かない
大文字小文字
大文字小文字の扱いは OS によって異なる。
Windows では区別されないが Linux では区別されるためローカルが Windows だと遭遇しがち。
解決策
ファイルをリネームして大文字小文字を一致させる。
Git では大文字小文字の変更は認識されないので git config core.ignorecase false
するか一度別名にするなどが必要なことに注意。
run が途中で止まる
ローカルでは続行されるエラー以降の処理が実行されない。
run
ステップは(デフォルトでは)Bash で実行されます。
実行される際のコマンドは /usr/bin/bash -e {0}
です。(ログに出力されています。{0}
は一時ファイル名)
-e
オプション(エラーで中断)が付いているためです。
解決策
基本的にはローカルもスクリプト内で set -e
をするなどして合わせておきましょう。[1]
どうしても外したい場合は set +e
で解除できます。
トリガーされない
構文エラー
構文エラーがあると当然ですが実行できません。
解決策
エラーを修正します。
Actions タブに push イベント扱いでログが残っているのでエラー内容はそちらで確認できます。
デフォルトブランチにないワークフロー
一部のイベントはデフォルトブランチにワークフローが存在する場合にのみトリガーされます。
対象のイベントは ワークフローをトリガーするイベント - GitHub Docs を確認してください。以下の注意書きがあるものが対象となります。
解決策
デフォルトブランチにワークフローを作成してください。
存在していればいいので内容は最小限で問題ありません。
workflow_dispatch イベント
workflow_dispatch
イベントは上記の注意書きがないにも関わらずデフォルトブランチ以外で実行しようとするとトリガーされないケースがあります。
解決策
GitHub Actions にワークフローが workflow_dispatch
イベントであることを認識させる必要があるので以下のいずれかを実施します。
- デフォルトブランチへワークフローを入れる
-
on.push
を実装して(push イベントとして認識されればいいので構文エラーでも可)一度ワークフローを実行する
次のワークフロー
GITHUB_TOKEN
を使用したワークフローから発生したイベントは次のワークフローをトリガーしません。
解決策
GitHub Apps のトークン(推奨)や Personal Access Token (PAT) に変更します。