summaryrefslogtreecommitdiff
path: root/.github/workflows/windows_python.yml
diff options
context:
space:
mode:
authorTom Scogland <scogland1@llnl.gov>2022-09-02 14:09:23 -0700
committerGitHub <noreply@github.com>2022-09-02 14:09:23 -0700
commit69f7a8f4d142cf5b7142bf8f20925b214e56316a (patch)
tree32b2c22f0b6ada94fd0047be4278f79465d7b8b3 /.github/workflows/windows_python.yml
parent80389911cce2daae5b0e4df069a3be9575954dc3 (diff)
downloadspack-69f7a8f4d142cf5b7142bf8f20925b214e56316a.tar.gz
spack-69f7a8f4d142cf5b7142bf8f20925b214e56316a.tar.bz2
spack-69f7a8f4d142cf5b7142bf8f20925b214e56316a.tar.xz
spack-69f7a8f4d142cf5b7142bf8f20925b214e56316a.zip
Reorder workflow execution in GHA (#32183)
This patchset refactors our GitHub actions into a single top-level ci workflow that invokes a series of reusable actions. The main goal of this is to be able to easily control which tests run and in what order based on the success or failure of top-level prechecks. Our previous workflows ran in three sets: * nix tests: style and verification first, then linux and macos tests if successful * windows tests: style and verification first, then linux and macos tests if successful * bootstrap tests As a result, the bootstrap tests ran even if the style failed, and style and verification had to run on two different platforms despite running identical checks. I'm relatively sure that's because of the limitation on dependencies between steps in the jobs. Reusable workflows allow us to run the style, verification and now audit checks once, then depending on the results, and the files changed, run the appropriate nix, windows and bootstrap tests. While it saves only a few minutes by itself, this makes it easier to refactor checks to subset tests without having to replicate tests or other workflow components in the future. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Diffstat (limited to '.github/workflows/windows_python.yml')
-rw-r--r--.github/workflows/windows_python.yml64
1 files changed, 8 insertions, 56 deletions
diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml
index e45fdb2bc8..5bd009df44 100644
--- a/.github/workflows/windows_python.yml
+++ b/.github/workflows/windows_python.yml
@@ -1,17 +1,10 @@
-name: windows tests
+name: windows
on:
- push:
- branches:
- - develop
- - releases/**
- pull_request:
- branches:
- - develop
- - releases/**
+ workflow_call:
concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }}
+ group: windows-${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }}
cancel-in-progress: true
defaults:
@@ -19,45 +12,7 @@ defaults:
shell:
powershell Invoke-Expression -Command ".\share\spack\qa\windows_test_setup.ps1"; {0}
jobs:
- validate:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5
- with:
- python-version: 3.9
- - name: Install Python Packages
- run: |
- python -m pip install --upgrade pip
- python -m pip install --upgrade vermin
- - name: vermin (Spack's Core)
- run: vermin --backport argparse --backport typing -t='2.7-' -t='3.6-' -v spack/lib/spack/spack/ spack/lib/spack/llnl/ spack/bin/
- - name: vermin (Repositories)
- run: vermin --backport argparse --backport typing -t='2.7-' -t='3.6-' -v spack/var/spack/repos
- # Run style checks on the files that have been changed
- style:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- fetch-depth: 0
- - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5
- with:
- python-version: 3.9
- - name: Install Python packages
- run: |
- python -m pip install --upgrade pip six setuptools flake8 "isort>=4.3.5" "mypy>=0.800" "click==8.0.4" "black<=21.12b0" pywin32 types-python-dateutil
- - name: Create local develop
- run: |
- .\spack\.github\workflows\setup_git.ps1
- - name: Run style tests
- run: |
- spack style
- - name: Verify license headers
- run: |
- python spack\bin\spack license verify
- unittest:
- needs: [ validate, style ]
+ unit-tests:
runs-on: windows-latest
steps:
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
@@ -76,8 +31,7 @@ jobs:
run: |
echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
spack unit-test --verbose --ignore=lib/spack/spack/test/cmd
- unittest-cmd:
- needs: [ validate, style ]
+ unit-tests-cmd:
runs-on: windows-latest
steps:
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
@@ -96,8 +50,7 @@ jobs:
run: |
echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
spack unit-test lib/spack/spack/test/cmd --verbose
- buildtest:
- needs: [ validate, style ]
+ build-abseil:
runs-on: windows-latest
steps:
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
@@ -116,8 +69,7 @@ jobs:
spack external find cmake
spack external find ninja
spack install abseil-cpp
- generate-installer-test:
- needs: [ validate, style ]
+ make-installer:
runs-on: windows-latest
steps:
- name: Disable Windows Symlinks
@@ -153,7 +105,7 @@ jobs:
name: Windows Spack Installer
path: ${{ env.installer_root}}\pkg\Spack.msi
execute-installer:
- needs: generate-installer-test
+ needs: make-installer
runs-on: windows-latest
defaults:
run: