Bump NGINX Plus version to R33. #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: GitHub CI | |
on: | |
pull_request: | |
push: | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: 'bash -Eeuo pipefail -x {0}' | |
jobs: | |
generate-matrix: | |
runs-on: ubuntu-22.04 | |
outputs: | |
matrix-alpine: ${{ steps.set-matrix.outputs.matrix-alpine }} | |
matrix-ubuntu: ${{ steps.set-matrix.outputs.matrix-ubuntu }} | |
matrix-redhat: ${{ steps.set-matrix.outputs.matrix-redhat }} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: set-matrix | |
id: set-matrix | |
run: | | |
TARGETS="all modules" | |
for os in alpine ubuntu redhat; do | |
jq -nRr '"matrix-" + $os +"=" + ( { include: [ $ARGS.positional[] | {target: . } ] } | tojson)' --arg os $os --args $TARGETS >> $GITHUB_OUTPUT | |
done | |
alpine: | |
needs: generate-matrix | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.generate-matrix.outputs.matrix-alpine)}} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Setup Alpine Linux | |
uses: jirutka/setup-alpine@v1 | |
with: | |
branch: v3.20 | |
packages: > | |
abuild | |
build-base | |
coreutils | |
curl | |
findutils | |
git | |
make | |
xz | |
- name: Figure out what targets we're building | |
shell: alpine.sh {0} | |
working-directory: alpine | |
run: | | |
targets="" | |
case ${{ matrix.target }} in | |
all) | |
targets="base" | |
for target in $(make list-base-modules | cut -d ' ' -f 1); do | |
targets="$targets module-$target"; | |
done | |
;; | |
modules) | |
for target in $(comm -13 <(make list-base-modules | cut -d ' ' -f 1) <(make list-all-modules | cut -d ' ' -f 1)); do | |
targets="$targets module-$target"; | |
done | |
;; | |
esac | |
echo TARGETS=$targets >> $GITHUB_ENV | |
- name: Create build depends for targets | |
shell: alpine.sh {0} | |
working-directory: alpine | |
run: | | |
for target in $TARGETS; do | |
make abuild-$target; | |
done | |
- name: Install build depends for targets | |
shell: alpine.sh --root {0} | |
working-directory: alpine | |
run: | | |
for target in ${TARGETS}; do | |
apk add $(. ./abuild-${target}/APKBUILD; echo $makedepends;) | |
done | |
- name: Build ${{ matrix.target }} | |
shell: alpine.sh {0} | |
working-directory: alpine | |
run: | | |
for target in $TARGETS; do | |
make $target; | |
done | |
- name: List what has been built | |
shell: alpine.sh {0} | |
if: ${{ !cancelled() }} | |
run: | | |
find ~/packages/alpine -type f | |
ubuntu: | |
runs-on: ubuntu-latest | |
needs: generate-matrix | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.generate-matrix.outputs.matrix-ubuntu)}} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Setup Ubuntu | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y --no-install-suggests --no-install-recommends \ | |
curl \ | |
devscripts \ | |
equivs \ | |
git \ | |
libxml2-utils \ | |
lsb-release \ | |
xsltproc | |
- name: Figure out what targets we're building | |
working-directory: debian | |
run: | | |
targets="" | |
case ${{ matrix.target }} in | |
all) | |
targets="base" | |
for target in $(make list-base-modules | cut -d ' ' -f 1); do | |
targets="$targets module-$target"; | |
done | |
;; | |
modules) | |
for target in $(comm -13 <(make list-base-modules | cut -d ' ' -f 1) <(make list-all-modules | cut -d ' ' -f 1)); do | |
targets="$targets module-$target"; | |
done | |
;; | |
esac | |
echo TARGETS=$targets >> $GITHUB_ENV | |
- name: Create and install build depends for ${{ matrix.target }} and build it | |
working-directory: debian | |
run: | | |
NGINX_VERSION=$(make --eval 'nv:; @echo $(BASE_VERSION)' nv) | |
for target in $TARGETS; do | |
make rules-$target | |
sudo mk-build-deps --install --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" \ | |
debuild-${target}/nginx-${NGINX_VERSION}/debian/control; | |
make $target | |
done | |
- name: List what has been built | |
if: ${{ !cancelled() }} | |
run: | | |
find .. -mindepth 1 -maxdepth 1 -name "*.deb" | |
redhat: | |
needs: generate-matrix | |
runs-on: ubuntu-latest | |
container: almalinux:9 | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.generate-matrix.outputs.matrix-redhat)}} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Setup AlmaLinux | |
run: | | |
dnf makecache | |
dnf install -y \ | |
g++ \ | |
gcc \ | |
git \ | |
epel-release \ | |
libxslt \ | |
make \ | |
rpm-build \ | |
which \ | |
xz \ | |
'dnf-command(config-manager)' | |
dnf config-manager --set-enabled crb | |
- name: Figure out what targets we're building | |
working-directory: rpm/SPECS | |
run: | | |
targets="" | |
case ${{ matrix.target }} in | |
all) | |
targets="base" | |
for target in $(make list-base-modules | cut -d ' ' -f 1); do | |
targets="$targets module-$target"; | |
done | |
;; | |
modules) | |
for target in $(comm -13 <(make list-base-modules | cut -d ' ' -f 1) <(make list-all-modules | cut -d ' ' -f 1)); do | |
targets="$targets module-$target"; | |
done | |
;; | |
esac | |
echo TARGETS=$targets >> $GITHUB_ENV | |
- name: Create and install build depends for ${{ matrix.target }} and build it | |
working-directory: rpm/SPECS | |
run: | | |
for target in $TARGETS; do | |
# geoip is not available | |
test $target == "module-geoip" && continue | |
case ${target} in | |
base) | |
spec="nginx.spec" | |
;; | |
*) | |
spec="nginx-${target}.spec" | |
;; | |
esac | |
make $spec | |
dnf -y install $(rpmspec -P ./${spec} | grep BuildRequires | cut -d: -f2- | xargs) | |
make ${target} | |
done | |
- name: List what has been built | |
if: ${{ !cancelled() }} | |
run: | | |
find rpm/RPMS -type f |