diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/linter-automated.yaml | 18 | ||||
-rw-r--r-- | .github/workflows/linter-manual.yaml | 24 | ||||
-rw-r--r-- | .github/workflows/test-pr.yaml | 74 | ||||
-rw-r--r-- | .github/workflows/test-scenarios.yaml | 15 |
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` |