aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/test-pr.yaml
blob: 6b91b612d83541b14a51823406b0861d97ad49fc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
name: "PR - Test Updated Features"
on:
  pull_request:

jobs:
  detect-changes:
    runs-on: ubuntu-latest
    outputs:
      features: ${{ steps.filter.outputs.changes }}
    steps:
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            anaconda: ./**/anaconda/**
            aws-cli: ./**/aws-cli/**
            azure-cli: ./**/azure-cli/**
            common-utils: ./**/common-utils/**
            conda: ./**/conda/**
            desktop-lite: ./**/desktop-lite/** 
            docker-outside-of-docker: ./**/docker-outside-of-docker/**
            docker-in-docker: ./**/docker-in-docker/**
            dotnet: ./**/dotnet/**
            git: ./**/git/**
            git-lfs: ./**/git-lfs/**
            github-cli: ./**/github-cli/**
            go: ./**/go/**
            hugo: ./**/hugo/**
            java: ./**/java/**
            kubectl-helm-minikube: ./**/kubectl-helm-minikube/**
            node: ./**/node/**
            nvidia-cuda: ./**/nvidia-cuda/**
            oryx: ./**/oryx/**
            php: ./**/php/**
            powershell: ./**/powershell/**
            python: ./**/python/**
            ruby: ./**/ruby/**
            rust: ./**/rust/**
            sshd: ./**/sshd/**
            terraform: ./**/terraform/**
            nix: ./**/nix/**

  test:
    needs: [detect-changes]
    runs-on: ubuntu-latest
    continue-on-error: true
    strategy:
      matrix:
        features: ${{ fromJSON(needs.detect-changes.outputs.features) }}
        baseImage:
          [
            "ubuntu:bionic",
            "ubuntu:focal",
            "ubuntu:jammy",
            "debian:11",
            "debian:12",
            "mcr.microsoft.com/devcontainers/base:ubuntu",
            "mcr.microsoft.com/devcontainers/base:debian",
          ]
    steps:
      - uses: actions/checkout@v3

      - 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:
    needs: [detect-changes]
    runs-on: ubuntu-latest
    continue-on-error: true
    strategy:
      matrix:
        features: ${{ fromJSON(needs.detect-changes.outputs.features) }}
    steps:
      - uses: actions/checkout@v3

      - 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  .