File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 5555 strategy:
5656 fail-fast: false
5757 matrix: ${{ fromJson(needs.gen-matrix.outputs.matrix) }}
58+ env:
59+ NODE_VERSION: ${{ matrix.version }}
60+ IMAGE_TAG: node:${{ matrix.version }}-${{ matrix.variant }}
5861
5962 steps:
6063 - name: Get short node version
6669
6770 - name: Checkout
6871 uses: actions/checkout@v2
72+ with:
73+ submodules: true
6974
7075 - name: Build image
7176 uses: docker/build-push-action@v2
7479 load: true
7580 context: .
7681 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 }}
9483
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