DRAFT: Bugfix/extzlib pkgconfig freetype #755
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: style | |
on: | |
push: | |
branches: | |
- develop | |
- releases/** | |
- spack-stack-dev | |
- release/** | |
pull_request: | |
branches: | |
- develop | |
- releases/** | |
- spack-stack-dev | |
- release/** | |
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@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b | |
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@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b | |
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@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- 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 -d 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@11bd71901bbe5b1630ceea73d27597364c9af683 | |
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@11bd71901bbe5b1630ceea73d27597364c9af683 | |
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@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
path: new | |
- name: Install circular import checker | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
repository: haampie/circular-import-fighter | |
ref: 9f60f51bc7134e0be73f27623f1b0357d1718427 | |
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 |