diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2022-09-08 19:58:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-08 10:58:53 -0700 |
commit | 67534516c73d8ac63ec7e2b2c3459c6150171f41 (patch) | |
tree | 56fe423d8ce13abbb79c4e1f077e1ddee4f7d636 | |
parent | dc1734f0a6e66752cadb214ae6fc1ce7c258e5fa (diff) | |
download | spack-67534516c73d8ac63ec7e2b2c3459c6150171f41.tar.gz spack-67534516c73d8ac63ec7e2b2c3459c6150171f41.tar.bz2 spack-67534516c73d8ac63ec7e2b2c3459c6150171f41.tar.xz spack-67534516c73d8ac63ec7e2b2c3459c6150171f41.zip |
ci: avoid running coverage on package only PRs (#32573)
* ci: remove !docs from "core" filters
Written like it is now it causes package only PRs
to run with coverage.
* Try to skip job under condition, see if the workflow proceed
* Try to cancel a running CI job
* Simplify linux unit-tests, skip windows unit-tests on package PRs
* Reduce the inputs to unit-tests workflow
* Move control logic to main workflow, remove inputs
* Revert "Move control logic to main workflow, remove inputs"
This reverts commit 0c46fece4c49eb7a37585ec3ba651a31d7f958af.
* Do not compute "with_coverage" since it's always == to "core"
* Remove workflow dispatch from unit tests
* Revert "Revert "Move control logic to main workflow, remove inputs""
This reverts commit dd4e4a4e61a825901e736348fd044d37e88c90b5.
* Try to skip all from the main workflow
* Add back bootstrap to needed checks for "all"
* Restore the correct logic for conditionals
-rw-r--r-- | .github/workflows/ci.yaml | 23 | ||||
-rw-r--r-- | .github/workflows/unit_tests.yaml | 62 | ||||
-rwxr-xr-x | share/spack/qa/run-unit-tests | 5 |
3 files changed, 12 insertions, 78 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f4943789d6..3e74129656 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,12 +19,12 @@ jobs: needs: [ changes ] uses: ./.github/workflows/valid-style.yml with: - with_coverage: ${{ needs.changes.outputs.with_coverage }} + with_coverage: ${{ needs.changes.outputs.core }} audit-ancient-python: uses: ./.github/workflows/audit.yaml needs: [ changes ] with: - with_coverage: ${{ needs.changes.outputs.with_coverage }} + with_coverage: ${{ needs.changes.outputs.core }} python_version: 2.7 all-prechecks: needs: [ prechecks ] @@ -40,7 +40,6 @@ jobs: bootstrap: ${{ steps.filter.outputs.bootstrap }} core: ${{ steps.filter.outputs.core }} packages: ${{ steps.filter.outputs.packages }} - with_coverage: ${{ steps.coverage.outputs.with_coverage }} steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2 if: ${{ github.event_name == 'push' }} @@ -65,7 +64,6 @@ jobs: - 'share/spack/**' - '.github/workflows/bootstrap.yml' core: - - '!lib/spack/docs/**' - './!(var/**)/**' packages: - 'var/**' @@ -75,18 +73,6 @@ jobs: # job outputs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs # setting environment variables from earlier steps: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable # - - id: coverage - # Run the subsequent jobs with coverage if core has been modified, - # regardless of whether this is a pull request or a push to a branch - run: | - echo Core changes: ${{ steps.filter.outputs.core }} - echo Event name: ${{ github.event_name }} - if [ "${{ steps.filter.outputs.core }}" == "true" ] - then - echo "::set-output name=with_coverage::true" - else - echo "::set-output name=with_coverage::false" - fi bootstrap: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.bootstrap == 'true' }} needs: [ prechecks, changes ] @@ -95,10 +81,6 @@ jobs: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks, changes ] uses: ./.github/workflows/unit_tests.yaml - with: - core: ${{ needs.changes.outputs.core }} - packages: ${{ needs.changes.outputs.packages }} - with_coverage: ${{ needs.changes.outputs.with_coverage }} windows: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks ] @@ -109,4 +91,3 @@ jobs: steps: - name: Success run: "true" - diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 6b1411c61b..5de7d86c56 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -3,16 +3,6 @@ name: unit tests on: workflow_dispatch: workflow_call: - inputs: - core: - required: true - type: string - packages: - required: true - type: string - with_coverage: - required: true - type: string concurrency: group: unit_tests-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} @@ -31,10 +21,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' @@ -86,7 +76,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 @@ -95,16 +84,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 @@ -130,18 +110,12 @@ jobs: # Need this for the git tests to succeed. git --version . .github/workflows/setup_git.sh - - name: Run shell tests (without coverage) - if: ${{ inputs.with_coverage == 'false' }} - run: | - share/spack/qa/run-shell-tests - - name: Run shell tests (with coverage) - if: ${{ inputs.with_coverage == 'true' }} + - name: Run shell tests env: COVERAGE: true run: | share/spack/qa/run-shell-tests - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: flags: shelltests,linux @@ -149,7 +123,6 @@ jobs: # only on PRs modifying core Spack rhel8-platform-python: runs-on: ubuntu-latest - if: ${{ inputs.with_coverage == 'true' }} container: registry.access.redhat.com/ubi8/ubi steps: - name: Install dependencies @@ -197,7 +170,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 @@ -205,15 +177,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 @@ -246,21 +210,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/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests index 62cca273bf..da8334f76b 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 |