Skip to content

Keep two different jobs for building defaults and extra #1437

Keep two different jobs for building defaults and extra

Keep two different jobs for building defaults and extra #1437

# 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=${{ matrix.debian-version }}
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-extra:
name: "Build bookworm extra versions"
runs-on: ubuntu-latest
needs: prepare-matrix-bookworm-extra
strategy:
fail-fast: false
matrix:
perl-version: ${{ fromJson(needs.prepare-matrix-bookworm-extra.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 }}-slim-bookworm,CPANOUTDATED=1
tags: ${{ matrix.perl-version }}-slim-bookworm
build-bookworm-defaults:
name: "Build bookworm default versions"
runs-on: ubuntu-latest
needs: prepare-matrix-bookworm-defaults
strategy:
fail-fast: false
matrix:
perl-version: ${{ fromJson(needs.prepare-matrix-bookworm-defaults.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 }}-slim-bookworm,CPANOUTDATED=1
tags: ${{ matrix.perl-version }}-slim-bookworm,${{ matrix.perl-version }}