Skip to content

Delay submodule initiation until after branch checkout #2266

Delay submodule initiation until after branch checkout

Delay submodule initiation until after branch checkout #2266

Workflow file for this run

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 }}"