aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorJosh Spicer <joshspicer@github.com>2022-06-03 17:46:25 +0300
committerGitHub <noreply@github.com>2022-06-03 17:46:25 +0300
commitc12a205ab8e195541acfe0cb654b4888e16ea05c (patch)
treea1a45ac7dec9f31fa62972a65414b6d6fd1fd60d /.github
parent283b8e1f8f5dec9e54199c107e772ce56683769e (diff)
Pass options via environment variables (#39)
* up to docker-in-docker converted * first pass at the rest of the features (and bash linting and updated CLI * move shell linter to own file * rename feature.json -> devcontainer-feature.json * continue on error * continue on error in right spot * formatting * fix AZ_VERSION * update python * restore variable name * update linter actions, fix dind/dfd/desktop scripts, add test-scenaerios * add tree because I like tree * glob for shell linter * fix test-scenarios * shell linter * more shell helper
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/linter-automated.yaml18
-rw-r--r--.github/workflows/linter-manual.yaml24
-rw-r--r--.github/workflows/test-pr.yaml74
-rw-r--r--.github/workflows/test-scenarios.yaml15
4 files changed, 98 insertions, 33 deletions
diff --git a/.github/workflows/linter-automated.yaml b/.github/workflows/linter-automated.yaml
new file mode 100644
index 0000000..7ff4015
--- /dev/null
+++ b/.github/workflows/linter-automated.yaml
@@ -0,0 +1,18 @@
+name: "Shell script linter"
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+
+jobs:
+ shellchecker:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Shell Linter
+ uses: azohra/shell-linter@v0.6.0
+ with:
+ path: "src/**/*.sh"
+ severity: "error" # [style, info, warning, error] \ No newline at end of file
diff --git a/.github/workflows/linter-manual.yaml b/.github/workflows/linter-manual.yaml
new file mode 100644
index 0000000..79d88d0
--- /dev/null
+++ b/.github/workflows/linter-manual.yaml
@@ -0,0 +1,24 @@
+name: "Shell script linter (manual)"
+on:
+ workflow_dispatch:
+ inputs:
+ path:
+ description: "Path to the shell scripts to lint"
+ required: true
+ default: "src/**/*.sh"
+ severity:
+ description: "Minimum Severity (style, info, warning, error)"
+ required: true
+ default: "style"
+
+jobs:
+ shellchecker:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Shell Linter
+ uses: azohra/shell-linter@v0.6.0
+ with:
+ path: ${{ github.event.inputs.path }}
+ severity: ${{ github.event.inputs.severity }} \ No newline at end of file
diff --git a/.github/workflows/test-pr.yaml b/.github/workflows/test-pr.yaml
index cafee9c..cb55100 100644
--- a/.github/workflows/test-pr.yaml
+++ b/.github/workflows/test-pr.yaml
@@ -1,5 +1,5 @@
name: "Test updated features (PR)"
-on:
+on:
pull_request:
jobs:
@@ -8,44 +8,52 @@ jobs:
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/**
- hugo: ./**/hugo/**
- java: ./**/java/**
- 'python jupyterlab': ./**/jupyterlab/**
- kubectl-helm-minikube: ./**/kubectl-helm-minikube/**
- node: ./**/node/**
- oryx: ./**/oryx/**
- php: ./**/php/**
- powershell: ./**/powershell/**
- python: ./**/python/**
- ruby: ./**/ruby/**
- rust: ./**/rust/**
- sshd: ./**/sshd/**
- terraform: ./**/terraform/**
+ - 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/**
+ hugo: ./**/hugo/**
+ java: ./**/java/**
+ 'python jupyterlab': ./**/jupyterlab/**
+ kubectl-helm-minikube: ./**/kubectl-helm-minikube/**
+ node: ./**/node/**
+ oryx: ./**/oryx/**
+ php: ./**/php/**
+ powershell: ./**/powershell/**
+ python: ./**/python/**
+ ruby: ./**/ruby/**
+ rust: ./**/rust/**
+ sshd: ./**/sshd/**
+ terraform: ./**/terraform/**
- test:
+ test:
needs: detect-changes
runs-on: ubuntu-latest
+ continue-on-error: true
strategy:
matrix:
features: ${{ fromJSON(needs.detect-changes.outputs.features) }}
- baseImage: [ "ubuntu:focal", "ubuntu:jammy", "debian:11", "mcr.microsoft.com/vscode/devcontainers/base:ubuntu", "mcr.microsoft.com/vscode/devcontainers/base:debian" ]
+ baseImage:
+ [
+ "ubuntu:focal",
+ "ubuntu:jammy",
+ "debian:11",
+ "mcr.microsoft.com/vscode/devcontainers/base:ubuntu",
+ "mcr.microsoft.com/vscode/devcontainers/base:debian",
+ ]
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
+ 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-scenarios.yaml b/.github/workflows/test-scenarios.yaml
new file mode 100644
index 0000000..5393449
--- /dev/null
+++ b/.github/workflows/test-scenarios.yaml
@@ -0,0 +1,15 @@
+name: "Test Scenarios"
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+jobs:
+ scenarios:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: " Running predefined test scenarios"
+ run: npx --yes ./devcontainers-cli-0.3.0.tgz features test --scenarios `pwd`/test-scenarios -c `pwd`