
* Bump the package API of the `builtin` repo to `v2.0` * Move `var/spack/repos/builtin` -> `var/spack/repos/spack_repo/builtin` * Move test repos `var/spack/repos/{builtin.mock,tutorial,...}` -> `var/spack/test_repos/` * Update package dir names to v2 format (`-` -> `_` etc) * Change absolute imports `from spack.pkg.builtin.my_pkg ...` to relative imports `from ..my_pkg.package ...` Users who have a repo on top of builtin should change imports from ```python from spack.pkg.builtin.my_pkg import MyPkg ``` to ```python from spack_repo.builtin.packages.my_pkg.package import MyPkg ``` and can configure their editors with ``` PYTHONPATH=$spack/lib/spack:$spack/var/spack/repos ``` [skip-verify-checksums]
109 lines
3.7 KiB
YAML
109 lines
3.7 KiB
YAML
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
|