From 04f5d29fd077718a364fa79c76e103e5c0f3c1ad Mon Sep 17 00:00:00 2001 From: Josh Spicer Date: Wed, 25 May 2022 16:56:12 -0700 Subject: smart PR action (#23) * attempt at update action * Update test-pr.yaml * make a change to a source file * try out a few * easy case * filter * try a two-feature key * without jup * overthinking? * naming * changes * all * remove comments --- .github/workflows/test-all.yaml | 47 +++++++++++++++++++++++++++++++++ .github/workflows/test-manual.yaml | 2 +- .github/workflows/test-pr.yaml | 53 ++++++++++++++++++++++++++++++++++++++ .github/workflows/test.yaml | 47 --------------------------------- 4 files changed, 101 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/test-all.yaml create mode 100644 .github/workflows/test-pr.yaml delete mode 100644 .github/workflows/test.yaml (limited to '.github/workflows') diff --git a/.github/workflows/test-all.yaml b/.github/workflows/test-all.yaml new file mode 100644 index 0000000..160ece6 --- /dev/null +++ b/.github/workflows/test-all.yaml @@ -0,0 +1,47 @@ +name: "Test Features (CI)" +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", + "desktop-lite", + "docker-from-docker", + "docker-in-docker", + "dotnet", + "git", + "git-lfs", + "github-cli", + "go", + "gradle", + "hugo", + "java", + "jekyll", + "python jupyterlab", # Install 'python', then 'jupyterlab' + "kubectl-helm-minikube", + "maven", + "node", + "php", + "powershell", + "python", + "ruby", + "rust", + "sshd", + "terraform" ] + baseImage: [ "ubuntu:focal" ] + steps: + - uses: actions/checkout@v2 + + - name: " Testing '${{ matrix.features }}' against '${{ matrix.baseImage }}'" + run: npx --yes ./devcontainers-cli-0.3.0.tgz features test -f ${{ matrix.features }} -i ${{ matrix.baseImage }} -c `pwd` diff --git a/.github/workflows/test-manual.yaml b/.github/workflows/test-manual.yaml index 515805e..1f5e79b 100644 --- a/.github/workflows/test-manual.yaml +++ b/.github/workflows/test-manual.yaml @@ -1,4 +1,4 @@ -name: "Test Features (manual)" +name: "Test Features (Manual)" on: workflow_dispatch: inputs: diff --git a/.github/workflows/test-pr.yaml b/.github/workflows/test-pr.yaml new file mode 100644 index 0000000..96a81d9 --- /dev/null +++ b/.github/workflows/test-pr.yaml @@ -0,0 +1,53 @@ +name: "Test updated features (PR)" +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: ./**/common/** + desktop-lite: ./**/desktop-lite/** + docker-from-docker: ./**/docker-from-docker/** + docker-in-docker: ./**/docker-in-docker/** + dotnet: ./**/dotnet/** + git: ./**/git/** + git-lfs: ./**/git-lfs/** + github-cli: ./**/github-cli/** + go: ./**/go/** + gradle: ./**/gradle/** + hugo: ./**/hugo/** + java: ./**/java/** + jekyll: ./**/jekyll/** + 'python jupyterlab': ./**/jupyterlab/** + kubectl-helm-minikube: ./**/kubectl-helm-minikube/** + maven: ./**/maven/** + node: ./**/node/** + php: ./**/php/** + powershell: ./**/powershell/** + python: ./**/python/** + ruby: ./**/ruby/** + rust: ./**/rust/** + sshd: ./**/sshd/** + terraform: ./**/terraform/** + + test: + needs: detect-changes + runs-on: ubuntu-latest + strategy: + matrix: + features: ${{ fromJSON(needs.detect-changes.outputs.features) }} + baseImage: [ "ubuntu:focal" ] + steps: + - uses: actions/checkout@v2 + - name: " Testing '${{ matrix.features }}' against '${{ matrix.baseImage }}'" + run: npx --yes ./devcontainers-cli-0.3.0.tgz features test -f ${{ matrix.features }} -i ${{ matrix.baseImage }} -c `pwd` \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index 2a40a8c..0000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,47 +0,0 @@ -name: "Test Features" -on: - push: - branches: - - main - pull_request: - workflow_dispatch: - -jobs: - test: - runs-on: ubuntu-latest - continue-on-error: true - strategy: - matrix: - features: [ - "anaconda", - "aws-cli", - "azure-cli", - "common", - "desktop-lite", - "docker-from-docker", - "docker-in-docker", - "dotnet", - "git", - "github-cli", - "git-lfs", - "go", - "gradle", - "hugo", - "java", - "php", - "python jupyterlab", # Install 'python', then 'jupyterlab' - "kubectl-helm-minikube", - "maven", - "node", - "powershell", - "python", - "ruby", - "rust", - "sshd", - "terraform" ] - baseImage: [ "ubuntu:focal" ] - steps: - - uses: actions/checkout@v2 - - - name: " Testing '${{ matrix.features }}' against '${{ matrix.baseImage }}'" - run: npx --yes ./devcontainers-cli-0.3.0.tgz features test -f ${{ matrix.features }} -i ${{ matrix.baseImage }} -c `pwd` -- cgit v1.2.3