Skip to content

Commit 7efe607

Browse files
author
Nicolas Rochelemagne
committed
build-bookworm-unified job
This is using a shared build job using the two list from prepare-matrix-bookworm and prepare-matrix-bookworm-defaults and use the list to adjust the tags.
1 parent 21e3765 commit 7efe607

File tree

1 file changed

+13
-32
lines changed

1 file changed

+13
-32
lines changed

.github/workflows/publish-to-docker.yml

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727

2828
# bookworm base images only exist for 5.36 and newer.
2929
# use default tags for 5.36 and newer
30-
prepare-matrix-bookworm:
30+
prepare-matrix-bookworm-extra:
3131
runs-on: ubuntu-latest
3232
name: "List perl versions [bookworm]"
3333
outputs:
@@ -41,8 +41,7 @@ jobs:
4141
to-perl: '5.40'
4242
with-devel: 'false'
4343

44-
# bookworm base images only exist for 5.36 and newer.
45-
# use default tags for 5.36 and newer
44+
# Similar to the `matrix-bookworm` job, but also add the default tag like `5.42` to the list
4645
prepare-matrix-bookworm-defaults:
4746
runs-on: ubuntu-latest
4847
name: "List perl versions [bookworm defaults]"
@@ -114,42 +113,24 @@ jobs:
114113
buildargs: BASE=${{ matrix.perl-version }}-buster,CPANOUTDATED=1
115114
tags: "${{ matrix.perl-version }}-buster,${{ matrix.perl-version }}"
116115

117-
build-bookworm:
118-
name: "Build versions for bookworm"
119-
runs-on: ubuntu-latest
120-
needs:
121-
- prepare-matrix-bookworm
122-
123-
strategy:
124-
fail-fast: false
125-
matrix:
126-
perl-version: ${{ fromJson (needs.prepare-matrix-bookworm.outputs.perl-versions) }}
127-
steps:
128-
- uses: actions/checkout@v4
129-
- name: Publish to Registry
130-
uses: elgohr/Publish-Docker-Github-Action@v5
131-
with:
132-
name: ${{ secrets.DOCKER_REPO }}
133-
username: ${{ secrets.DOCKER_USERNAME }}
134-
password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
135-
dockerfile: Dockerfile
136-
buildargs: BASE=${{ matrix.perl-version }}-slim-bookworm,CPANOUTDATED=1
137-
tags: "${{ matrix.perl-version }}-slim-bookworm"
138-
139-
##
140-
## This is similar to `build-bookworm` but with the extra default tag for the Perl version
141-
##
142-
143-
build-bookworm-defaults:
116+
build-bookworm-unified:
144117
name: "Build versions for bookworm"
145118
runs-on: ubuntu-latest
146119
needs:
120+
- prepare-matrix-bookworm-extra
147121
- prepare-matrix-bookworm-defaults
148122

149123
strategy:
150124
fail-fast: false
151125
matrix:
152-
perl-version: ${{ fromJson (needs.prepare-matrix-bookworm-defaults.outputs.perl-versions) }}
126+
include:
127+
# Regular bookworm builds (5.36-5.40)
128+
- perl-versions: ${{ fromJson(needs.prepare-matrix-bookworm-extra.outputs.perl-versions) }}
129+
add-default-tag: false
130+
# Default bookworm builds (5.42+)
131+
- perl-versions: ${{ fromJson(needs.prepare-matrix-bookworm-defaults.outputs.perl-versions) }}
132+
add-default-tag: true
133+
153134
steps:
154135
- uses: actions/checkout@v4
155136
- name: Publish to Registry
@@ -160,4 +141,4 @@ jobs:
160141
password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
161142
dockerfile: Dockerfile
162143
buildargs: BASE=${{ matrix.perl-version }}-slim-bookworm,CPANOUTDATED=1
163-
tags: "${{ matrix.perl-version }}-slim-bookworm,${{ matrix.perl-version }}"
144+
tags: ${{ matrix.add-default-tag == 'true' && format('{0}-slim-bookworm,{0}', matrix.perl-version) || format('{0}-slim-bookworm', matrix.perl-version) }}

0 commit comments

Comments
 (0)