単一のjobかworkflowsを使うかでやり方が異なります。
単一のjobの場合
branchesを使います。
masterブランチでのみ処理を実行したい場合の例:
version: 2
jobs:
build:
docker:
- image: circleci/ruby:2.5.0
branches:
only:
- master
steps:
- run:
command: echo "This job runs on only master branch"
- この機能、ローカル環境では機能していないように見えます。onlyのところをmasterにしてもdevelopにしてもjobが成功したので。
- Circle CI上で走らせるとskippedになっているので問題はなさそうです。
Workflowsの場合
filters内でbranchesを使います。
masterブランチでのみ処理を実行したい場合の例:
workflows:
version: 2
build-deploy:
jobs:
- build
- deploy-production:
requires:
- build
filters:
branches:
only: master
- deploy-productionというjobはmasterブランチにマージされたときだけ実行されるようになります。