From 9a9a1c303dce26c78049ce93d3938efd88bdb566 Mon Sep 17 00:00:00 2001 From: diguage Date: Mon, 7 Mar 2022 08:47:56 +0800 Subject: [PATCH] add test case and manifest for Node.js --- Dockerfile | 4 +- README.adoc | 1 + tests/asciidoctor.bats | 5 ++ updatecli/updatecli.d/nodejs.yml | 90 ++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 updatecli/updatecli.d/nodejs.yml diff --git a/Dockerfile b/Dockerfile index 29213227..7d03853c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,7 @@ ARG asciidoctor_revealjs_version=4.1.0 ARG kramdown_asciidoc_version=2.0.0 ARG asciidoctor_bibtex_version=0.8.0 ARG asciidoctor_kroki_version=0.5.0 +ARG nodejs_version=16.14.0 ARG asciidoctor_web_pdf_version=1.0.0-alpha.14 ARG asciidoctor_kroki_npm_version=0.15.4 @@ -26,6 +27,7 @@ ENV ASCIIDOCTOR_VERSION=${asciidoctor_version} \ KRAMDOWN_ASCIIDOC_VERSION=${kramdown_asciidoc_version} \ ASCIIDOCTOR_BIBTEX_VERSION=${asciidoctor_bibtex_version} \ ASCIIDOCTOR_KROKI_VERSION=${asciidoctor_kroki_version} \ + NODEJS_VERSION=${nodejs_version} \ ASCIIDOCTOR_WEB_PDF_VERSION=${asciidoctor_web_pdf_version} \ ASCIIDOCTOR_KROKI_NPM_VERSION=${asciidoctor_kroki_npm_version} @@ -105,7 +107,7 @@ RUN apk add --no-cache \ unzip \ which \ font-noto-cjk \ - nodejs + nodejs=${NODEJS_VERSION} # Installing Ruby Gems for additional functionality RUN apk add --no-cache --virtual .rubymakedepends \ diff --git a/README.adoc b/README.adoc index ff6aa77e..71850aa7 100644 --- a/README.adoc +++ b/README.adoc @@ -10,6 +10,7 @@ :KRAMDOWN_ASCIIDOC_VERSION: 2.0.0 :ASCIIDOCTOR_BIBTEX_VERSION: 0.8.0 :ASCIIDOCTOR_KROKI_VERSION: 0.5.0 +:NODEJS_VERSION:16.14.0 :ASCIIDOCTOR_WEB_PDF_VERSION: 1.0.0-alpha.14 ifdef::env-github[] :tip-caption: :bulb: diff --git a/tests/asciidoctor.bats b/tests/asciidoctor.bats index 75d0f38f..cf9c149b 100644 --- a/tests/asciidoctor.bats +++ b/tests/asciidoctor.bats @@ -55,6 +55,11 @@ teardown() { | grep "${ASCIIDOCTOR_WEB_PDF_VERSION}" } +@test "Node.js is installed and in version ${NODEJS_VERSION}" { + docker run -t --rm "${DOCKER_IMAGE_NAME_TO_TEST}" node -v \ + | grep "${NODEJS_VERSION}" +} + @test "asciidoctor-revealjs is callable without error" { docker run -t --rm "${DOCKER_IMAGE_NAME_TO_TEST}" asciidoctor-revealjs -v \ | grep "${ASCIIDOCTOR_REVEALJS_VERSION}" diff --git a/updatecli/updatecli.d/nodejs.yml b/updatecli/updatecli.d/nodejs.yml new file mode 100644 index 00000000..c08ff634 --- /dev/null +++ b/updatecli/updatecli.d/nodejs.yml @@ -0,0 +1,90 @@ +--- +title: "Bump Node.js version" + +scms: + default: + kind: github + spec: + user: "{{ .github.user }}" + email: "{{ .github.email }}" + owner: "{{ requiredEnv .github.owner }}" + repository: "{{ requiredEnv .github.repository }}" + token: "{{ requiredEnv .github.token }}" + username: "{{ .github.username }}" + branch: "{{ .github.branch }}" + +sources: + latestVersion: + kind: githubRelease + name: "Get the latest Node.js version" + spec: + owner: "nodejs" + repository: "node" + token: "{{ requiredEnv .github.token }}" + username: "{{ .github.username }}" + versionFilter: + kind: LTS + transformers: + - trimPrefix: "v" + +conditions: + testDockerfileArgVersion: + name: "Does the Dockerfile have an ARG instruction which key is nodejs_version?" + kind: dockerfile + spec: + file: Dockerfile + instruction: + keyword: "ARG" + matcher: "nodejs_version" + testVersionInReadme: + name: "Does the README.adoc have a variable NODEJS_VERSION" + kind: file + spec: + file: README.adoc + matchPattern: '(?m:^:NODEJS_VERSION:.*)' + testVersionInTestHarness: + name: "Does the test harness have variable NODEJS_VERSION" + kind: file + spec: + file: tests/asciidoctor.bats + matchPattern: '(?m:^NODEJS_VERSION=.*)' + +targets: + updateDockerfile: + name: "Update the value of ARG nodejs_version in the Dockerfile" + kind: dockerfile + spec: + file: Dockerfile + instruction: + keyword: "ARG" + matcher: "nodejs_version" + scmID: default + updateTestHarness: + name: "Update the key NODEJS_VERSION in the test harness" + kind: file + spec: + file: tests/asciidoctor.bats + matchPattern: '(?m:^NODEJS_VERSION=.*)' + content: 'NODEJS_VERSION={{ source `latestVersion` }}' + scmID: default + updateReadme: + name: "Update the key NODEJS_VERSION in the README.adoc file" + kind: file + spec: + file: README.adoc + matchPattern: '(?m:^:NODEJS_VERSION:.*)' + content: ':NODEJS_VERSION: {{ source `latestVersion` }}' + scmID: default + +pullrequests: + default: + kind: github + scmID: default + targets: + - updateDockerfile + - updateTestHarness + - updateReadme + spec: + labels: + - chore + - dependencies