diff --git a/.github/workflows/test-mock-changes.yml b/.github/workflows/test-mock-changes.yml new file mode 100644 index 0000000000..63b9d50a8d --- /dev/null +++ b/.github/workflows/test-mock-changes.yml @@ -0,0 +1,56 @@ +name: Test Mock Changes + +on: + push: + branches: + - main + - patch-* + - prepare-* + pull_request: + paths: + - '**.go' + - '.github/workflows/test-mock-changes.yml' + workflow_dispatch: # Manual + +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}} + cancel-in-progress: true + +defaults: + run: + # fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference + shell: bash + +permissions: + contents: read + +jobs: + test-mock-changes: + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 + with: + egress-policy: audit + + - name: Checkout Code + uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 + with: + fetch-depth: 0 + + - name: Install Go + uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + with: + go-version-file: 'go.mod' + + - name: Verify test mock changes + run: | + make mock + for mockfile in $(git ls-files '*_mock.go'); do + if [[ $(git diff-files --patch "$mockfile") ]]; then + echo "❌ fail: uncommitted changes in ${mockfile}" + echo "please run 'make mock' and commit the changes" + exit 1 + fi + done