Open3

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 で解除できます。

脚注
  1. Shebang も使えますが限定的です ↩︎

雪猫雪猫

トリガーされない

構文エラー

構文エラーがあると当然ですが実行できません。

解決策

エラーを修正します。
Actions タブに push イベント扱いでログが残っているのでエラー内容はそちらで確認できます。

デフォルトブランチにないワークフロー

一部のイベントはデフォルトブランチにワークフローが存在する場合にのみトリガーされます。
対象のイベントは ワークフローをトリガーするイベント - GitHub Docs を確認してください。以下の注意書きがあるものが対象となります。

解決策

デフォルトブランチにワークフローを作成してください。
存在していればいいので内容は最小限で問題ありません。

workflow_dispatch イベント

workflow_dispatch イベントは上記の注意書きがないにも関わらずデフォルトブランチ以外で実行しようとするとトリガーされないケースがあります。

解決策

GitHub Actions にワークフローが workflow_dispatch イベントであることを認識させる必要があるので以下のいずれかを実施します。

  • デフォルトブランチへワークフローを入れる
  • on.push を実装して(push イベントとして認識されればいいので構文エラーでも可)一度ワークフローを実行する

次のワークフロー

GITHUB_TOKEN を使用したワークフローから発生したイベントは次のワークフローをトリガーしません。

解決策

GitHub Apps のトークン(推奨)や Personal Access Token (PAT) に変更します。

https://docs.github.com/ja/actions/security-guides/automatic-token-authentication#ワークフローでの-github_token-の使用