summaryrefslogtreecommitdiff
path: root/.github/workflows/valid-style.yml
blob: 73c8dc76f15d676bbf91780980a233c275f2294d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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