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' cache-dependency-path: '.github/workflows/requirements/style/requirements.txt' - name: Install Python Packages run: | 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 var/spack/test_repos # Run style checks on the files that have been changed style: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 2 - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b with: python-version: '3.13' cache: 'pip' cache-dependency-path: '.github/workflows/requirements/style/requirements.txt' - name: Install Python packages run: | pip install -r .github/workflows/requirements/style/requirements.txt - name: Run style tests run: | bin/spack style --base HEAD^1 bin/spack license verify pylint -j $(nproc) --disable=all --enable=unspecified-encoding --ignore-paths=lib/spack/external lib audit: uses: ./.github/workflows/audit.yaml secrets: inherit with: with_coverage: ${{ inputs.with_coverage }} python_version: '3.13' verify-checksums: # do not run if the commit message or PR description contains [skip-verify-checksums] if: >- ${{ inputs.with_packages == 'true' && !contains(github.event.pull_request.body, '[skip-verify-checksums]') && !contains(github.event.head_commit.message, '[skip-verify-checksums]') }} 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