diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a8dead1..b5545c8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -4,6 +4,7 @@ on: [push, pull_request] env: node18-image: ubuntu/chiselled-node:18-test + node20-image: ubuntu/nodejs:20-test ubuntu-release: 24.04 jobs: @@ -35,6 +36,13 @@ jobs: --output type=oci,dest="chiselled-node.${{ matrix.arch }}.tar" \ node18 + - name: Build the ${{ env.node20-image }} image on ${{ matrix.arch }} + id: build + uses: canonical/craft-actions/rockcraft-pack@main + with: + path: node20/ + verbosity: debug + - name: Run tests if: ${{ matrix.arch == 'amd64' }} run: | @@ -42,7 +50,9 @@ jobs: sudo apt-get update sudo apt-get install -y skopeo skopeo copy oci-archive:"chiselled-node.${{ matrix.arch }}.tar" docker-daemon:${{ env.node18-image }} + skopeo copy oci-archive:node20/nodejs_20_amd64.rock docker-daemon:${{ env.node20-image }} ./tests/run-all-tests ${{ env.node18-image }} + ./tests/run-all-tests ${{ env.node20-image }} - uses: actions/upload-artifact@v3 with: diff --git a/tests/app_hello-world/runtest b/tests/app_hello-world/runtest index cce0cd8..95984ba 100755 --- a/tests/app_hello-world/runtest +++ b/tests/app_hello-world/runtest @@ -4,7 +4,11 @@ set -ex echo "Running test for Hello World app..." test() { - docker run --rm -v "$PWD/src":/src:ro "$1" /src/main.js + if [ "$1" == "$NODE18" ]; then + docker run --rm -v "$PWD/src":/src:ro "$1" /src/main.js + else + docker run --rm -v "$PWD/src":/src:ro "$1" exec node /src/main.js + fi } -test "$NODE18" +test "$NODE_X" diff --git a/tests/app_http-server/runtest b/tests/app_http-server/runtest index fc2fe96..bd28247 100755 --- a/tests/app_http-server/runtest +++ b/tests/app_http-server/runtest @@ -5,7 +5,11 @@ echo "Running test for HTTP Server app..." test() { port=1234 - container="$(docker run -d --rm -v "$PWD/src":/src:ro -p $port:8080 "$1" /src/main.js)" + if [ "$1" == "$NODE18" ]; then + container="$(docker run -d --rm -v "$PWD/src":/src:ro -p $port:8080 "$1" /src/main.js)" + else + container="$(docker run -d --rm -v "$PWD/src":/src:ro -p $port:8080 "$1" exec node /src/main.js)" + fi sleep 1 output="$(curl http://localhost:$port/)" [ "$output" == "Hello world!" ] || exit 1 @@ -16,4 +20,4 @@ cleanup() { } trap cleanup EXIT -test "$NODE18" +test "$NODE_X" diff --git a/tests/app_simple-modules/runtest b/tests/app_simple-modules/runtest index 72a1993..4fe51f2 100755 --- a/tests/app_simple-modules/runtest +++ b/tests/app_simple-modules/runtest @@ -9,8 +9,12 @@ build() { } test() { - docker run --rm -v "$PWD/dist":/src:ro "$1" /src/index.js + if [ "$1" == "$NODE18" ]; then + docker run --rm -v "$PWD/dist":/src:ro "$1" /src/index.js + else + docker run --rm -v "$PWD/dist":/src:ro "$1" exec node /src/index.js + fi } build -test "$NODE18" +test "$NODE_X" diff --git a/tests/app_simple-typescript/runtest b/tests/app_simple-typescript/runtest index 0cbb75c..0caef21 100755 --- a/tests/app_simple-typescript/runtest +++ b/tests/app_simple-typescript/runtest @@ -11,7 +11,11 @@ build() { test() { port=1234 - container="$(docker run -d --rm -v "$PWD/dist":/src:ro -p $port:3000 "$1" /src/index.js)" + if [ "$1" == "$NODE18" ]; then + container="$(docker run -d --rm -v "$PWD/dist":/src:ro -p $port:3000 "$1" /src/index.js)" + else + container="$(docker run -d --rm -v "$PWD/dist":/src:ro -p $port:3000 "$1" exec node /src/index.js)" + fi sleep 1 local output expected output="$(curl http://localhost:$port/)" @@ -27,4 +31,4 @@ cleanup() { trap cleanup EXIT build -test "$NODE18" +test "$NODE_X" diff --git a/tests/app_simple-wasm/runtest b/tests/app_simple-wasm/runtest index 97e9c0f..433271d 100755 --- a/tests/app_simple-wasm/runtest +++ b/tests/app_simple-wasm/runtest @@ -11,8 +11,12 @@ build() { } test() { - docker run --rm -v "$PWD/dist":/src:ro "$1" /src/index.mjs + if [ "$1" == "$NODE18" ]; then + docker run --rm -v "$PWD/dist":/src:ro "$1" /src/index.mjs + else + docker run --rm -v "$PWD/dist":/src:ro "$1" exec node /src/index.mjs + fi } build -test "$NODE18" +test "$NODE_X" diff --git a/tests/run-all-tests b/tests/run-all-tests index 4a98dca..cc52d73 100755 --- a/tests/run-all-tests +++ b/tests/run-all-tests @@ -3,7 +3,9 @@ set -ex echo "Running tests..." -export NODE18=${1:-"ubuntu/chiselled-node:18-test"} +export NODE_X=${1:-"ubuntu/chiselled-node:18-test"} +export NODE18="ubuntu/chiselled-node:18-test" +export NODE20="ubuntu/nodejs:20-test" CURRENT_DIR="$(dirname "$(readlink -f "$0")")"