Skip to content

Commit

Permalink
Check for uncommitted unignored generated archives on CI
Browse files Browse the repository at this point in the history
This adds a step to `test-fast` to run `git diff` and fail if there
are any changes to any tracked files, and sets the newly recognized
`GIX_TEST_CREATE_ARCHIVES_EVEN_ON_CI` environment variable for the
`nextest` step in which fixture scripts are run.

Any changes would indicate a problem that should be addressed, but
the main goal here is to catch when a regenerated archive has not
been committed.

Because adding archives to `.gitignore` would also cause this to
pass but is far less often the appropriate solution, this change
includes a comment about what the best solution *usually* is.

This is added to the `test-fast` jobs but not to `test` job because
the `test` job uses `GIT_TEST_IGNORE_ARCHIVES` to prevent already
existing archives from being used, which will nearly always result
in at least slightly different archives being generated. So in the
`test` job this would, in practice, always give a false-positive
failure.

Because archive generation is (at least currently) suppressed on
Windows, this step should rarely if ever fail on Windows even when
the problem it is looking for is present. But if it does fail on
Windows, then there is a problem that ought to be investigated,
and if the problem it is looking for is present, then it will
still fail on the other systems, unless the problem is specific to
Windows.

Running this step on both Ubuntu and macOS (and Windows), rather
than just Ubuntu (and Windows), has the benefit of catching some
kinds of skew. It is also somewhat simpler than setting it only
for some operating systems.
  • Loading branch information
EliahKagan committed Sep 11, 2024
1 parent 8674ae3 commit a5e4f0d
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,13 @@ jobs:
with:
tool: nextest
- name: "Test (nextest)"
env:
GIX_TEST_CREATE_ARCHIVES_EVEN_ON_CI: 1
run: cargo nextest run --all --no-fail-fast
- name: Doctest
run: cargo test --doc
- name: Check that tracked archives are up to date
run: git diff # If this fails, the fix is usually to commit a regenerated archive.

test-32bit:
runs-on: ubuntu-latest
Expand Down

0 comments on commit a5e4f0d

Please sign in to comment.