![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...d632683dd7
)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
149 lines
5.4 KiB
YAML
149 lines
5.4 KiB
YAML
name: style
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
with_coverage:
|
|
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@d632683dd7b4114ad314bca15554477dd762a938
|
|
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
|
with:
|
|
python-version: '3.11'
|
|
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@d632683dd7b4114ad314bca15554477dd762a938
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
|
with:
|
|
python-version: '3.11'
|
|
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.11'
|
|
# 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@d632683dd7b4114ad314bca15554477dd762a938
|
|
- name: Setup repo and non-root user
|
|
run: |
|
|
git --version
|
|
git config --global --add safe.directory /__w/spack/spack
|
|
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 style -t black
|
|
spack unit-test -V
|
|
import-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: julia-actions/setup-julia@v2
|
|
with:
|
|
version: '1.10'
|
|
- uses: julia-actions/cache@v2
|
|
|
|
# PR: use the base of the PR as the old commit
|
|
- name: Checkout PR base commit
|
|
if: github.event_name == 'pull_request'
|
|
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
|
with:
|
|
ref: ${{ github.event.pull_request.base.sha }}
|
|
path: old
|
|
# not a PR: use the previous commit as the old commit
|
|
- name: Checkout previous commit
|
|
if: github.event_name != 'pull_request'
|
|
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
|
with:
|
|
fetch-depth: 2
|
|
path: old
|
|
- name: Checkout previous commit
|
|
if: github.event_name != 'pull_request'
|
|
run: git -C old reset --hard HEAD^
|
|
|
|
- name: Checkout new commit
|
|
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
|
with:
|
|
path: new
|
|
- name: Install circular import checker
|
|
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
|
with:
|
|
repository: haampie/circular-import-fighter
|
|
ref: 555519c6fd5564fd2eb844e7b87e84f4d12602e2
|
|
path: circular-import-fighter
|
|
- name: Install dependencies
|
|
working-directory: circular-import-fighter
|
|
run: make -j dependencies
|
|
- name: Import cycles before
|
|
working-directory: circular-import-fighter
|
|
run: make SPACK_ROOT=../old && cp solution solution.old
|
|
- name: Import cycles after
|
|
working-directory: circular-import-fighter
|
|
run: make clean-graph && make SPACK_ROOT=../new && cp solution solution.new
|
|
- name: Compare import cycles
|
|
working-directory: circular-import-fighter
|
|
run: |
|
|
edges_before="$(grep -oP 'edges to delete: \K\d+' solution.old)"
|
|
edges_after="$(grep -oP 'edges to delete: \K\d+' solution.new)"
|
|
if [ "$edges_after" -gt "$edges_before" ]; then
|
|
printf '\033[1;31mImport check failed: %s imports need to be deleted, ' "$edges_after"
|
|
printf 'previously this was %s\033[0m\n' "$edges_before"
|
|
printf 'Compare \033[1;97m"Import cycles before"\033[0m and '
|
|
printf '\033[1;97m"Import cycles after"\033[0m to see problematic imports.\n'
|
|
exit 1
|
|
else
|
|
printf '\033[1;32mImport check passed: %s <= %s\033[0m\n' "$edges_after" "$edges_before"
|
|
fi
|