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
This commit is contained in:
Jordan Montgomery 2025-11-17 13:08:02 -05:00 committed by GitHub
parent 6045f9f214
commit ea55149592
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

56
.github/workflows/test-mock-changes.yml vendored Normal file
View file

@ -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