Skip to content

Commit 4b34b0b

Browse files
authored
Add ubi-base based on ubi10 (#237)
Signed-off-by: Oleksii Kurinnyi <[email protected]>
1 parent 1e7d0a5 commit 4b34b0b

13 files changed

+1094
-97
lines changed

.github/workflows/empty-worksapce-smoke-test-on-minikube-ubi9.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ on:
1919
- LICENSE
2020

2121
env:
22+
# Use repository variable if set, otherwise fallback to default registry
23+
REGISTRY: ${{ vars.REGISTRY || 'quay.io/devfile' }}
2224
USERSTORY: CloneGitRepoAPI
2325
TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL: kubectl
2426
DEPLOYMENT_TIMEOUT: 90s
@@ -71,12 +73,12 @@ jobs:
7173
- name: Build base image
7274
run: |
7375
eval $(minikube docker-env)
74-
cd base/ubi9 && docker build -t quay.io/devfile/base-developer-image:ubi9-latest .
76+
cd base/ubi9 && docker build -t ${{ env.REGISTRY }}/base-developer-image:ubi9-latest .
7577
7678
- name: Build universal image
7779
run: |
7880
eval $(minikube docker-env)
79-
cd universal/ubi9 && docker build -t quay.io/devfile/universal-developer-image:${{ env.PR_NUMBER }} .
81+
cd universal/ubi9 && docker build -t ${{ env.REGISTRY }}/universal-developer-image:${{ env.PR_NUMBER }} .
8082
8183
- name: Checkout DWO
8284
uses: actions/checkout@master
@@ -104,7 +106,7 @@ jobs:
104106
- name: Check that UDI is present in the image list
105107
run: |
106108
# we used it for the build above and do not need it anymore. It saves the disk space
107-
minikube image rm quay.io/devfile/base-developer-image:ubi9-latest
109+
minikube image rm ${{ env.REGISTRY }}/base-developer-image:ubi9-latest
108110
minikube image list --format table
109111
110112
- name: Install NodeJs
@@ -159,7 +161,7 @@ jobs:
159161
cpuRequest: 30m
160162
- name: che-code-runtime-description
161163
container:
162-
image: quay.io/devfile/universal-developer-image:${{ env.PR_NUMBER }}
164+
image: ${{ env.REGISTRY }}/universal-developer-image:${{ env.PR_NUMBER }}
163165
memoryLimit: 1024Mi
164166
memoryRequest: 256Mi
165167
cpuLimit: 500m
@@ -242,7 +244,7 @@ jobs:
242244
243245
- name: Run Empty workspace smoke test
244246
run: |
245-
export TS_API_TEST_UDI_IMAGE=quay.io/devfile/universal-developer-image:${{ env.PR_NUMBER }}
247+
export TS_API_TEST_UDI_IMAGE=${{ env.REGISTRY }}/universal-developer-image:${{ env.PR_NUMBER }}
246248
export TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI=http://file-service.default.svc:80/devfile.yaml
247249
cd che/tests/e2e
248250
npm i
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
#
2+
# Copyright (c) 2021-2025 Red Hat, Inc.
3+
# This program and the accompanying materials are made
4+
# available under the terms of the Eclipse Public License 2.0
5+
# which is available at https://www.eclipse.org/legal/epl-2.0/
6+
#
7+
# SPDX-License-Identifier: EPL-2.0
8+
#
9+
10+
name: Pull Request Check UBI 10
11+
12+
# Trigger the workflow on pull request
13+
on: [pull_request]
14+
15+
env:
16+
# Use repository variable if set, otherwise fallback to default registry
17+
REGISTRY: ${{ vars.REGISTRY || 'quay.io/devfile' }}
18+
19+
jobs:
20+
build-base-image:
21+
name: Build base image
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
26+
runs-on: ${{matrix.runners}}
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
- name: Set arch environment variable
31+
run: |
32+
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
33+
echo arch="amd64" >> $GITHUB_ENV
34+
else
35+
echo arch="arm64" >> $GITHUB_ENV
36+
fi
37+
- name: Free runner space
38+
run: sudo rm -rf /usr/local/lib/android
39+
- name: Cleanup docker images
40+
run: docker system prune -af
41+
- name: Build base image
42+
run: |
43+
cd base/ubi10 && docker buildx build \
44+
--platform linux/${{env.arch}} \
45+
--progress=plain \
46+
-t base-developer-image-${{env.arch}} .
47+
- name: Display docker images
48+
run: docker images
49+
- name: Login to Registry
50+
uses: docker/login-action@v3
51+
with:
52+
registry: ${{ env.REGISTRY }}
53+
username: ${{ secrets.QUAY_USERNAME }}
54+
password: ${{ secrets.QUAY_PASSWORD }}
55+
# TODO: Remove this step once UDI on UBI 10 is ready and we have proper PR workflow for UDI
56+
# This temporary step pushes base image to registry for testing purposes
57+
- name: Tag and push base image for testing
58+
run: |
59+
docker tag base-developer-image-${{env.arch}} ${{ env.REGISTRY }}/base-developer-image:${{env.arch}}-ubi10-pr-${{github.event.number}}
60+
docker push ${{ env.REGISTRY }}/base-developer-image:${{env.arch}}-ubi10-pr-${{github.event.number}}
61+
- name: Compress image to a file
62+
run: docker save base-developer-image-${{env.arch}} | gzip > base-developer-image-${{env.arch}}.tgz
63+
- name: Upload image artifact
64+
uses: actions/upload-artifact@v4
65+
with:
66+
name: base-developer-image-${{env.arch}}
67+
path: base-developer-image-${{env.arch}}.tgz
68+
69+
publish-base-image:
70+
name: Publish base image
71+
runs-on: ubuntu-22.04
72+
needs: build-base-image
73+
steps:
74+
- name: Login to Registry
75+
uses: docker/login-action@v3
76+
with:
77+
registry: ${{ env.REGISTRY }}
78+
username: ${{ secrets.QUAY_USERNAME }}
79+
password: ${{ secrets.QUAY_PASSWORD }}
80+
# TODO: Remove this job once UDI on UBI 10 is ready and we have proper PR workflow for UDI
81+
# This temporary job publishes base image manifest for testing purposes
82+
- name: publish base image manifest
83+
run: |
84+
docker manifest create ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
85+
--amend ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} \
86+
--amend ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}}
87+
88+
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
89+
${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} \
90+
--os linux --arch amd64
91+
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
92+
${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}} \
93+
--os linux --arch arm64
94+
95+
docker manifest push ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}
96+
- name: 'Comment PR'
97+
uses: actions/github-script@v7
98+
with:
99+
script: |
100+
const { repo: { owner, repo } } = context;
101+
await github.rest.issues.createComment({
102+
issue_number: ${{github.event.number}},
103+
owner: context.repo.owner,
104+
repo: context.repo.repo,
105+
body: `Pull Request UBI 10 images published ✨\n\nBase Image: [${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}](https://${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}})`
106+
})
107+
108+
# build-udi:
109+
# name: Build udi
110+
# strategy:
111+
# fail-fast: false
112+
# matrix:
113+
# runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
114+
# runs-on: ${{matrix.runners}}
115+
# needs: build-base-image
116+
# steps:
117+
# - name: Set arch environment variable
118+
# run: |
119+
# if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
120+
# echo arch="amd64" >> $GITHUB_ENV
121+
# else
122+
# echo arch="arm64" >> $GITHUB_ENV
123+
# fi
124+
# - name: Checkout
125+
# uses: actions/checkout@v4
126+
# - name: Free runner space
127+
# run: sudo rm -rf /usr/local/lib/android
128+
# - name: Cleanup docker images
129+
# run: docker system prune -af
130+
# - name: Download BDI artifacts
131+
# uses: actions/download-artifact@v4
132+
# with:
133+
# pattern: base-developer-image-*
134+
# merge-multiple: true
135+
# path: .
136+
# - name: List downloaded files
137+
# run: ls -lah
138+
# - name: Load docker images
139+
# run: docker load -i base-developer-image-${{env.arch}}.tgz
140+
# - name: Display docker images
141+
# run: docker images
142+
# - name: Update UDI Dockerfile
143+
# run: sed "s|${{ env.REGISTRY }}/base-developer-image:ubi10-latest|base-developer-image-${{env.arch}}|" -i "universal/ubi10/Dockerfile"
144+
# - name: Login to Registry
145+
# uses: docker/login-action@v3
146+
# with:
147+
# registry: ${{ env.REGISTRY }}
148+
# username: ${{ secrets.QUAY_USERNAME }}
149+
# password: ${{ secrets.QUAY_PASSWORD }}
150+
# - name: Build udi
151+
# run: |
152+
# cd universal/ubi10 && docker buildx build \
153+
# --platform linux/${{env.arch}} \
154+
# --progress=plain \
155+
# --push \
156+
# -t ${{ env.REGISTRY }}/universal-developer-image:${{env.arch}}-ubi10-pr-${{github.event.number}} .
157+
158+
# publish-udi:
159+
# name: Publish udi
160+
# runs-on: ubuntu-22.04
161+
# needs: build-udi
162+
# steps:
163+
# - name: Login to Registry
164+
# uses: docker/login-action@v3
165+
# with:
166+
# registry: ${{ env.REGISTRY }}
167+
# username: ${{ secrets.QUAY_USERNAME }}
168+
# password: ${{ secrets.QUAY_PASSWORD }}
169+
# - name: publish
170+
# run: |
171+
# docker manifest create ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
172+
# --amend ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
173+
# --amend ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}}
174+
#
175+
# docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
176+
# ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
177+
# --os linux --arch amd64
178+
# docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
179+
# ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} \
180+
# --os linux --arch arm64
181+
#
182+
# docker manifest push ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}
183+
# - name: 'Comment PR'
184+
# uses: actions/github-script@v7
185+
# with:
186+
# script: |
187+
# const { repo: { owner, repo } } = context;
188+
# await github.rest.issues.createComment({
189+
# issue_number: ${{github.event.number}},
190+
# owner: context.repo.owner,
191+
# repo: context.repo.repo,
192+
# body: `Pull Request images published ✨\n\nUDI: [${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}](https://${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}})`
193+
# })

.github/workflows/pr-check.yaml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ name: Pull Request Check
1212
# Trigger the workflow on pull request
1313
on: [pull_request]
1414

15+
env:
16+
# Use repository variable if set, otherwise fallback to default registry
17+
REGISTRY: ${{ vars.REGISTRY || 'quay.io/devfile' }}
18+
1519
jobs:
1620
build-base-image:
1721
name: Build base image
@@ -86,10 +90,10 @@ jobs:
8690
run: docker images
8791
- name: Update UDI Dockerfile
8892
run: sed "s|quay.io/devfile/base-developer-image:ubi9-latest|base-developer-image-${{env.arch}}|" -i "universal/ubi9/Dockerfile"
89-
- name: Login to Quay.io
93+
- name: Login to Registry
9094
uses: docker/login-action@v3
9195
with:
92-
registry: quay.io
96+
registry: ${{ env.REGISTRY }}
9397
username: ${{ secrets.QUAY_USERNAME }}
9498
password: ${{ secrets.QUAY_PASSWORD }}
9599
- name: Build udi
@@ -98,33 +102,33 @@ jobs:
98102
--platform linux/${{env.arch}} \
99103
--progress=plain \
100104
--push \
101-
-t quay.io/devfile/universal-developer-image:${{env.arch}}-pr-${{github.event.number}} .
105+
-t ${{ env.REGISTRY }}/universal-developer-image:${{env.arch}}-pr-${{github.event.number}} .
102106
103107
publish-udi:
104108
name: Publish udi
105109
runs-on: ubuntu-22.04
106110
needs: build-udi
107111
steps:
108-
- name: Login to Quay.io
112+
- name: Login to Registry
109113
uses: docker/login-action@v3
110114
with:
111-
registry: quay.io
115+
registry: ${{ env.REGISTRY }}
112116
username: ${{ secrets.QUAY_USERNAME }}
113117
password: ${{ secrets.QUAY_PASSWORD }}
114118
- name: publish
115119
run: |
116-
docker manifest create quay.io/devfile/universal-developer-image:pr-${{github.event.number}} \
117-
--amend quay.io/devfile/universal-developer-image:amd64-pr-${{github.event.number}} \
118-
--amend quay.io/devfile/universal-developer-image:arm64-pr-${{github.event.number}}
120+
docker manifest create ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
121+
--amend ${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} \
122+
--amend ${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}}
119123
120-
docker manifest annotate quay.io/devfile/universal-developer-image:pr-${{github.event.number}} \
121-
quay.io/devfile/universal-developer-image:amd64-pr-${{github.event.number}} \
124+
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
125+
${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} \
122126
--os linux --arch amd64
123-
docker manifest annotate quay.io/devfile/universal-developer-image:pr-${{github.event.number}} \
124-
quay.io/devfile/universal-developer-image:arm64-pr-${{github.event.number}} \
127+
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
128+
${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}} \
125129
--os linux --arch arm64
126130
127-
docker manifest push quay.io/devfile/universal-developer-image:pr-${{github.event.number}}
131+
docker manifest push ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}}
128132
- name: 'Comment PR'
129133
uses: actions/github-script@v7
130134
with:
@@ -134,5 +138,5 @@ jobs:
134138
issue_number: ${{github.event.number}},
135139
owner: context.repo.owner,
136140
repo: context.repo.repo,
137-
body: `Pull Request images published ✨\n\nUDI: [quay.io/devfile/universal-developer-image:pr-${{github.event.number}}](https://quay.io/devfile/universal-developer-image:pr-${{github.event.number}})`
141+
body: `Pull Request images published ✨\n\nUDI: [${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}}](https://${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}})`
138142
})

0 commit comments

Comments
 (0)