Skip to content

Commit 85fd36c

Browse files
authored
fix: simplify dockerimage job (#727)
1 parent f2e7bef commit 85fd36c

File tree

9 files changed

+70
-118
lines changed

9 files changed

+70
-118
lines changed

.github/workflows/dockerimage.yml

Lines changed: 34 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -10,102 +10,51 @@ on:
1010
jobs:
1111
build:
1212
runs-on: ubuntu-latest
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
ruby-version: [3.1, 3.2, 3.3, 3.4]
17+
node-version: [18, 20, 22]
18+
variant: [default, slim, alpine]
19+
1320
steps:
1421
- uses: actions/[email protected]
1522

16-
- name: Build the Docker image
23+
- name: Build and test Docker image
1724
run: |
18-
echo "3.1 with Node.js 18"
19-
docker run -i $(docker build -q 3.1/18) /bin/sh -c "ruby --version && node --version && npm --version"
20-
echo "3.1 slim with Node.js 18"
21-
docker run -i $(docker build -q 3.1/18/slim) /bin/sh -c "ruby --version && node --version && npm --version"
22-
echo "3.1 alpine with Node.js 18"
23-
docker run -i $(docker build -q 3.1/18/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
24-
25-
echo "3.2 with Node.js 18"
26-
docker run -i $(docker build -q 3.2/18) /bin/sh -c "ruby --version && node --version && npm --version"
27-
echo "3.2 slim with Node.js 18"
28-
docker run -i $(docker build -q 3.2/18/slim) /bin/sh -c "ruby --version && node --version && npm --version"
29-
echo "3.2 alpine with Node.js 18"
30-
docker run -i $(docker build -q 3.2/18/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
31-
32-
echo "3.3 with Node.js 18"
33-
docker run -i $(docker build -q 3.3/18) /bin/sh -c "ruby --version && node --version && npm --version"
34-
echo "3.3 slim with Node.js 18"
35-
docker run -i $(docker build -q 3.3/18/slim) /bin/sh -c "ruby --version && node --version && npm --version"
36-
echo "3.3 alpine with Node.js 18"
37-
docker run -i $(docker build -q 3.3/18/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
38-
39-
echo "3.4 with Node.js 18"
40-
docker run -i $(docker build -q 3.4/18) /bin/sh -c "ruby --version && node --version && npm --version"
41-
echo "3.4 slim with Node.js 18"
42-
docker run -i $(docker build -q 3.4/18/slim) /bin/sh -c "ruby --version && node --version && npm --version"
43-
echo "3.4 alpine with Node.js 18"
44-
docker run -i $(docker build -q 3.4/18/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
45-
46-
echo "3.1 with Node.js 20"
47-
docker run -i $(docker build -q 3.1/20) /bin/sh -c "ruby --version && node --version && npm --version"
48-
echo "3.1 slim with Node.js 20"
49-
docker run -i $(docker build -q 3.1/20/slim) /bin/sh -c "ruby --version && node --version && npm --version"
50-
echo "3.1 alpine with Node.js 20"
51-
docker run -i $(docker build -q 3.1/20/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
52-
53-
echo "3.2 with Node.js 20"
54-
docker run -i $(docker build -q 3.2/20) /bin/sh -c "ruby --version && node --version && npm --version"
55-
echo "3.2 slim with Node.js 20"
56-
docker run -i $(docker build -q 3.2/20/slim) /bin/sh -c "ruby --version && node --version && npm --version"
57-
echo "3.2 alpine with Node.js 20"
58-
docker run -i $(docker build -q 3.2/20/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
59-
60-
echo "3.3 with Node.js 20"
61-
docker run -i $(docker build -q 3.3/20) /bin/sh -c "ruby --version && node --version && npm --version"
62-
echo "3.3 slim with Node.js 20"
63-
docker run -i $(docker build -q 3.3/20/slim) /bin/sh -c "ruby --version && node --version && npm --version"
64-
echo "3.3 alpine with Node.js 20"
65-
docker run -i $(docker build -q 3.3/20/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
25+
if [ "${{ matrix.variant }}" = "default" ]; then
26+
VARIANT_PATH=""
27+
VARIANT_LABEL=""
28+
else
29+
VARIANT_PATH="/${{ matrix.variant }}"
30+
VARIANT_LABEL=" ${{ matrix.variant }}"
31+
fi
32+
33+
IMAGE_PATH="${{ matrix.ruby-version }}/${{ matrix.node-version }}${VARIANT_PATH}"
34+
echo "${{ matrix.ruby-version }} with Node.js ${{ matrix.node-version }}${VARIANT_LABEL}"
35+
36+
# Run container and capture version outputs
37+
VERSIONS=$(docker run -i $(docker build -q ${IMAGE_PATH}) /bin/sh -c "ruby --version && node --version && npm --version")
38+
echo "$VERSIONS"
39+
40+
# Check Ruby version
41+
if ! echo "$VERSIONS" | grep -q "ruby ${{ matrix.ruby-version }}"; then
42+
echo "::error::Expected Ruby ${{ matrix.ruby-version }} but got different version"
43+
exit 1
44+
fi
45+
46+
# Check Node version
47+
if ! echo "$VERSIONS" | grep -q "v${{ matrix.node-version }}"; then
48+
echo "::error::Expected Node.js ${{ matrix.node-version }} but got different version"
49+
exit 1
50+
fi
6651
67-
echo "3.4 with Node.js 20"
68-
docker run -i $(docker build -q 3.4/20) /bin/sh -c "ruby --version && node --version && npm --version"
69-
echo "3.4 slim with Node.js 20"
70-
docker run -i $(docker build -q 3.4/20/slim) /bin/sh -c "ruby --version && node --version && npm --version"
71-
echo "3.4 alpine with Node.js 20"
72-
docker run -i $(docker build -q 3.4/20/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
73-
74-
echo "3.1 with Node.js 22"
75-
docker run -i $(docker build -q 3.1/22) /bin/sh -c "ruby --version && node --version && npm --version"
76-
echo "3.1 slim with Node.js 22"
77-
docker run -i $(docker build -q 3.1/22/slim) /bin/sh -c "ruby --version && node --version && npm --version"
78-
echo "3.1 alpine with Node.js 22"
79-
docker run -i $(docker build -q 3.1/22/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
80-
81-
echo "3.2 with Node.js 22"
82-
docker run -i $(docker build -q 3.2/22) /bin/sh -c "ruby --version && node --version && npm --version"
83-
echo "3.2 slim with Node.js 22"
84-
docker run -i $(docker build -q 3.2/22/slim) /bin/sh -c "ruby --version && node --version && npm --version"
85-
echo "3.2 alpine with Node.js 22"
86-
docker run -i $(docker build -q 3.2/22/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
87-
88-
echo "3.3 with Node.js 22"
89-
docker run -i $(docker build -q 3.3/22) /bin/sh -c "ruby --version && node --version && npm --version"
90-
echo "3.3 slim with Node.js 22"
91-
docker run -i $(docker build -q 3.3/22/slim) /bin/sh -c "ruby --version && node --version && npm --version"
92-
echo "3.3 alpine with Node.js 22"
93-
docker run -i $(docker build -q 3.3/22/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
94-
95-
echo "3.4 with Node.js 22"
96-
docker run -i $(docker build -q 3.4/22) /bin/sh -c "ruby --version && node --version && npm --version"
97-
echo "3.4 slim with Node.js 22"
98-
docker run -i $(docker build -q 3.4/22/slim) /bin/sh -c "ruby --version && node --version && npm --version"
99-
echo "3.4 alpine with Node.js 22"
100-
docker run -i $(docker build -q 3.4/22/alpine) /bin/sh -c "ruby --version && node --version && npm --version"
10152
auto-merge:
10253
runs-on: ubuntu-latest
10354
needs: build
104-
10555
permissions:
10656
pull-requests: write
10757
contents: write
108-
10958
steps:
11059
- name: Automatically merge dependabot upgrades
11160
uses: fastify/[email protected]

3.1/20/alpine/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN apk -U upgrade \
7+
RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \
8+
&& echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \
9+
&& apk -U upgrade \
810
&& apk add --no-cache \
9-
nodejs \
10-
npm \
11+
ada-libs@old-stable \
12+
nodejs@old-stable \
13+
npm@old-stable \
1114
yarn

3.1/22/alpine/Dockerfile

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
8-
&& echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
9-
&& apk -U upgrade \
7+
RUN apk -U upgrade \
108
&& apk add --no-cache \
11-
nodejs-current@edge \
12-
npm@edge \
9+
nodejs \
10+
npm \
1311
yarn

3.2/20/alpine/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN apk -U upgrade \
7+
RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \
8+
&& echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \
9+
&& apk -U upgrade \
810
&& apk add --no-cache \
9-
nodejs \
10-
npm \
11+
ada-libs@old-stable \
12+
nodejs@old-stable \
13+
npm@old-stable \
1114
yarn

3.2/22/alpine/Dockerfile

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
8-
&& echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
9-
&& apk -U upgrade \
7+
RUN apk -U upgrade \
108
&& apk add --no-cache \
11-
nodejs-current@edge \
12-
npm@edge \
9+
nodejs \
10+
npm \
1311
yarn

3.3/20/alpine/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN apk -U upgrade \
7+
RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \
8+
&& echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \
9+
&& apk -U upgrade \
810
&& apk add --no-cache \
9-
nodejs \
10-
npm \
11+
ada-libs@old-stable \
12+
nodejs@old-stable \
13+
npm@old-stable \
1114
yarn

3.3/22/alpine/Dockerfile

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
8-
&& echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
9-
&& apk -U upgrade \
7+
RUN apk -U upgrade \
108
&& apk add --no-cache \
11-
nodejs-current@edge \
12-
npm@edge \
9+
nodejs \
10+
npm \
1311
yarn

3.4/20/alpine/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN apk -U upgrade \
7+
RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \
8+
&& echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \
9+
&& apk -U upgrade \
810
&& apk add --no-cache \
9-
nodejs \
10-
npm \
11+
ada-libs@old-stable \
12+
nodejs@old-stable \
13+
npm@old-stable \
1114
yarn

3.4/22/alpine/Dockerfile

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ LABEL maintainer "Tim Brust <[email protected]>"
44
ARG REFRESHED_AT
55
ENV REFRESHED_AT $REFRESHED_AT
66

7-
RUN echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
8-
&& echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
9-
&& apk -U upgrade \
7+
RUN apk -U upgrade \
108
&& apk add --no-cache \
11-
nodejs-current@edge \
12-
npm@edge \
9+
nodejs \
10+
npm \
1311
yarn
14-

0 commit comments

Comments
 (0)