👋
はじめてのCircle CI その2:GitHub ブランチ名によるPipeline実行制御
こちらの記事、はじめてのCircleCIとしてAWS Lambda関数をデプロイしました。
トリガーはGitHubのイベントとなっており、この状態だとすべての変更によりデプロイが走ってしまうため、ちょっとしたテストや修正などでもパイプラインが起動しワークフローが実行されてしまいます。このためmain
ブランチでの作業ではパイプラインの起動をバイパスし、prod
ブランチのみパイプラインが起動しワークフローを実行させるようにします。
さっそくやってみる
まずは
CircleCIのProject画面、右上からSettings
をクリックします。
左ペインでTriggers
をクリックし、鉛筆マークで設定変更画面へ移動します。
Run on
のドロップダウンリストでパイプラインの起動条件を指定できます。
特定ブランチへのコミットやプッシュなどを実行条件としたいがタグを普段使っていないため制御条件として使えない、といったケースではワークフローの実行を制御するconfig.yml
の記載で制御が可能です。
一度ここの設定はAll pushes
のままとしておきます。
前回用いたconfig.yml
を以下の様に変更します。
修正前
workflows:
version: 2
deploy:
jobs:
- deploy_lambda:
context:
- aws-credentials
修正後
workflows:
version: 2
deploy:
jobs:
- deploy_lambda:
context:
- aws-credentials
filters:
branches:
only:
- /prod*/
一度このままmain
にコミットすると以下の様になります。
PipelineがGitHubからイベントを受け取っているものの、ワークフローを起動していません。
この設定変更でprod
ブランチへのコミットのみワークフローが起動します。
では次にprod
ブランチへコミットを行います。
このようにmain
へのコミットではワークフローが起動せずprod
ブランチのみワークフローを起動させることができます。
Discussion