summaryrefslogtreecommitdiff
path: root/.github/workflows/valid-style.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/valid-style.yml')
-rw-r--r--.github/workflows/valid-style.yml82
1 files changed, 82 insertions, 0 deletions
diff --git a/.github/workflows/valid-style.yml b/.github/workflows/valid-style.yml
new file mode 100644
index 0000000000..73c8dc76f1
--- /dev/null
+++ b/.github/workflows/valid-style.yml
@@ -0,0 +1,82 @@
+name: style
+
+on:
+ workflow_call:
+ inputs:
+ with_coverage:
+ required: true
+ type: string
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }}
+ cancel-in-progress: true
+
+
+jobs:
+ # Validate that the code can be run on all the Python versions
+ # supported by Spack
+ validate:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2
+ - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5 # @v2
+ with:
+ python-version: '3.10'
+ cache: 'pip'
+ - name: Install Python Packages
+ run: |
+ pip install --upgrade pip
+ pip install --upgrade vermin
+ - name: vermin (Spack's Core)
+ run: vermin --backport argparse --violations --backport typing -t=2.7- -t=3.6- -vvv lib/spack/spack/ lib/spack/llnl/ bin/
+ - name: vermin (Repositories)
+ run: vermin --backport argparse --violations --backport typing -t=2.7- -t=3.6- -vvv var/spack/repos
+ # Run style checks on the files that have been changed
+ style:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5 # @v2
+ with:
+ python-version: '3.10'
+ cache: 'pip'
+ - name: Install Python packages
+ run: |
+ python3 -m pip install --upgrade pip six setuptools types-six click==8.0.2 'black==21.12b0' mypy isort clingo flake8
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ . .github/workflows/setup_git.sh
+ - name: Run style tests
+ run: |
+ share/spack/qa/run-style-tests
+ # 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: '3.10'
+ - 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