name: prechecks on: workflow_call: inputs: with_coverage: required: true type: string with_packages: required: true type: string concurrency: group: style-${{github.ref}}-${{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@11bd71901bbe5b1630ceea73d27597364c9af683 - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b with: python-version: '3.13' cache: 'pip' - name: Install Python Packages run: | pip install --upgrade pip setuptools pip install -r .github/workflows/requirements/style/requirements.txt - name: vermin (Spack's Core) run: vermin --backport importlib --backport argparse --violations --backport typing -t=3.6- -vvv lib/spack/spack/ lib/spack/llnl/ bin/ - name: vermin (Repositories) run: vermin --backport importlib --backport argparse --violations --backport typing -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@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b with: python-version: '3.13' cache: 'pip' - name: Install Python packages run: | pip install --upgrade pip setuptools pip install -r .github/workflows/requirements/style/requirements.txt - name: Setup git configuration run: | # Need this for the git tests to succeed. git --version . .github/workflows/bin/setup_git.sh - name: Run style tests run: | share/spack/qa/run-style-tests audit: uses: ./.github/workflows/audit.yaml secrets: inherit with: with_coverage: ${{ inputs.with_coverage }} python_version: '3.13' verify-checksums: if: ${{ inputs.with_packages == 'true' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 with: fetch-depth: 2 - name: Verify Added Checksums run: | bin/spack ci verify-versions HEAD^1 HEAD # Check that spack can bootstrap the development environment on Python 3.6 - RHEL8 bootstrap-dev-rhel8: runs-on: ubuntu-latest container: registry.access.redhat.com/ubi8/ubi steps: - name: Install dependencies run: | dnf install -y \ bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \ make patch tcl unzip which xz - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - name: Setup repo and non-root user run: | git --version git config --global --add safe.directory '*' git fetch --unshallow . .github/workflows/bin/setup_git.sh useradd spack-test chown -R spack-test . - name: Bootstrap Spack development environment shell: runuser -u spack-test -- bash {0} run: | source share/spack/setup-env.sh spack debug report spack -d bootstrap now --dev spack -d style -t black spack unit-test -V # Further style checks from pylint pylint: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b with: python-version: '3.13' cache: 'pip' - name: Install Python packages run: | pip install --upgrade pip setuptools pylint - name: Pylint (Spack Core) run: | pylint -j 4 --disable=all --enable=unspecified-encoding --ignore-paths=lib/spack/external lib