name: ci on: push: branches: - develop - releases/** pull_request: branches: - develop - releases/** concurrency: group: ci-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true jobs: prechecks: needs: [ changes ] uses: ./.github/workflows/valid-style.yml secrets: inherit with: with_coverage: ${{ needs.changes.outputs.core }} all-prechecks: needs: [ prechecks ] runs-on: ubuntu-latest steps: - name: Success run: "true" # Check which files have been updated by the PR changes: runs-on: ubuntu-latest # Set job outputs to values from filter step outputs: bootstrap: ${{ steps.filter.outputs.bootstrap }} core: ${{ steps.filter.outputs.core }} packages: ${{ steps.filter.outputs.packages }} steps: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b if: ${{ github.event_name == 'push' }} with: fetch-depth: 0 # For pull requests it's not necessary to checkout the code - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 id: filter with: # See https://github.com/dorny/paths-filter/issues/56 for the syntax used below # Don't run if we only modified packages in the # built-in repository or documentation filters: | bootstrap: - 'var/spack/repos/builtin/packages/clingo-bootstrap/**' - 'var/spack/repos/builtin/packages/clingo/**' - 'var/spack/repos/builtin/packages/python/**' - 'var/spack/repos/builtin/packages/re2c/**' - 'lib/spack/**' - 'share/spack/**' - '.github/workflows/bootstrap.yml' - '.github/workflows/ci.yaml' core: - './!(var/**)/**' packages: - 'var/**' # Some links for easier reference: # # "github" context: https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context # 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 # bootstrap: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.bootstrap == 'true' }} needs: [ prechecks, changes ] uses: ./.github/workflows/bootstrap.yml secrets: inherit unit-tests: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks, changes ] uses: ./.github/workflows/unit_tests.yaml secrets: inherit all: needs: [ unit-tests, bootstrap ] runs-on: ubuntu-latest steps: - name: Success run: "true"