File tree 4 files changed +48
-19
lines changed 4 files changed +48
-19
lines changed Original file line number Diff line number Diff line change 55
55
strategy :
56
56
fail-fast : false
57
57
matrix : ${{ fromJson(needs.gen-matrix.outputs.matrix) }}
58
+ env :
59
+ NODE_VERSION : ${{ matrix.version }}
60
+ IMAGE_TAG : node:${{ matrix.version }}-${{ matrix.variant }}
58
61
59
62
steps :
60
63
- name : Get short node version
66
69
67
70
- name : Checkout
68
71
uses : actions/checkout@v2
72
+ with :
73
+ submodules : true
69
74
70
75
- name : Build image
71
76
uses : docker/build-push-action@v2
74
79
load : true
75
80
context : .
76
81
file : ./${{ steps.short-version.outputs.result }}/${{ matrix.variant }}/Dockerfile
77
- tags : node:${{ matrix.version }}-${{ matrix.variant }}
78
-
79
- - name : Test for node version
80
- run : |
81
- image_node_version=$(docker run --rm node:${{ matrix.version }}-${{ matrix.variant }} node --print "process.versions.node")
82
- echo "Expected: \"${{ matrix.version }}\", Got: \"${image_node_version}\""
83
- [ "${image_node_version}" == "${{ matrix.version }}" ]
84
-
85
- - name : Verify entrypoint runs regular, non-executable files with node
86
- run : |
87
- tmp_file=$(mktemp)
88
- echo 'console.log("success")' > "${tmp_file}"
89
- output=$(docker run --rm -v "${tmp_file}:/app/index.js" node:${{ matrix.version }}-${{ matrix.variant }} app/index.js)
90
- [ "${output}" = 'success' ]
91
-
92
- - name : Test for npm
93
- run : docker run --rm node:${{ matrix.version }}-${{ matrix.variant }} npm --version
82
+ tags : ${{ env.IMAGE_TAG }}
94
83
95
- - name : Test for yarn
96
- run : docker run --rm node:${{ matrix.version }}-${{ matrix.variant }} yarn --version
84
+ - name : Run tests with BATS
85
+ run : test/bats/bin/bats --verbose-run test/docker-image.bats
Original file line number Diff line number Diff line change
1
+ [submodule "test/bats "]
2
+ path = test/bats
3
+ url = https://github.com/bats-core/bats-core.git
Original file line number Diff line number Diff line change
1
+ # Docs: https://bats-core.readthedocs.io/en/stable/writing-tests.html
2
+
3
+ setup () {
4
+ tmp_file=$( mktemp)
5
+ echo ' console.log("success")' > " ${tmp_file} "
6
+ }
7
+
8
+ @test " Test for node version" {
9
+ run -0 docker run --rm " ${IMAGE_TAG} " node --print " process.versions.node"
10
+ [ " $output " = " ${NODE_VERSION} " ]
11
+ }
12
+
13
+ @test " Test for node version, without directly invoking node" {
14
+ run -0 docker run --rm " ${IMAGE_TAG} " --print " process.versions.node"
15
+ [ " $output " = " ${NODE_VERSION} " ]
16
+ }
17
+
18
+ @test " Test for npm" {
19
+ run -0 docker run --rm " ${IMAGE_TAG} " npm --version
20
+ [ -n " $output " ]
21
+ }
22
+
23
+ @test " Test for yarn" {
24
+ run -0 docker run --rm " ${IMAGE_TAG} " yarn --version
25
+ [ -n " $output " ]
26
+ }
27
+
28
+ @test " Verify entrypoint runs relative path pointing to regular, non-executable file with node" {
29
+ run -0 docker run --rm -v " ${tmp_file} :/index.js" " ${IMAGE_TAG} " index.js
30
+ [ " $output " = ' success' ]
31
+ }
32
+
33
+ @test " Verify entrypoint runs absolute path pointing to regular, non-executable file with node" {
34
+ run -0 docker run --rm -v " ${tmp_file} :/index.js" " ${IMAGE_TAG} " /index.js
35
+ [ " $output " = ' success' ]
36
+ }
You can’t perform that action at this time.
0 commit comments