Skip to content

build-bookworm-unified job #1434

build-bookworm-unified job

build-bookworm-unified job #1434

# https://github.com/marketplace/actions/publish-docker
name: Publish to Docker
on:
push:
branches:
- "main"
schedule:
- cron: "10 6 * * *"
workflow_dispatch:
jobs:
# buster images do not exist for 5.42 and newer.
prepare-matrix-buster:
runs-on: ubuntu-latest
name: "List perl versions [buster]"
outputs:
perl-versions: ${{ steps.action.outputs.perl-versions }}
steps:
- name: Perl versions action step
id: action
uses: perl-actions/[email protected]
with:
since-perl: '5.8'
to-perl: '5.40'
with-devel: 'false'
# bookworm base images only exist for 5.36 and newer.
# use default tags for 5.36 and newer
prepare-matrix-bookworm-extra:
runs-on: ubuntu-latest
name: "List perl versions [bookworm]"
outputs:
perl-versions: ${{ steps.action.outputs.perl-versions }}
steps:
- name: Perl versions action step
id: action
uses: perl-actions/[email protected]
with:
since-perl: '5.36'
to-perl: '5.40'
with-devel: 'false'
# Similar to the `matrix-bookworm` job, but also add the default tag like `5.42` to the list
prepare-matrix-bookworm-defaults:
runs-on: ubuntu-latest
name: "List perl versions [bookworm defaults]"
outputs:
perl-versions: ${{ steps.action.outputs.perl-versions }}
steps:
- name: Perl versions action step
id: action
uses: perl-actions/[email protected]
with:
since-perl: '5.42'
with-devel: 'false'
latest-build:
name: "Build latest"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
debian-version: [buster,bookworm]
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: ${{ secrets.DOCKER_REPO }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
dockerfile: Dockerfile
buildargs: BASE=buster
tags: "latest,${{ matrix.debian-version }}"
devel-build:
name: "Build latest"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: ${{ secrets.DOCKER_REPO }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
dockerfile: Dockerfile
buildargs: BASE=devel-slim-bookworm
tags: "devel,devel-slim-bookworm"
build-buster:
name: "Build versions for buster"
runs-on: ubuntu-latest
needs:
- prepare-matrix-buster
strategy:
fail-fast: false
matrix:
perl-version: ${{ fromJson (needs.prepare-matrix-buster.outputs.perl-versions) }}
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: ${{ secrets.DOCKER_REPO }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
dockerfile: Dockerfile
buildargs: BASE=${{ matrix.perl-version }}-buster,CPANOUTDATED=1
tags: "${{ matrix.perl-version }}-buster,${{ matrix.perl-version }}"
build-bookworm-unified:
name: "Build versions for bookworm"
runs-on: ubuntu-latest
needs:
- prepare-matrix-bookworm-extra
- prepare-matrix-bookworm-defaults
strategy:
fail-fast: false
matrix:
include:
# Regular bookworm builds (5.36-5.40)
- perl-versions: ${{ fromJson(needs.prepare-matrix-bookworm-extra.outputs.perl-versions) }}
add-default-tag: false
# Default bookworm builds (5.42+)
- perl-versions: ${{ fromJson(needs.prepare-matrix-bookworm-defaults.outputs.perl-versions) }}
add-default-tag: true
steps:
- uses: actions/checkout@v4
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: ${{ secrets.DOCKER_REPO }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
dockerfile: Dockerfile
buildargs: BASE=${{ matrix.perl-version }}-slim-bookworm,CPANOUTDATED=1
tags: ${{ matrix.add-default-tag == 'true' && format('{0}-slim-bookworm,{0}', matrix.perl-version) || format('{0}-slim-bookworm', matrix.perl-version) }}