@@ -11,89 +11,224 @@ concurrency:
1111 cancel-in-progress : true
1212
1313jobs :
14- pr-tests :
14+ build-base-images :
1515 runs-on : ubuntu-latest
16- env :
17- DOCKER_IMAGE : ortussolutions/commandbox
18- COMMANDBOX_VERSION : 6.3.2
1916 strategy :
2017 matrix :
2118 include :
22- - BUILD_IMAGE_DOCKERFILE : builds/debian/Base.Dockerfile
23- BUILD_IMAGE_TAG : latest
24- - BUILD_IMAGE_DOCKERFILE : builds/debian/Base.Dockerfile
25- BUILD_IMAGE_TAG : jre11
19+ # Foundation images (builds/base/* - eclipse-temurin based)
20+ - BUILD_IMAGE_DOCKERFILE : builds/base/Dockerfile
21+ BUILD_IMAGE_TAGS : " latest,jre11"
2622 - BUILD_IMAGE_DOCKERFILE : builds/base/JDK11.Dockerfile
27- BUILD_IMAGE_TAG : jdk11
28- - BUILD_IMAGE_DOCKERFILE : builds/debian/Base.JDK8.Dockerfile
29- BUILD_IMAGE_TAG : jdk8
23+ BUILD_IMAGE_TAGS : " jdk11"
24+ - BUILD_IMAGE_DOCKERFILE : builds/base/JDK17.Dockerfile
25+ BUILD_IMAGE_TAGS : " jdk17"
26+ - BUILD_IMAGE_DOCKERFILE : builds/base/JDK21.Dockerfile
27+ BUILD_IMAGE_TAGS : " jdk21"
28+ - BUILD_IMAGE_DOCKERFILE : builds/base/JDK24.Dockerfile
29+ BUILD_IMAGE_TAGS : " jdk24"
30+ - BUILD_IMAGE_DOCKERFILE : builds/base/JDK25.Dockerfile
31+ BUILD_IMAGE_TAGS : " jdk25"
32+ - BUILD_IMAGE_DOCKERFILE : builds/base/JRE17.Dockerfile
33+ BUILD_IMAGE_TAGS : " jre17"
34+ - BUILD_IMAGE_DOCKERFILE : builds/base/JRE21.Dockerfile
35+ BUILD_IMAGE_TAGS : " jre21"
36+ - BUILD_IMAGE_DOCKERFILE : builds/base/JRE24.Dockerfile
37+ BUILD_IMAGE_TAGS : " jre24"
38+ - BUILD_IMAGE_DOCKERFILE : builds/base/JRE25.Dockerfile
39+ BUILD_IMAGE_TAGS : " jre25"
40+
41+ # RHEL/UBI9 foundation images
42+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.Dockerfile
43+ BUILD_IMAGE_TAGS : " ubi10,jre11-rhel"
44+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JDK11.Dockerfile
45+ BUILD_IMAGE_TAGS : " jdk11-rhel"
46+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JDK17.Dockerfile
47+ BUILD_IMAGE_TAGS : " jdk17-rhel"
48+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JDK21.Dockerfile
49+ BUILD_IMAGE_TAGS : " jdk21-rhel"
50+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JDK24.Dockerfile
51+ BUILD_IMAGE_TAGS : " jdk24-rhel"
52+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JRE17.Dockerfile
53+ BUILD_IMAGE_TAGS : " jre17-rhel"
54+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JRE21.Dockerfile
55+ BUILD_IMAGE_TAGS : " jre21-rhel"
56+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JRE24.Dockerfile
57+ BUILD_IMAGE_TAGS : " jre24-rhel"
58+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JDK25.Dockerfile
59+ BUILD_IMAGE_TAGS : " jdk25-rhel"
60+ - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JRE25.Dockerfile
61+ BUILD_IMAGE_TAGS : " jre25-rhel"
62+
63+ # Alpine foundation images
64+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.Dockerfile
65+ BUILD_IMAGE_TAGS : " alpine,jre11-alpine"
66+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JDK11.Dockerfile
67+ BUILD_IMAGE_TAGS : " jdk11-alpine"
68+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JDK17.Dockerfile
69+ BUILD_IMAGE_TAGS : " jdk17-alpine"
70+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JDK21.Dockerfile
71+ BUILD_IMAGE_TAGS : " jdk21-alpine"
72+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JRE17.Dockerfile
73+ BUILD_IMAGE_TAGS : " jre17-alpine"
74+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JRE21.Dockerfile
75+ BUILD_IMAGE_TAGS : " jre21-alpine"
76+ - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JRE25.Dockerfile
77+ BUILD_IMAGE_TAGS : " jre25-alpine"
78+
79+ steps :
80+ - name : Checkout
81+ uses : actions/checkout@v4
82+
83+ - name : Set up Docker Buildx
84+ id : buildx
85+ uses : docker/setup-buildx-action@master
86+
87+ - name : Setup Base Image Builds
88+ id : setup
89+ env :
90+ DOCKER_IMAGE : ortussolutions/commandbox
91+ BUILD_IMAGE_TAGS : ${{ matrix.BUILD_IMAGE_TAGS }}
92+ COMMANDBOX_VERSION : 6.3.3
93+ run : |
94+ IFS=',' read -ra TAG_ARRAY <<< "$BUILD_IMAGE_TAGS"
95+ echo "BUILD_IMAGE_TAG=${TAG_ARRAY[0]}" >> $GITHUB_ENV
96+ echo "commandbox_version=${COMMANDBOX_VERSION}" >> $GITHUB_ENV
97+
98+ - name : Build Base Image Locally
99+ env :
100+ DOCKER_BUILDKIT : 1
101+ run : |
102+ docker buildx build \
103+ --load \
104+ --platform linux/amd64 \
105+ --file ${{ matrix.BUILD_IMAGE_DOCKERFILE }} \
106+ --build-arg COMMANDBOX_VERSION=${{ env.commandbox_version }} \
107+ --tag ortussolutions/commandbox:${{ env.BUILD_IMAGE_TAG }} \
108+ .
109+
110+ - name : Test Built Image
111+ env :
112+ COMMANDBOX_VERSION : ${{ env.commandbox_version }}
113+ DOCKER_BUILDKIT : 1
114+ COMPOSE_DOCKER_CLI_BUILD : 1
115+ BUILD_IMAGE_DOCKERFILE : ${{ matrix.BUILD_IMAGE_DOCKERFILE }}
116+ BUILD_IMAGE_TAG : ${{ env.BUILD_IMAGE_TAG }}
117+ BASE_IMAGE_ARG :
118+ run : |
119+ docker compose -f docker-compose.test.yml up --build --exit-code-from sut
120+ docker compose -f docker-compose.secret-test.yml up --build --exit-code-from sut
121+
122+ build-engine-images :
123+ runs-on : ubuntu-latest
124+ needs : build-base-images
125+ strategy :
126+ matrix :
127+ include :
128+ # Debian engine builds
30129 - BUILD_IMAGE_DOCKERFILE : builds/debian/Lucee5.Dockerfile
31- BUILD_IMAGE_TAG : lucee5
130+ BUILD_IMAGE_TAGS : " lucee5"
131+ BASE_IMAGE : " ortussolutions/commandbox:latest"
132+ - BUILD_IMAGE_DOCKERFILE : builds/debian/Lucee6.Dockerfile
133+ BUILD_IMAGE_TAGS : " lucee6"
134+ BASE_IMAGE : " ortussolutions/commandbox:jre17"
135+ - BUILD_IMAGE_DOCKERFILE : builds/debian/Lucee7.Dockerfile
136+ BUILD_IMAGE_TAGS : " lucee7"
137+ BASE_IMAGE : " ortussolutions/commandbox:jre25"
32138 - BUILD_IMAGE_DOCKERFILE : builds/debian/LuceeLight.Dockerfile
33- BUILD_IMAGE_TAG : lucee-light
34- - BUILD_IMAGE_DOCKERFILE : builds/debian/Adobe2018.Dockerfile
35- BUILD_IMAGE_TAG : adobe2018
36- - BUILD_IMAGE_DOCKERFILE : builds/debian/Adobe2021.Dockerfile
37- BUILD_IMAGE_TAG : adobe2021
139+ BUILD_IMAGE_TAGS : " lucee-light"
140+ BASE_IMAGE : " ortussolutions/commandbox:latest"
141+ - BUILD_IMAGE_DOCKERFILE : builds/debian/Lucee5Light.Dockerfile
142+ BUILD_IMAGE_TAGS : " lucee5-light"
143+ BASE_IMAGE : " ortussolutions/commandbox:latest"
144+ - BUILD_IMAGE_DOCKERFILE : builds/debian/Adobe2023.Dockerfile
145+ BUILD_IMAGE_TAGS : " adobe2023"
146+ BASE_IMAGE : " ortussolutions/commandbox:jdk17"
147+ - BUILD_IMAGE_DOCKERFILE : builds/debian/Adobe2025.Dockerfile
148+ BUILD_IMAGE_TAGS : " adobe2025"
149+ BASE_IMAGE : " ortussolutions/commandbox:jdk21"
38150 - BUILD_IMAGE_DOCKERFILE : builds/debian/BoxLang.Dockerfile
39- BUILD_IMAGE_TAG : boxlang
151+ BUILD_IMAGE_TAGS : " boxlang"
152+ BASE_IMAGE : " ortussolutions/commandbox:jdk21"
40153
41- # ubi9 Builds
42- - BUILD_IMAGE_DOCKERFILE : builds/redhat/Base.Dockerfile
43- BUILD_IMAGE_TAG : ubi9
44- - BUILD_IMAGE_DOCKERFILE : builds/redhat/Base.Dockerfile
45- BUILD_IMAGE_TAG : jre11-rhel
46- - BUILD_IMAGE_DOCKERFILE : builds/base/rhel.JDK11.Dockerfile
47- BUILD_IMAGE_TAG : jdk11-rhel
154+ # RHEL engine builds
48155 - BUILD_IMAGE_DOCKERFILE : builds/redhat/Lucee5.Dockerfile
49- BUILD_IMAGE_TAG : lucee5-rhel
156+ BUILD_IMAGE_TAGS : " lucee5-rhel"
157+ BASE_IMAGE : " ortussolutions/commandbox:ubi9"
158+ - BUILD_IMAGE_DOCKERFILE : builds/redhat/Lucee6.Dockerfile
159+ BUILD_IMAGE_TAGS : " lucee6-rhel"
160+ BASE_IMAGE : " ortussolutions/commandbox:ubi9"
161+ - BUILD_IMAGE_DOCKERFILE : builds/redhat/Lucee7.Dockerfile
162+ BUILD_IMAGE_TAGS : " lucee7-rhel"
163+ BASE_IMAGE : " ortussolutions/commandbox:jre25-rhel"
50164 - BUILD_IMAGE_DOCKERFILE : builds/redhat/LuceeLight.Dockerfile
51- BUILD_IMAGE_TAG : lucee-light-rhel
52- - BUILD_IMAGE_DOCKERFILE : builds/redhat/Adobe2018.Dockerfile
53- BUILD_IMAGE_TAG : adobe2018-rhel
54- - BUILD_IMAGE_DOCKERFILE : builds/redhat/Adobe2021.Dockerfile
55- BUILD_IMAGE_TAG : adobe2021-rhel
165+ BUILD_IMAGE_TAGS : " lucee-light-rhel"
166+ BASE_IMAGE : " ortussolutions/commandbox:ubi9"
167+ - BUILD_IMAGE_DOCKERFILE : builds/redhat/Lucee5Light.Dockerfile
168+ BUILD_IMAGE_TAGS : " lucee5-light-rhel"
169+ BASE_IMAGE : " ortussolutions/commandbox:ubi9"
170+ - BUILD_IMAGE_DOCKERFILE : builds/redhat/Adobe2023.Dockerfile
171+ BUILD_IMAGE_TAGS : " adobe2023-rhel"
172+ BASE_IMAGE : " ortussolutions/commandbox:jdk17-rhel"
173+ - BUILD_IMAGE_DOCKERFILE : builds/redhat/Adobe2025.Dockerfile
174+ BUILD_IMAGE_TAGS : " adobe2025-rhel"
175+ BASE_IMAGE : " ortussolutions/commandbox:jdk21-rhel"
56176 - BUILD_IMAGE_DOCKERFILE : builds/redhat/BoxLang.Dockerfile
57- BUILD_IMAGE_TAG : boxlang-rhel
58-
59- # Alpine builds
60- # Note: No JDK builders currently support alpine with ARM
61- - BUILD_IMAGE_DOCKERFILE : builds/alpine/Base.Dockerfile
62- BUILD_IMAGE_TAG : alpine
63- - BUILD_IMAGE_DOCKERFILE : builds/alpine/Base.Dockerfile
64- BUILD_IMAGE_TAG : jre11-alpine
65- - BUILD_IMAGE_DOCKERFILE : builds/base/Alpine.JDK11.Dockerfile
66- BUILD_IMAGE_TAG : jdk11-alpine
67- - BUILD_IMAGE_DOCKERFILE : builds/alpine/Base.JDK8.Dockerfile
68- BUILD_IMAGE_TAG : jdk8-alpine
177+ BUILD_IMAGE_TAGS : " boxlang-rhel"
178+ BASE_IMAGE : " ortussolutions/commandbox:jdk21-rhel"
179+
180+ # Alpine engine builds
69181 - BUILD_IMAGE_DOCKERFILE : builds/alpine/Lucee5.Dockerfile
70- BUILD_IMAGE_TAG : lucee5-alpine
182+ BUILD_IMAGE_TAGS : " lucee5-alpine"
183+ BASE_IMAGE : " ortussolutions/commandbox:alpine"
184+ - BUILD_IMAGE_DOCKERFILE : builds/alpine/Lucee6.Dockerfile
185+ BUILD_IMAGE_TAGS : " lucee6-alpine"
186+ BASE_IMAGE : " ortussolutions/commandbox:alpine"
187+ - BUILD_IMAGE_DOCKERFILE : builds/alpine/Lucee7.Dockerfile
188+ BUILD_IMAGE_TAGS : " lucee7-alpine"
189+ BASE_IMAGE : " ortussolutions/commandbox:jre25-alpine"
71190 - BUILD_IMAGE_DOCKERFILE : builds/alpine/LuceeLight.Dockerfile
72- BUILD_IMAGE_TAG : lucee-light-alpine
73- - BUILD_IMAGE_DOCKERFILE : builds/alpine/Adobe2018.Dockerfile
74- BUILD_IMAGE_TAG : adobe2018-alpine
75- - BUILD_IMAGE_DOCKERFILE : builds/alpine/Adobe2021.Dockerfile
76- BUILD_IMAGE_TAG : adobe2021-alpine
191+ BUILD_IMAGE_TAGS : " lucee-light-alpine"
192+ BASE_IMAGE : " ortussolutions/commandbox:alpine"
193+ - BUILD_IMAGE_DOCKERFILE : builds/alpine/Lucee5Light.Dockerfile
194+ BUILD_IMAGE_TAGS : " lucee5-light-alpine"
195+ BASE_IMAGE : " ortussolutions/commandbox:alpine"
196+ - BUILD_IMAGE_DOCKERFILE : builds/alpine/Adobe2023.Dockerfile
197+ BUILD_IMAGE_TAGS : " adobe2023-alpine"
198+ BASE_IMAGE : " ortussolutions/commandbox:jdk17-alpine"
199+ - BUILD_IMAGE_DOCKERFILE : builds/alpine/Adobe2025.Dockerfile
200+ BUILD_IMAGE_TAGS : " adobe2025-alpine"
201+ BASE_IMAGE : " ortussolutions/commandbox:jdk21-alpine"
77202 - BUILD_IMAGE_DOCKERFILE : builds/alpine/BoxLang.Dockerfile
78- BUILD_IMAGE_TAG : boxlang-alpine
203+ BUILD_IMAGE_TAGS : " boxlang-alpine"
204+ BASE_IMAGE : " ortussolutions/commandbox:jdk21-alpine"
205+
79206 steps :
80207 - name : Checkout
81- uses : actions/checkout@v6
82-
83- - name : Set up QEMU
84- uses : docker/setup-qemu-action@master
85- with :
86- platforms : all
208+ uses : actions/checkout@v4
87209
88210 - name : Set up Docker Buildx
89211 id : buildx
90212 uses : docker/setup-buildx-action@master
91213
92- - name : Test
214+ - name : Setup Engine Image Builds
215+ id : setup
216+ env :
217+ BUILD_IMAGE_TAGS : ${{ matrix.BUILD_IMAGE_TAGS }}
218+ COMMANDBOX_VERSION : 6.3.3
219+ run : |
220+ IFS=',' read -ra TAG_ARRAY <<< "$BUILD_IMAGE_TAGS"
221+ echo "BUILD_IMAGE_TAG=${TAG_ARRAY[0]}" >> $GITHUB_ENV
222+ echo "commandbox_version=${COMMANDBOX_VERSION}" >> $GITHUB_ENV
223+
224+ - name : Test Engine Images
93225 env :
226+ COMMANDBOX_VERSION : ${{ env.commandbox_version }}
94227 DOCKER_BUILDKIT : 1
95228 COMPOSE_DOCKER_CLI_BUILD : 1
96229 BUILD_IMAGE_DOCKERFILE : ${{ matrix.BUILD_IMAGE_DOCKERFILE }}
230+ BUILD_IMAGE_TAG : ${{ env.BUILD_IMAGE_TAG }}
231+ BASE_IMAGE_ARG : ${{ matrix.BASE_IMAGE }}
97232 run : |
98233 docker compose -f docker-compose.test.yml up --build --exit-code-from sut
99234 docker compose -f docker-compose.secret-test.yml up --build --exit-code-from sut
0 commit comments