GitHub Actions

GitHub Composite Actionsではboolean inputsがstringとして扱われる

Composite Actions概要 GitHub Actionsにて複数のworkflowから利用できるactionsとしてComposite Actions (日本語では複合アクション)を作成できる。 Composite Actionsを作成すれば、複数のworkflowから参照することもできるし、複数リポジトリで共有するこ…

GitHub Actionsでmatrixの実行結果(outputs)を取得する

GitHub ActionsにおいてMatrix Jobを実行した結果(outputs)を参照したい。 2024年1月の仕様では、最後に実行したジョブの結果で上書きされるので、ジョブによって結果が異なる場合にそれぞれの値を取得することができない。 これは以下のコミュニティディス…

GitHubでOrganization Environmentsが欲しい

GitHub Organization下の複数リポジトリにてクレデンシャルを共有したいケースがよくある。 このような場合にはOrganization SecretsやOrganization Variableが便利。 docs.github.com これはこれで良いのだけれど、GitHub Environmentsを利用するようになる…

GitHub Environmentsで設定した変数を参照する。

GitHub Environmentsにはシークレットと変数が設定できて、それぞれ secretsおよびvarsコンテキストを用いて参照する。 例えばシークレットとしてTOKENを設定していれば ${{ secrets.TOKEN }} で、変数として RAILS_ENVを設定していれば ${{ vars.RAILS_ENV …

GitHub Actionsで条件に応じて値を設定する

GitHub Actionsで条件に応じて変数に値を設定したい。 例えばmainブランチを対象とする場合はenvironmentにproductionを、それ以外のブランチを対象とする場合はdevelopmentを設定したい。 このようなケースでは三項演算子が利用できる。 docs.github.com こ…

github actionsは必須入力を指定しなくてもエラーにならない

github actionsのinputにはrequiredというパラメータがある。 これにより、対象のinuptが必須なのかオプションなのかを区別することができる。 docs.github.com しかし、required: trueに指定したinputが指定されなかったからといってエラーになるわけではな…

GitHub Actionsのworkflow_dispatchでさまざまな入力タイプを利用する

GitHub Actionsを手動で実行する workflow_dispatch にはさまざなま入力を指定できる。 input のcontextには string or number or boolean or choice とあり、例としてstring, number, booleanの場合が記載されている。 docs.github.com 実は、 on.workflow_…

paths-filter で特定ディレクトリに変更があったときのみGitHub Actions job/stepを実行する

GitHub Actionsにはpathフィルタがあるので特定ディレクトリ以下に変更が生じたときのみworkflowを起動することができる。 ignore条件で変更がなければworkflowを起動しないこともできる。 docs.github.com これらのpathフィルタはworkflowレベルでの条件指…

GitHub Deploymentのイベントをslack通知する

GitHub / Slack連携 SlackのGitHub AppにはDeploymentsの通知機能がある。 これを利用すればGitHub からのデプロイ結果をSlack通知できる。 GitHub 側に通知設定はなく、Slack側で /github subscribe owner/repo コマンドを実行して連携する。deploymentsは…

GitHub Actionsのconcurrencyで同時実行を制御する

GitHub Actionsにはワークフローの同時実行を制御するための機能として concurrencyがある。 ワークフローだけでなく、ジョブの実行の同時制御を制御することもできる。 docs.github.com docs.github.com concurrencyには同時実行を制御する条件を指定する。…