Update the version #2327
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: Test | |
concurrency: | |
group: test-from-${{ github.ref_name }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
push: | |
branches: | |
- "pull-request/[0-9]+" | |
jobs: | |
check-event: | |
name: Check PR Event | |
runs-on: ubuntu-latest | |
outputs: | |
ok: ${{ steps.check_pr_event.outputs.ok }} | |
steps: | |
- id: check_pr_event | |
name: Check PR Event | |
shell: bash | |
run: | | |
[[ '${{ github.event_name }}' == 'push' && '${{ github.repository }}' == 'rapidsai/devcontainers' ]] || \ | |
[[ '${{ github.event_name }}' == 'pull_request' && '${{ github.repository }}' != 'rapidsai/devcontainers' ]] \ | |
&& echo "ok=true" | tee -a $GITHUB_OUTPUT \ | |
|| echo "ok=false" | tee -a $GITHUB_OUTPUT; | |
build-all-rapids-repos: | |
if: needs.check-event.outputs.ok == 'true' && github.repository_owner == 'rapidsai' | |
name: Build | |
needs: check-event | |
secrets: inherit | |
uses: ./.github/workflows/build-all-rapids-repos.yml | |
validate-features-json: | |
if: needs.check-event.outputs.ok == 'true' | |
name: Validate Features | |
needs: check-event | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout ${{ github.repository }} | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install devcontainers CLI | |
uses: ./.github/actions/install-devcontainers-cli | |
- name: Validate devcontainer-feature.json files | |
uses: devcontainers/action@v1 | |
with: | |
validate-only: true | |
base-path-to-features: "./features/src" | |
features-matrix: | |
name: Determine features matrix | |
needs: validate-features-json | |
runs-on: ubuntu-latest | |
outputs: | |
features: ${{ steps.matrix.outputs.features }} | |
scenarios: ${{ steps.matrix.outputs.scenarios }} | |
steps: | |
- name: Checkout ${{ github.repository }} | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
- id: get-pr-info | |
name: Get PR target branch info | |
uses: ./.github/actions/get-pr-info | |
- name: Copy common scripts into features | |
uses: ./.github/actions/copy-common-scripts | |
- id: matrix | |
name: Determine features matrix | |
uses: ./.github/actions/feature-matrix | |
with: | |
full_matrix: false | |
base_sha: "${{ fromJSON(steps.get-pr-info.outputs.pr-info).base.sha }}" | |
file_patterns: | | |
features/test/** | |
.github/workflows/test.yml | |
.github/actions/feature-matrix/* | |
.github/actions/build-and-test-feature/* | |
.github/workflows/build-and-test-feature.yml | |
run-feature-integration-tests: | |
if: needs.features-matrix.outputs.features != '[]' || needs.features-matrix.outputs.scenarios != '[]' | |
name: Feature integration | |
needs: features-matrix | |
secrets: inherit | |
uses: ./.github/workflows/build-and-test-feature.yml | |
with: | |
name: "{0}" | |
args: "--global-scenarios-only" | |
run-feature-scenario-tests: | |
if: needs.features-matrix.outputs.scenarios != '[]' | |
name: Test ${{ matrix.feature }} scenarios | |
needs: features-matrix | |
secrets: inherit | |
uses: ./.github/workflows/build-and-test-feature.yml | |
strategy: | |
fail-fast: false | |
matrix: | |
feature: ${{ fromJSON(needs.features-matrix.outputs.scenarios) }} | |
with: | |
name: "{0}" | |
args: "-f ${{ matrix.feature }} --skip-autogenerated" | |
run-generated-feature-tests: | |
if: needs.features-matrix.outputs.features != '[]' | |
name: Test ${{ matrix.feature }} feature | |
needs: features-matrix | |
secrets: inherit | |
uses: ./.github/workflows/build-and-test-feature.yml | |
strategy: | |
fail-fast: false | |
matrix: | |
feature: ${{ fromJSON(needs.features-matrix.outputs.features) }} | |
with: | |
name: "{0}" | |
args: "-f ${{ matrix.feature }} -i ubuntu:22.04 --skip-scenarios" | |
image-matrix: | |
name: Determine image matrix | |
needs: features-matrix | |
runs-on: ubuntu-latest | |
outputs: | |
linux: ${{ steps.matrix.outputs.linux }} | |
windows: ${{ steps.matrix.outputs.windows }} | |
steps: | |
- name: Checkout ${{ github.repository }} | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
- id: get-pr-info | |
name: Get PR target branch info | |
uses: ./.github/actions/get-pr-info | |
- id: matrix | |
name: Determine image matrix | |
uses: ./.github/actions/image-matrix | |
with: | |
full_matrix: false | |
features: "${{ needs.features-matrix.outputs.features }}" | |
scenarios: "${{ needs.features-matrix.outputs.scenarios }}" | |
base_sha: "${{ fromJSON(steps.get-pr-info.outputs.pr-info).base.sha }}" | |
file_patterns: | | |
.github/actions/build-linux-image/* | |
.github/actions/build-windows-image/* | |
.github/actions/image-matrix/* | |
.github/actions/test-windows-image/* | |
.github/workflows/test.yml | |
.github/workflows/build-test-and-push-linux-image.yml | |
.github/workflows/build-test-and-push-windows-image.yml | |
build-and-test-linux-images: | |
if: needs.image-matrix.outputs.linux != '{"include":[]}' | |
name: ${{ matrix.name || 'Linux' }} | |
needs: image-matrix | |
secrets: inherit | |
uses: ./.github/workflows/build-test-and-push-linux-image.yml | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.image-matrix.outputs.linux) }} | |
with: | |
push: false | |
os: "${{ matrix.os }}" | |
features: "${{ toJSON(matrix.features) }}" | |
container_env: "${{ toJSON(matrix.env) }}" | |
repo: "${{ vars.DOCKERHUB_REPOSITORY || github.repository }}" | |
build-and-test-windows-images: | |
if: needs.image-matrix.outputs.windows != '{"include":[]}' | |
name: ${{ matrix.name || 'Windows' }} | |
needs: image-matrix | |
secrets: inherit | |
uses: ./.github/workflows/build-test-and-push-windows-image.yml | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.image-matrix.outputs.windows) }} | |
with: | |
push: false | |
os: "${{ matrix.os }}" | |
features: "${{ toJSON(matrix.features) }}" | |
container_env: "${{ toJSON(matrix.env) }}" | |
repo: "${{ vars.DOCKERHUB_REPOSITORY || github.repository }}" |