diff options
author | Tom Scogland <tom.scogland@gmail.com> | 2022-09-07 11:12:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-07 20:12:57 +0200 |
commit | 762ba27036e717aeceeb1b43f3090f0e9a049869 (patch) | |
tree | c2b244d849aa12d1256462bc5936963362004fe4 /.github/workflows/audit.yaml | |
parent | 8e5ccddc139b32a4a23f63c9dd631dabf3263cad (diff) | |
download | spack-762ba27036e717aeceeb1b43f3090f0e9a049869.tar.gz spack-762ba27036e717aeceeb1b43f3090f0e9a049869.tar.bz2 spack-762ba27036e717aeceeb1b43f3090f0e9a049869.tar.xz spack-762ba27036e717aeceeb1b43f3090f0e9a049869.zip |
Make GHA tests parallel by using xdist (#32361)
* Add two no-op jobs named "all-prechecks" and "all"
These are a suggestion from @tgamblin, they are stable named markers we
can use from gitlab and possibly for required checks to make CI more
resilient to refactors changing the names of specific checks.
* Enable parallel testing using xdist for unit testing in CI
* Normalize tmp paths to deal with macos
* add -u flag compatibility to spack python
As of now, it is accepted and ignored. The usage with xdist, where it
is invoked specifically by `python -u spack python` which is then passed
`-u` by xdist is the entire reason for doing this. It should never be
used without explicitly passing -u to the executing python interpreter.
* use spack python in xdist to support python 2
When running on python2, spack has many import cycles unless started
through main. To allow that, this uses `spack python` as the
interpreter, leveraging the `-u` support so xdist doesn't error out when
it unconditionally requests unbuffered binary IO.
* Use shutil.move to account for tmpdir being in a separate filesystem sometimes
Diffstat (limited to '.github/workflows/audit.yaml')
-rw-r--r-- | .github/workflows/audit.yaml | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml new file mode 100644 index 0000000000..2b8c989518 --- /dev/null +++ b/.github/workflows/audit.yaml @@ -0,0 +1,44 @@ +name: audit + +on: + workflow_call: + inputs: + with_coverage: + required: true + type: string + python_version: + required: true + type: string + +concurrency: + group: audit-${{inputs.python_version}}-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} + cancel-in-progress: true + +jobs: + # Run audits on all the packages in the built-in repository + package-audits: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2 + - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5 # @v2 + with: + python-version: ${{inputs.python_version}} + - name: Install Python packages + run: | + pip install --upgrade pip six setuptools pytest codecov 'coverage[toml]<=6.2' + - name: Package audits (with coverage) + if: ${{ inputs.with_coverage == 'true' }} + run: | + . share/spack/setup-env.sh + coverage run $(which spack) audit packages + coverage combine + coverage xml + - name: Package audits (without coverage) + if: ${{ inputs.with_coverage == 'false' }} + run: | + . share/spack/setup-env.sh + $(which spack) audit packages + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + if: ${{ inputs.with_coverage == 'true' }} + with: + flags: unittests,linux,audits |