Skip to content

matrix strategy

matrix strategy #48

Workflow file for this run

name: Package all the things
on:
push:
branches:
- '**'
jobs:
build_varnish:
name: Building Varnish (${{ matrix.target }} for ${{ matrix.arch }})
runs-on: ubuntu-latest
strategy: &strategy
fail-fast: false
matrix:
arch:
- amd64
# - arm64
target:
- debian-bookworm-deb
- debian-bullseye-deb
- debian-trixie-deb
- almalinux-8-rpm
- almalinux-9-rpm
- almalinux-10-rpm
- amazonlinux-2023-rpm
steps:
- name: Checkout Code
uses: actions/checkout@v5
with:
submodules: true
- name: Download Varnish
run: |
curl -L https://varnish-cache.org/downloads/varnish-8.0.0.tgz -o varnish-8.0.0.tar.gz
- name:
run: |
( cd varnish-cache/; tar cvzf ../debian.tar.gz debian --dereference ; )
( cd varnish-cache/; tar cvzf ../redhat.tar.gz redhat --dereference ; )
mkdir -p packages
PARAM_ARCH=${{ matrix.arch }}
PARAM_DIST=`echo ${{ matrix.target}} | cut -d- -f 1`
PARAM_RELEASE=`echo ${{ matrix.target }} | cut -d- -f 2`
EXT=`echo ${{ matrix.target }} | cut -d- -f 3`
docker run \
--rm \
--security-opt seccomp=unconfined \
-e PARAM_ARCH=$PARAM_ARCH \
-e PARAM_DIST=$PARAM_DIST \
-e PARAM_RELEASE=$PARAM_RELEASE \
-v $(pwd):/varnish-cache \
$PARAM_DIST:$PARAM_RELEASE \
/varnish-cache/make-$EXT-packages.sh
ls packages/*/*/
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: varnish-${{ matrix.target }}
path: packages/*/*/*
build_vmod:
needs: build_varnish
runs-on: ubuntu-latest
name: Building varnish-modules (${{ matrix.target }} for ${{ matrix.arch }})
strategy:
fail-fast: false
matrix:
arch:
- amd64
# - arm64
target:
- debian-trixie-deb
- almalinux-10-rpm
package:
- varnish-modules
- vmod-uuid
steps:
- name: Checkout Code
uses: actions/checkout@v5
with:
submodules: true
- name: Download a specific artifact
uses: actions/download-artifact@v4
with:
name: varnish-${{ matrix.target }}
path: packages
- name: Build
run: |
PARAM_ARCH=${{ matrix.arch }}
PARAM_DIST=`echo ${{ matrix.target}} | cut -d- -f 1`
PARAM_RELEASE=`echo ${{ matrix.target }} | cut -d- -f 2`
EXT=`echo ${{ matrix.target }} | cut -d- -f 3`
( cd $PACKAGE/; tar cvzf ../debian.tar.gz debian --dereference ; )
( cd $PACKAGE/; tar cvzf ../redhat.tar.gz redhat --dereference ; )
docker run \
--rm \
-e PARAM_ARCH=$PARAM_ARCH \
-e PARAM_DIST=$PARAM_DIST\
-e PARAM_RELEASE=$PARAM_RELEASE \
--workdir /workdir/$PACKAGE \
-v$(pwd):/workdir \
-v$(pwd)/packages:/deps \
-v$(pwd)/new_packages:/packages \
$PARAM_DIST:$PARAM_RELEASE \
/workdir/.circleci/make-$EXT-packages-vmod.sh