summaryrefslogtreecommitdiff
path: root/.github/workflows/audit.yaml
diff options
context:
space:
mode:
authorTom Scogland <tom.scogland@gmail.com>2022-09-07 11:12:57 -0700
committerGitHub <noreply@github.com>2022-09-07 20:12:57 +0200
commit762ba27036e717aeceeb1b43f3090f0e9a049869 (patch)
treec2b244d849aa12d1256462bc5936963362004fe4 /.github/workflows/audit.yaml
parent8e5ccddc139b32a4a23f63c9dd631dabf3263cad (diff)
downloadspack-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.yaml44
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