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