From 60510a6ae72b1464f3d142d141bfc53444a8519a Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 22 Nov 2021 12:41:17 -0800 Subject: [PATCH] .github/workflows: check that repo is clean after build and test Linux-only for now, to avoid having to figure out why powershell doesn't like my shell scripting. (Not that I blame it.) That'll be enough to catch most regressions. Fixes #1083 Co-authored-by: Aaron Klotz Signed-off-by: Josh Bleecher Snyder --- .github/workflows/linux-race.yml | 15 +++++++++++++++ .github/workflows/linux.yml | 15 +++++++++++++++ .github/workflows/linux32.yml | 15 +++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/.github/workflows/linux-race.yml b/.github/workflows/linux-race.yml index cf1844599..d93ccf359 100644 --- a/.github/workflows/linux-race.yml +++ b/.github/workflows/linux-race.yml @@ -31,6 +31,21 @@ jobs: - name: Run tests and benchmarks with -race flag on linux run: go test -race -bench=. -benchtime=1x ./... + - name: Check that no tracked files in the repo have been modified + run: git diff --no-ext-diff --name-only --exit-code || (echo "Build/test modified the files above."; exit 1) + + - name: Check that no files have been added to the repo + run: | + # Note: The "error: pathspec..." you see below is normal! + # In the success case in which there are no new untracked files, + # git ls-files complains about the pathspec not matching anything. + # That's OK. It's not worth the effort to suppress. Please ignore it. + if git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' + then + echo "Build/test created untracked files in the repo (file names above)." + exit 1 + fi + - uses: k0kubun/action-slack@v2.0.0 with: payload: | diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 80f14615e..a037064d3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -40,6 +40,21 @@ jobs: - name: Run tests on linux run: go test -bench=. -benchtime=1x ./... + - name: Check that no tracked files in the repo have been modified + run: git diff --no-ext-diff --name-only --exit-code || (echo "Build/test modified the files above."; exit 1) + + - name: Check that no files have been added to the repo + run: | + # Note: The "error: pathspec..." you see below is normal! + # In the success case in which there are no new untracked files, + # git ls-files complains about the pathspec not matching anything. + # That's OK. It's not worth the effort to suppress. Please ignore it. + if git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' + then + echo "Build/test created untracked files in the repo (file names above)." + exit 1 + fi + - uses: k0kubun/action-slack@v2.0.0 with: payload: | diff --git a/.github/workflows/linux32.yml b/.github/workflows/linux32.yml index 8a1adfc81..d0dbcf02e 100644 --- a/.github/workflows/linux32.yml +++ b/.github/workflows/linux32.yml @@ -31,6 +31,21 @@ jobs: - name: Run tests on linux run: GOARCH=386 go test -bench=. -benchtime=1x ./... + - name: Check that no tracked files in the repo have been modified + run: git diff --no-ext-diff --name-only --exit-code || (echo "Build/test modified the files above."; exit 1) + + - name: Check that no files have been added to the repo + run: | + # Note: The "error: pathspec..." you see below is normal! + # In the success case in which there are no new untracked files, + # git ls-files complains about the pathspec not matching anything. + # That's OK. It's not worth the effort to suppress. Please ignore it. + if git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' + then + echo "Build/test created untracked files in the repo (file names above)." + exit 1 + fi + - uses: k0kubun/action-slack@v2.0.0 with: payload: |