CircleCI 特定のディレクトリに差分がなければJobを正常終了させる
code:yml
commands:
cancel-when-no-changes:
description: Cancel job when no changes on specified directory
parameters:
directory:
description: directory for running operations
type: string
steps:
- run:
name: Cancel Job when no changes
command: |
DIFF_COUNT=$(git --no-pager diff --name-only $CIRCLE_BRANCH origin/main -- << parameters.directory >> | wc -l)
echo 'No diffs. Finishing jobs...'
circleci-agent step halt
fi
CircleCI 公式のイメージには circleci-agent コマンドが内蔵されており、ジョブの終了などをコマンドで行うことができる