From ea551495928502cc759aa733411996d0d29cbb79 Mon Sep 17 00:00:00 2001 From: Jordan Montgomery Date: Mon, 17 Nov 2025 13:08:02 -0500 Subject: [PATCH] Add test to validate mock changes (#35663) See https://github.com/fleetdm/fleet/actions/runs/19313106183/job/55238111566?pr=35663 for an example of what this looks like when it fails See https://github.com/fleetdm/fleet/pull/35655 for why we need this. Someone was able to check in code that inadvertently broke things for other developers. This is similar to why we have the existing "DB" tests that validate you updated the DB Schema file --- .github/workflows/test-mock-changes.yml | 56 +++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/test-mock-changes.yml 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