File tree 4 files changed +46
-19
lines changed
4 files changed +46
-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
+ setup () {
2
+ tmp_file=$( mktemp)
3
+ echo ' console.log("success")' > " ${tmp_file} "
4
+ }
5
+
6
+ @test " Test for node version" {
7
+ run docker run --rm " ${IMAGE_TAG} " node --print " process.versions.node"
8
+ [ " $output " = " ${NODE_VERSION} " ]
9
+ }
10
+
11
+ @test " Test for node version, without directly invoking node" {
12
+ run docker run --rm " ${IMAGE_TAG} " --print " process.versions.node"
13
+ [ " $output " = " ${NODE_VERSION} " ]
14
+ }
15
+
16
+ @test " Test for npm" {
17
+ run docker run --rm " ${IMAGE_TAG} " npm --version
18
+ [ -n " $output " ]
19
+ }
20
+
21
+ @test " Test for yarn" {
22
+ run docker run --rm " ${IMAGE_TAG} " yarn --version
23
+ [ -n " $output " ]
24
+ }
25
+
26
+ @test " Verify entrypoint runs regular, non-executable file with node" {
27
+ run docker run --rm -v " ${tmp_file} :/index.js" " ${IMAGE_TAG} " index.js
28
+ [ " $output " = ' success' ]
29
+ }
30
+
31
+ @test " Verify entrypoint runs regular, non-executable file inside subdirectory with node" {
32
+ run docker run --rm -v " ${tmp_file} :/app/index.js" " ${IMAGE_TAG} " app/index.js
33
+ [ " $output " = ' success' ]
34
+ }
You can’t perform that action at this time.
0 commit comments