add perl build.
This commit is contained in:
parent
5319d6175f
commit
b5acc0fe3e
2 changed files with 106 additions and 0 deletions
98
.github/workflows/perl.yml
vendored
Normal file
98
.github/workflows/perl.yml
vendored
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
name: Build Perl
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- "perl/**"
|
||||||
|
- ".github/workflows/perl.yml"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
should_push: ${{ github.ref == 'refs/heads/main' }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
perl-build:
|
||||||
|
name: "Build Perl"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
ubuntu:
|
||||||
|
- focal
|
||||||
|
- jammy
|
||||||
|
- lunar
|
||||||
|
- mantic
|
||||||
|
#- noble
|
||||||
|
#- devel
|
||||||
|
- rolling
|
||||||
|
- latest
|
||||||
|
steps:
|
||||||
|
- uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
|
- uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
|
- name: "Setup: Login to Docker Hub"
|
||||||
|
if: ${{ env.should_push }}
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: matthewbaggett
|
||||||
|
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
|
||||||
|
|
||||||
|
- name: "Setup: Login to GHCR"
|
||||||
|
if: ${{ env.should_push }}
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: matthewbaggett
|
||||||
|
password: ${{ secrets.GHCR_PASSWORD }}
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
sparse-checkout: perl
|
||||||
|
|
||||||
|
- uses: docker/build-push-action@v5
|
||||||
|
name: "Build: Build & Push"
|
||||||
|
with:
|
||||||
|
context: perl
|
||||||
|
target: release
|
||||||
|
platforms: ${{ !env.ACT && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
|
||||||
|
pull: true
|
||||||
|
push: true
|
||||||
|
tags: |
|
||||||
|
ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }}
|
||||||
|
matthewbaggett/perl:${{ matrix.ubuntu }}
|
||||||
|
benzine/perl:${{ matrix.ubuntu }}
|
||||||
|
build-args: |
|
||||||
|
${{ steps.build_args.outputs.result }}
|
||||||
|
cache-from: ${{ !env.ACT && 'type=gha' || '' }}
|
||||||
|
cache-to: ${{ !env.ACT && 'type=gha,mode=max' || '' }}
|
||||||
|
build-contexts: |
|
||||||
|
marshall:build=docker-image://ghcr.io/benzine-framework/marshall:${{ matrix.ubuntu }}
|
||||||
|
|
||||||
|
- name: "Get perl binary version"
|
||||||
|
id: perl_version
|
||||||
|
run: |
|
||||||
|
echo "perl_version=$(docker run --rm ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} perl -v | grep "This is perl" | cut -d'(' -f2 | cut -d')' -f1 | sed 's/[^0-9.]*//g')" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: "Retag build with perl version"
|
||||||
|
run: |
|
||||||
|
docker tag ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} ghcr.io/benzine-framework/perl:${{ steps.perl_version.outputs.perl_version }}
|
||||||
|
docker tag ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} matthewbaggett/perl:${{ steps.perl_version.outputs.perl_version }}
|
||||||
|
docker tag ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} benzine/perl:${{ steps.perl_version.outputs.perl_version }}
|
||||||
|
docker push ghcr.io/benzine-framework/perl:${{ steps.perl_version.outputs.perl_version }}
|
||||||
|
docker push matthewbaggett/perl:${{ steps.perl_version.outputs.perl_version }}
|
||||||
|
docker push benzine/perl:${{ steps.perl_version.outputs.perl_version }}
|
||||||
|
|
||||||
|
docker tag ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} ghcr.io/benzine-framework/perl:${{ steps.perl_version.outputs.perl_version }}-${{ matrix.ubuntu }}
|
||||||
|
docker tag ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} matthewbaggett/perl:${{ steps.perl_version.outputs.perl_version }}-${{ matrix.ubuntu }}
|
||||||
|
docker tag ghcr.io/benzine-framework/perl:${{ matrix.ubuntu }} benzine/perl:${{ steps.perl_version.outputs.perl_version }}-${{ matrix.ubuntu }}
|
||||||
|
docker push ghcr.io/benzine-framework/perl:${{ steps.perl_version.outputs.perl_version }}-${{ matrix.ubuntu }}
|
||||||
|
docker push matthewbaggett/perl:${{ steps.perl_version.outputs.perl_version }}-${{ matrix.ubuntu }}
|
||||||
|
docker push benzine/perl:${{ steps.perl_version.outputs.perl_version }}-${{ matrix.ubuntu }}
|
||||||
8
perl/Dockerfile
Normal file
8
perl/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
FROM marshall:build AS release
|
||||||
|
|
||||||
|
RUN apt-get -qq update && \
|
||||||
|
apt-get -yqq install perl && \
|
||||||
|
apt-get -yqq autoremove && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log && \
|
||||||
|
perl -v
|
||||||
Loading…
Reference in a new issue