name: "CI - Test Features" on: push: branches: - main workflow_dispatch: jobs: test: runs-on: ubuntu-latest continue-on-error: true strategy: matrix: features: [ "anaconda", "aws-cli", "azure-cli", "common-utils", "desktop-lite", "docker-from-docker", "docker-in-docker", "dotnet", "git", "git-lfs", "github-cli", "go", "hugo", "java", "kubectl-helm-minikube", "node", "nvidia-cuda", "oryx", "php", "powershell", "python", "ruby", "rust", "sshd", "terraform", ] baseImage: [ "ubuntu:focal", "ubuntu:jammy", "debian:11", "mcr.microsoft.com/devcontainers/base:ubuntu", "mcr.microsoft.com/devcontainers/base:debian", ] steps: - uses: actions/checkout@v2 - name: "Install latest devcontainer CLI" run: npm install -g @devcontainers/cli - name: "Generating tests for '${{ matrix.features }}' against '${{ matrix.baseImage }}'" run: devcontainer features test --skip-scenarios -f ${{ matrix.features }} -i ${{ matrix.baseImage }} . test-scenarios: runs-on: ubuntu-latest continue-on-error: true strategy: matrix: features: [ "anaconda", "aws-cli", "azure-cli", "common-utils", "desktop-lite", "docker-from-docker", "docker-in-docker", "dotnet", "git", "git-lfs", "github-cli", "go", "hugo", "java", "kubectl-helm-minikube", "node", "nvidia-cuda", "oryx", "php", "powershell", "python", "ruby", "rust", "sshd", "terraform", ] steps: - uses: actions/checkout@v2 - name: "Install latest devcontainer CLI" run: npm install -g @devcontainers/cli - name: "Testing '${{ matrix.features }}' scenarios" run: devcontainer features test -f ${{ matrix.features }} --skip-autogenerated . test-global: runs-on: ubuntu-latest continue-on-error: true steps: - uses: actions/checkout@v2 - name: "Install latest devcontainer CLI" run: npm install -g @devcontainers/cli - name: "Testing global scenarios" run: devcontainer features test --global-scenarios-only .