test updates to adopt https://github.com/devcontainers/cli/pull/124 (#114)
* test updates to adopt https://github.com/devcontainers/cli/pull/124 * remove accidental tgz check in * typo in option * typo in python install script on dotnet6/jammy branch * no scenarios * code review and test name * Delete install_os_provided_python.sh
This commit is contained in:
parent
84f4996643
commit
f82307ad60
31 changed files with 280 additions and 177 deletions
68
.github/workflows/test-all.yaml
vendored
68
.github/workflows/test-all.yaml
vendored
|
@ -37,13 +37,73 @@ jobs:
|
||||||
"rust",
|
"rust",
|
||||||
"sshd",
|
"sshd",
|
||||||
"terraform",
|
"terraform",
|
||||||
|
]
|
||||||
|
baseImage:
|
||||||
|
[
|
||||||
|
"ubuntu:focal",
|
||||||
|
"ubuntu:jammy",
|
||||||
|
"debian:11",
|
||||||
|
"mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||||
|
"mcr.microsoft.com/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:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: "Install latest devcontainer CLI"
|
- name: "Install latest devcontainer CLI"
|
||||||
run: npm install -g @devcontainers/cli@0.12.1
|
run: npm install -g @devcontainers/cli
|
||||||
|
|
||||||
- name: " Testing '${{ matrix.features }}' against '${{ matrix.baseImage }}'"
|
- name: "Generating tests for '${{ matrix.features }}' against '${{ matrix.baseImage }}'"
|
||||||
run: devcontainer features test -f ${{ matrix.features }} -i ${{ matrix.baseImage }} -c `pwd`
|
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 .
|
6
.github/workflows/test-manual.yaml
vendored
6
.github/workflows/test-manual.yaml
vendored
|
@ -3,7 +3,7 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
features:
|
features:
|
||||||
description: "list of features to execute tests against"
|
description: "List of features to execute tests against"
|
||||||
required: true
|
required: true
|
||||||
default: "go dotnet"
|
default: "go dotnet"
|
||||||
baseImage:
|
baseImage:
|
||||||
|
@ -22,7 +22,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: "Install latest devcontainer CLI"
|
- name: "Install latest devcontainer CLI"
|
||||||
run: npm install -g @devcontainers/cli@0.12.1
|
run: npm install -g @devcontainers/cli
|
||||||
|
|
||||||
- name: "Testing '${{ github.event.inputs.features }}' against '${{ github.event.inputs.baseImage }}'"
|
- name: "Testing '${{ github.event.inputs.features }}' against '${{ github.event.inputs.baseImage }}'"
|
||||||
run: devcontainer features test --features ${{ github.event.inputs.features }} --base-image ${{ github.event.inputs.baseImage }} --collection-folder `pwd` --log-level ${{ github.event.inputs.logLevel }}
|
run: devcontainer features test --features ${{ github.event.inputs.features }} --base-image ${{ github.event.inputs.baseImage }} --log-level ${{ github.event.inputs.logLevel }} .
|
||||||
|
|
28
.github/workflows/test-pr.yaml
vendored
28
.github/workflows/test-pr.yaml
vendored
|
@ -1,4 +1,4 @@
|
||||||
name: "PR -Test Updated Features"
|
name: "PR - Test Updated Features"
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
@ -50,14 +50,30 @@ jobs:
|
||||||
"ubuntu:focal",
|
"ubuntu:focal",
|
||||||
"ubuntu:jammy",
|
"ubuntu:jammy",
|
||||||
"debian:11",
|
"debian:11",
|
||||||
"mcr.microsoft.com/vscode/devcontainers/base:ubuntu",
|
"mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||||
"mcr.microsoft.com/vscode/devcontainers/base:debian",
|
"mcr.microsoft.com/devcontainers/base:debian",
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: "Install latest devcontainer CLI"
|
- name: "Install latest devcontainer CLI"
|
||||||
run: npm install -g @devcontainers/cli@0.12.1
|
run: npm install -g @devcontainers/cli
|
||||||
|
|
||||||
- name: "Testing '${{ matrix.features }}' against '${{ matrix.baseImage }}'"
|
- name: "Generating tests for '${{ matrix.features }}' against '${{ matrix.baseImage }}'"
|
||||||
run: devcontainer features test -f ${{ matrix.features }} -i ${{ matrix.baseImage }} -c `pwd`
|
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@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 .
|
19
.github/workflows/test-scenarios.yaml
vendored
19
.github/workflows/test-scenarios.yaml
vendored
|
@ -1,19 +0,0 @@
|
||||||
name: "Test Scenarios"
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
scenarios:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: "Install latest devcontainer CLI"
|
|
||||||
run: npm install -g @devcontainers/cli@0.12.1
|
|
||||||
|
|
||||||
- name: "Running predefined test scenarios"
|
|
||||||
run: devcontainer features test --scenarios `pwd`/test-scenarios -c `pwd`
|
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Optional: Import test library
|
|
||||||
source dev-container-features-test-lib
|
|
||||||
|
|
||||||
check "version 3.9 installed" ls -1 /usr/local/python/ | grep 3.9
|
|
||||||
check "version 3.8 installed" ls -1 /usr/local/python/ | grep 3.8
|
|
||||||
|
|
||||||
check "3.9 alias to python on path" python --version | grep 3.9
|
|
||||||
|
|
||||||
# Report result
|
|
||||||
reportResults
|
|
|
@ -1,130 +0,0 @@
|
||||||
{
|
|
||||||
"install_os_provided_python": {
|
|
||||||
"image": "mcr.microsoft.com/devcontainers/base:0-bullseye",
|
|
||||||
"features": {
|
|
||||||
"node": "latest",
|
|
||||||
"python": "os-provided"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_gradle_and_maven": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"java": {
|
|
||||||
"version": "latest",
|
|
||||||
"installGradle": true,
|
|
||||||
"installMaven": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_additional_php": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"php": {
|
|
||||||
"version": "8.1.4",
|
|
||||||
"additionalVersions": "8.0.17,8.0.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_additional_java": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"java": {
|
|
||||||
"version": "17",
|
|
||||||
"additionalVersions": "11,8"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_jupyterlab": {
|
|
||||||
"image": "mcr.microsoft.com/devcontainers/base:focal",
|
|
||||||
"remoteUser": "vscode",
|
|
||||||
"features": {
|
|
||||||
"common-utils": {
|
|
||||||
"username": "vscode"
|
|
||||||
},
|
|
||||||
"python": {
|
|
||||||
"installJupyterlab": true,
|
|
||||||
"configureJupyterlabAllowOrigin": "*"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_additional_node": {
|
|
||||||
"image": "debian:11",
|
|
||||||
"features": {
|
|
||||||
"node": {
|
|
||||||
"version": "latest",
|
|
||||||
"additionalVersions": "v17.9.1,v14.19.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_additional_python": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"python": {
|
|
||||||
"version": "3.10.5",
|
|
||||||
"additionalVersions": "3.8,3.9.13"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_additional_ruby": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"ruby": {
|
|
||||||
"version": "3.1.2",
|
|
||||||
"additionalVersions": "2.5,3.0.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_additional_dotnet": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"dotnet": {
|
|
||||||
"version": "6.0.301",
|
|
||||||
"additionalVersions": "5.0,3.1.420"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_dotnet_5": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"dotnet": {
|
|
||||||
"version": "5"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_dotnet_3": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"dotnet": {
|
|
||||||
"version": "3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust_at_pinned_version": {
|
|
||||||
"image": "ubuntu:focal",
|
|
||||||
"features": {
|
|
||||||
"rust": {
|
|
||||||
"version": "1.62.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_cudnn_nvxt": {
|
|
||||||
"image": "debian",
|
|
||||||
"features": {
|
|
||||||
"nvidia-cuda": {
|
|
||||||
"installCudnn": true,
|
|
||||||
"installNvtx": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"install_cudnn_nvxt_version": {
|
|
||||||
"image": "debian",
|
|
||||||
"features": {
|
|
||||||
"nvidia-cuda": {
|
|
||||||
"installCudnn": true,
|
|
||||||
"installNvtx": true,
|
|
||||||
"cudaVersion": "11.5",
|
|
||||||
"cudnnVersion": "8.3.2.44"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
14
test/_global/all_the_clis.sh
Normal file
14
test/_global/all_the_clis.sh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Optional: Import test library
|
||||||
|
source dev-container-features-test-lib
|
||||||
|
|
||||||
|
# Definition specific tests
|
||||||
|
check "check for aws" aws --version
|
||||||
|
check "check for gh" gh --version
|
||||||
|
check "check for azure" az --version
|
||||||
|
|
||||||
|
# Report result
|
||||||
|
reportResults
|
14
test/_global/node_java_rust.sh
Normal file
14
test/_global/node_java_rust.sh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Optional: Import test library
|
||||||
|
source dev-container-features-test-lib
|
||||||
|
|
||||||
|
# Definition specific tests
|
||||||
|
check "check for node" node --version
|
||||||
|
check "check for java" java --version
|
||||||
|
check "check for rust" rustc --version
|
||||||
|
|
||||||
|
# Report result
|
||||||
|
reportResults
|
18
test/_global/scenarios.json
Normal file
18
test/_global/scenarios.json
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"all_the_clis": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"aws-cli": {},
|
||||||
|
"azure-cli": {},
|
||||||
|
"github-cli": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_java_rust": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"node": {},
|
||||||
|
"java": {},
|
||||||
|
"rust": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
test/dotnet/scenarios.json
Normal file
27
test/dotnet/scenarios.json
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"install_additional_dotnet": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"dotnet": {
|
||||||
|
"version": "6.0.301",
|
||||||
|
"additionalVersions": "5.0,3.1.420"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install_dotnet_3": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"dotnet": {
|
||||||
|
"version": "3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install_dotnet_5": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"dotnet": {
|
||||||
|
"version": "5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
test/java/scenarios.json
Normal file
21
test/java/scenarios.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"install_additional_java": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"java": {
|
||||||
|
"version": "17",
|
||||||
|
"additionalVersions": "11,8"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install_gradle_and_maven": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"java": {
|
||||||
|
"version": "latest",
|
||||||
|
"installGradle": true,
|
||||||
|
"installMaven": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
test/node/scenarios.json
Normal file
11
test/node/scenarios.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"install_additional_node": {
|
||||||
|
"image": "debian:11",
|
||||||
|
"features": {
|
||||||
|
"node": {
|
||||||
|
"version": "latest",
|
||||||
|
"additionalVersions": "v17.9.1,v14.19.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
test/nvidia-cuda/scenarios.json
Normal file
22
test/nvidia-cuda/scenarios.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"install_cudnn_nvxt": {
|
||||||
|
"image": "debian",
|
||||||
|
"features": {
|
||||||
|
"nvidia-cuda": {
|
||||||
|
"installCudnn": true,
|
||||||
|
"installNvtx": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install_cudnn_nvxt_version": {
|
||||||
|
"image": "debian",
|
||||||
|
"features": {
|
||||||
|
"nvidia-cuda": {
|
||||||
|
"installCudnn": true,
|
||||||
|
"installNvtx": true,
|
||||||
|
"cudaVersion": "11.5",
|
||||||
|
"cudnnVersion": "8.3.2.44"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
test/php/scenarios.json
Normal file
11
test/php/scenarios.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"install_additional_php": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"php": {
|
||||||
|
"version": "8.1.4",
|
||||||
|
"additionalVersions": "8.0.17,8.0.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,4 +13,4 @@ check "pip is installed" pip3 --version
|
||||||
check "node is installed" node --version
|
check "node is installed" node --version
|
||||||
|
|
||||||
# Report result
|
# Report result
|
||||||
reportResults
|
reportResults
|
31
test/python/scenarios.json
Normal file
31
test/python/scenarios.json
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"install_additional_python": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"python": {
|
||||||
|
"version": "3.10.5",
|
||||||
|
"additionalVersions": "3.8,3.9.13"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install_jupyterlab": {
|
||||||
|
"image": "mcr.microsoft.com/vscode/devcontainers/base:focal",
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
"features": {
|
||||||
|
"common-utils": {
|
||||||
|
"username": "vscode"
|
||||||
|
},
|
||||||
|
"python": {
|
||||||
|
"installJupyterlab": true,
|
||||||
|
"configureJupyterlabAllowOrigin": "*"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install_os_provided_python": {
|
||||||
|
"image": "mcr.microsoft.com/devcontainers/base:0-bullseye",
|
||||||
|
"features": {
|
||||||
|
"node": "latest",
|
||||||
|
"python": "os-provided"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
test/ruby/scenarios.json
Normal file
11
test/ruby/scenarios.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"install_additional_ruby": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"ruby": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"additionalVersions": "2.5,3.0.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
test/rust/scenarios.json
Normal file
10
test/rust/scenarios.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"rust_at_pinned_version": {
|
||||||
|
"image": "ubuntu:focal",
|
||||||
|
"features": {
|
||||||
|
"rust": {
|
||||||
|
"version": "1.62.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue