Skip to content

Commit 12ca4c5

Browse files
committed
MON-196408 [CI] Rename fat container images to ghcr.io standard naming
- docker-builder-packaging: build packaging/packaging-java images with distrib as tag (packaging:alma8, packaging-java:bullseye, etc.) - docker-builder-testing: build testing images with distrib as tag (testing:alma8, testing:bullseye, etc.) - Multi-platform manifests via compute-merge-matrix + imagetools create - cpan_matrix_lib: update image references to new naming convention - perl-cpan-libraries: remove :latest suffix, images now include tag - plugins-robot-tests: use inputs.arch for runner selection - plugins: update packaging/testing container references to ghcr.io
1 parent e5ff024 commit 12ca4c5

6 files changed

Lines changed: 274 additions & 74 deletions

File tree

.github/scripts/perl-cpan-libraries/cpan_matrix_lib.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,38 +46,38 @@
4646
# ── Fixed include entries ──────────────────────────────────────────────────────
4747

4848
RPM_DISTRIB_INCLUDES = [
49-
{"distrib": "el8", "package_extension": "rpm", "image": "packaging-plugins-alma8"},
50-
{"distrib": "el9", "package_extension": "rpm", "image": "packaging-plugins-alma9"},
51-
{"distrib": "el10", "package_extension": "rpm", "image": "packaging-plugins-alma10"},
49+
{"distrib": "el8", "package_extension": "rpm", "image": "packaging:alma8"},
50+
{"distrib": "el9", "package_extension": "rpm", "image": "packaging:alma9"},
51+
{"distrib": "el10", "package_extension": "rpm", "image": "packaging:alma10"},
5252
]
5353

5454
DEB_BUILD_NAME_INCLUDES = [
55-
{"build_name": "bullseye-amd64", "distrib": "bullseye", "package_extension": "deb", "image": "packaging-plugins-bullseye"},
56-
{"build_name": "bookworm", "distrib": "bookworm", "package_extension": "deb", "image": "packaging-plugins-bookworm"},
57-
{"build_name": "trixie", "distrib": "trixie", "package_extension": "deb", "image": "packaging-plugins-trixie"},
58-
{"build_name": "jammy", "distrib": "jammy", "package_extension": "deb", "image": "packaging-plugins-jammy"},
59-
{"build_name": "noble", "distrib": "noble", "package_extension": "deb", "image": "packaging-plugins-noble"},
55+
{"build_name": "bullseye-amd64", "distrib": "bullseye", "package_extension": "deb", "image": "packaging:bullseye"},
56+
{"build_name": "bookworm", "distrib": "bookworm", "package_extension": "deb", "image": "packaging:bookworm"},
57+
{"build_name": "trixie", "distrib": "trixie", "package_extension": "deb", "image": "packaging:trixie"},
58+
{"build_name": "jammy", "distrib": "jammy", "package_extension": "deb", "image": "packaging:jammy"},
59+
{"build_name": "noble", "distrib": "noble", "package_extension": "deb", "image": "packaging:noble"},
6060
{
6161
"build_name": "bullseye-arm64",
6262
"distrib": "bullseye",
6363
"package_extension": "deb",
64-
"image": "packaging-plugins-bullseye-arm64",
64+
"image": "packaging:bullseye",
6565
"arch": "arm64",
6666
"runner_name": "ubuntu-24.04-arm",
6767
},
6868
{
6969
"build_name": "bookworm-arm64",
7070
"distrib": "bookworm",
7171
"package_extension": "deb",
72-
"image": "packaging-plugins-bookworm-arm64",
72+
"image": "packaging:bookworm",
7373
"arch": "arm64",
7474
"runner_name": "ubuntu-24.04-arm",
7575
},
7676
{
7777
"build_name": "trixie-arm64",
7878
"distrib": "trixie",
7979
"package_extension": "deb",
80-
"image": "packaging-plugins-trixie-arm64",
80+
"image": "packaging:trixie",
8181
"arch": "arm64",
8282
"runner_name": "ubuntu-24.04-arm",
8383
},

.github/workflows/docker-builder-packaging-plugins.yml

Lines changed: 132 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,61 +36,99 @@ jobs:
3636
include:
3737
- runner: ubuntu-24.04
3838
dockerfile: packaging-plugins-alma8
39-
image: packaging-plugins-alma8
39+
image: packaging
40+
distrib: alma8
41+
arch: amd64
4042
- runner: ubuntu-24.04
4143
dockerfile: packaging-plugins-alma9
42-
image: packaging-plugins-alma9
44+
image: packaging
45+
distrib: alma9
46+
arch: amd64
4347
- runner: ubuntu-24.04
4448
dockerfile: packaging-plugins-alma10
45-
image: packaging-plugins-alma10
49+
image: packaging
50+
distrib: alma10
51+
arch: amd64
4652
- runner: ubuntu-24.04
4753
dockerfile: packaging-plugins-java-alma8
48-
image: packaging-plugins-java-alma8
54+
image: packaging-java
55+
distrib: alma8
56+
arch: amd64
4957
- runner: ubuntu-24.04
5058
dockerfile: packaging-plugins-java-alma9
51-
image: packaging-plugins-java-alma9
59+
image: packaging-java
60+
distrib: alma9
61+
arch: amd64
5262
- runner: ubuntu-24.04
5363
dockerfile: packaging-plugins-java-alma10
54-
image: packaging-plugins-java-alma10
64+
image: packaging-java
65+
distrib: alma10
66+
arch: amd64
5567
- runner: ubuntu-24.04
5668
dockerfile: packaging-plugins-bullseye
57-
image: packaging-plugins-bullseye
69+
image: packaging
70+
distrib: bullseye
71+
arch: amd64
5872
- runner: ubuntu-24.04-arm
5973
dockerfile: packaging-plugins-bullseye
60-
image: packaging-plugins-bullseye-arm64
74+
image: packaging
75+
distrib: bullseye
76+
arch: arm64
6177
- runner: ubuntu-24.04
6278
dockerfile: packaging-plugins-bookworm
63-
image: packaging-plugins-bookworm
79+
image: packaging
80+
distrib: bookworm
81+
arch: amd64
6482
- runner: ubuntu-24.04-arm
6583
dockerfile: packaging-plugins-bookworm
66-
image: packaging-plugins-bookworm-arm64
84+
image: packaging
85+
distrib: bookworm
86+
arch: arm64
6787
- runner: ubuntu-24.04
6888
dockerfile: packaging-plugins-trixie
69-
image: packaging-plugins-trixie
89+
image: packaging
90+
distrib: trixie
91+
arch: amd64
7092
- runner: ubuntu-24.04-arm
7193
dockerfile: packaging-plugins-trixie
72-
image: packaging-plugins-trixie-arm64
94+
image: packaging
95+
distrib: trixie
96+
arch: arm64
7397
- runner: ubuntu-24.04
7498
dockerfile: packaging-plugins-java-bullseye
75-
image: packaging-plugins-java-bullseye
99+
image: packaging-java
100+
distrib: bullseye
101+
arch: amd64
76102
- runner: ubuntu-24.04
77103
dockerfile: packaging-plugins-java-bookworm
78-
image: packaging-plugins-java-bookworm
104+
image: packaging-java
105+
distrib: bookworm
106+
arch: amd64
79107
- runner: ubuntu-24.04
80108
dockerfile: packaging-plugins-java-trixie
81-
image: packaging-plugins-java-trixie
109+
image: packaging-java
110+
distrib: trixie
111+
arch: amd64
82112
- runner: ubuntu-24.04
83113
dockerfile: packaging-plugins-jammy
84-
image: packaging-plugins-jammy
114+
image: packaging
115+
distrib: jammy
116+
arch: amd64
85117
- runner: ubuntu-24.04
86118
dockerfile: packaging-plugins-java-jammy
87-
image: packaging-plugins-java-jammy
119+
image: packaging-java
120+
distrib: jammy
121+
arch: amd64
88122
- runner: ubuntu-24.04
89123
dockerfile: packaging-plugins-noble
90-
image: packaging-plugins-noble
124+
image: packaging
125+
distrib: noble
126+
arch: amd64
91127
- runner: ubuntu-24.04
92128
dockerfile: packaging-plugins-java-noble
93-
image: packaging-plugins-java-noble
129+
image: packaging-java
130+
distrib: noble
131+
arch: amd64
94132

95133
runs-on: ${{ matrix.runner }}
96134

@@ -117,17 +155,90 @@ jobs:
117155

118156
- uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
119157

158+
- name: Extract metadata (tags, labels) for Docker
159+
id: meta
160+
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
161+
with:
162+
images: ghcr.io/${{ github.repository }}/${{ matrix.image }}
163+
labels: |
164+
org.opencontainers.image.description=Packaging image for Centreon Plugins packaging
165+
com.centreon.stability=${{ needs.get-environment.outputs.stability }}
166+
com.centreon.version=${{ needs.get-environment.outputs.version }}
167+
168+
120169
- uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
121170
with:
122171
file: .github/docker/packaging/Dockerfile.${{ matrix.dockerfile }}
123172
context: .
124173
build-args: "REGISTRY_URL=${{ vars.DOCKER_PROXY_REGISTRY_URL }}"
125174
pull: true
126175
push: true
127-
tags: ghcr.io/${{ github.repository }}/${{ matrix.image }}:latest
176+
tags: ghcr.io/${{ github.repository }}/${{ matrix.image }}:${{ matrix.distrib }}-${{ matrix.arch }}
177+
labels: ${{ steps.meta.outputs.labels }}
178+
179+
compute-merge-matrix:
180+
needs: [get-environment]
181+
if: |
182+
needs.get-environment.outputs.skip_workflow == 'false' &&
183+
needs.get-environment.outputs.stability != 'stable'
184+
runs-on: ubuntu-24.04
185+
outputs:
186+
matrix: ${{ steps.compute.outputs.matrix }}
187+
steps:
188+
- name: Checkout sources
189+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
190+
- name: Compute merge matrix
191+
id: compute
192+
shell: bash
193+
run: |
194+
matrix=$(yq -o=json '.jobs.dockerize.strategy.matrix.include' \
195+
.github/workflows/docker-builder-packaging-plugins.yml | \
196+
jq -c '
197+
group_by([.image, .distrib]) |
198+
map({
199+
image: .[0].image,
200+
distrib: .[0].distrib,
201+
archs: (map(.arch) | join(" "))
202+
}) |
203+
{include: .}
204+
')
205+
echo "matrix=$matrix" >> $GITHUB_OUTPUT
206+
207+
merge:
208+
needs: [get-environment, dockerize, compute-merge-matrix]
209+
if: |
210+
needs.get-environment.outputs.skip_workflow == 'false' &&
211+
needs.get-environment.outputs.stability != 'stable'
212+
runs-on: ubuntu-24.04
213+
permissions:
214+
packages: write
215+
strategy:
216+
fail-fast: false
217+
matrix: ${{ fromJson(needs.compute-merge-matrix.outputs.matrix) }}
218+
steps:
219+
- name: Login to GitHub Container Registry
220+
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
221+
with:
222+
registry: ghcr.io
223+
username: ${{ github.actor }}
224+
password: ${{ github.token }}
225+
226+
- uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
227+
228+
- name: Create multi-platform manifest
229+
shell: bash
230+
run: |
231+
SOURCE=""
232+
for arch in ${{ matrix.archs }}; do
233+
SOURCE="$SOURCE ghcr.io/${{ github.repository }}/${{ matrix.image }}:${{ matrix.distrib }}-$arch"
234+
done
235+
docker buildx imagetools create \
236+
--tag ghcr.io/${{ github.repository }}/${{ matrix.image }}:${{ matrix.distrib }} \
237+
$SOURCE
238+
128239
129240
set-skip-label:
130-
needs: [get-environment, dockerize]
241+
needs: [get-environment, merge]
131242
if: |
132243
needs.get-environment.outputs.skip_workflow == 'false' &&
133244
! cancelled() &&

0 commit comments

Comments
 (0)