diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ca4ab21ec03..0b11d87bec1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -102,6 +102,8 @@ jobs: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks ] uses: ./.github/workflows/windows_python.yml + with: + core: ${{ needs.changes.outputs.core }} all: needs: [ windows, unit-tests, bootstrap, audit-ancient-python ] runs-on: ubuntu-latest diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 7580bbf835a..621a6352d25 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -32,10 +32,10 @@ jobs: include: - python-version: 2.7 concretizer: original - on_develop: false + on_develop: ${{ github.ref == 'refs/heads/develop' }} - python-version: '3.10' concretizer: original - on_develop: false + on_develop: ${{ github.ref == 'refs/heads/develop' }} exclude: - python-version: '3.7' concretizer: 'clingo' @@ -87,7 +87,6 @@ jobs: spack bootstrap untrust spack-install spack -v solve zlib - name: Run unit tests (full suite with coverage) - if: ${{ inputs.with_coverage == 'true' }} env: SPACK_PYTHON: python COVERAGE: true @@ -96,16 +95,7 @@ jobs: share/spack/qa/run-unit-tests coverage combine coverage xml - - name: Run unit tests (reduced suite without coverage) - if: ${{ inputs.with_coverage == 'false' }} - env: - SPACK_PYTHON: python - ONLY_PACKAGES: true - SPACK_TEST_SOLVER: ${{ matrix.concretizer }} - run: | - share/spack/qa/run-unit-tests - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: flags: unittests,linux,${{ matrix.concretizer }} # Test shell integration @@ -150,7 +140,7 @@ jobs: # only on PRs modifying core Spack rhel8-platform-python: runs-on: ubuntu-latest - if: ${{ inputs.with_coverage == 'true' }} + if: ${{ inputs.with_coverage == 'false' }} container: registry.access.redhat.com/ubi8/ubi steps: - name: Install dependencies @@ -199,7 +189,6 @@ jobs: git --version . .github/workflows/setup_git.sh - name: Run unit tests (full suite with coverage) - if: ${{ inputs.with_coverage == 'true' }} env: COVERAGE: true SPACK_TEST_SOLVER: clingo @@ -207,15 +196,7 @@ jobs: share/spack/qa/run-unit-tests coverage combine coverage xml - - name: Run unit tests (reduced suite without coverage) - if: ${{ inputs.with_coverage == 'false' }} - env: - ONLY_PACKAGES: true - SPACK_TEST_SOLVER: clingo - run: | - share/spack/qa/run-unit-tests - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: flags: unittests,linux,clingo # Run unit tests on MacOS @@ -249,21 +230,13 @@ jobs: $(which spack) bootstrap untrust spack-install $(which spack) solve zlib common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x) - if [ "${{ inputs.with_coverage }}" == "true" ] - then - coverage run $(which spack) unit-test "${common_args[@]}" - coverage combine - coverage xml - # Delete the symlink going from ./lib/spack/docs/_spack_root back to - # the initial directory, since it causes ELOOP errors with codecov/actions@2 - rm lib/spack/docs/_spack_root - else - echo "ONLY PACKAGE RECIPES CHANGED [skipping coverage]" - $(which spack) unit-test "${common_args[@]}" -m "not maybeslow" -k "test_all_virtual_packages_have_default_providers" - fi + coverage run $(which spack) unit-test "${common_args[@]}" + coverage combine + coverage xml + # Delete the symlink going from ./lib/spack/docs/_spack_root back to + # the initial directory, since it causes ELOOP errors with codecov/actions@2 + rm lib/spack/docs/_spack_root - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: files: ./coverage.xml flags: unittests,macos - diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml index 82e48370aca..aa6bf51fd68 100644 --- a/.github/workflows/windows_python.yml +++ b/.github/workflows/windows_python.yml @@ -2,6 +2,10 @@ name: windows on: workflow_call: + inputs: + core: + type: string + required: true concurrency: group: windows-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} @@ -13,6 +17,7 @@ defaults: powershell Invoke-Expression -Command ".\share\spack\qa\windows_test_setup.ps1"; {0} jobs: unit-tests: + if: ${{ inputs.core == 'false' }} runs-on: windows-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b @@ -32,6 +37,7 @@ jobs: 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 unit-tests-cmd: + if: ${{ inputs.core == 'false' }} runs-on: windows-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b @@ -70,6 +76,7 @@ jobs: spack external find ninja spack install abseil-cpp make-installer: + if: ${{ inputs.core == 'false' }} runs-on: windows-latest steps: - name: Disable Windows Symlinks @@ -105,6 +112,7 @@ jobs: name: Windows Spack Installer path: ${{ env.installer_root}}\pkg\Spack.msi execute-installer: + if: ${{ inputs.core == 'false' }} needs: make-installer runs-on: windows-latest defaults: diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests index 62cca273bf0..da8334f76b2 100755 --- a/share/spack/qa/run-unit-tests +++ b/share/spack/qa/run-unit-tests @@ -46,10 +46,7 @@ $coverage_run $(which spack) python -c "import spack.pkg.builtin.mpileaks; repr( #----------------------------------------------------------- # Run unit tests with code coverage #----------------------------------------------------------- -if [[ "$ONLY_PACKAGES" == "true" ]]; then - echo "ONLY PACKAGE RECIPES CHANGED [running only package sanity]" - export PYTEST_ADDOPTS='-k "test_all_virtual_packages_have_default_providers" -m "not maybeslow"' -elif [[ "$SPACK_TEST_SOLVER" == "original" ]]; then +if [[ "$SPACK_TEST_SOLVER" == "original" ]]; then echo "ORIGINAL CONCRETIZER [skipping slow unit tests]" export PYTEST_ADDOPTS='-m "not maybeslow"' fi