Skip to content

cache RPM CI

cache RPM CI #84

Workflow file for this run

name: Passenger RPM packaging tests
env:
ENTERPRISE: 0
on:
push: {}
pull_request: {}
jobs:
define-matrix:
runs-on: ubuntu-latest
outputs:
distros: ${{ steps.distros.outputs.distros }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Define Distros
id: distros
run: echo "distros=[$(awk -F= '/DEFAULT_DISTROS/{print $2}' packaging/rpm/internal/lib/distro_info.sh | sed -e 's/ /", "/g')]" >> "$GITHUB_OUTPUT"
test:
name: "Test ${{ matrix.distro }} ${{ matrix.arch.rpm_arch }} packages"
needs: define-matrix
strategy:
fail-fast: false
matrix:
distro: ${{ fromJSON(needs.define-matrix.outputs.distros) }}
arch:
- rpm_arch: x86_64
docker_arch: amd64
runner: ubuntu-24.04
# - rpm_arch: aarch64
# docker_arch: arm64
# runner: passenger-ubuntu-24.04-arm64-4cpu
runs-on: ${{ matrix.arch.runner }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: mkdir work cache output
working-directory: packaging/rpm
- name: Determine test distribution name
id: determine_test_distro
run: |
source packaging/rpm/internal/lib/distro_info.sh
TEST_DISTRO_NAME=$(el_name_to_distro_name "$DISTRIBUTION")
echo "name=$TEST_DISTRO_NAME" >> "$GITHUB_OUTPUT"
env:
DISTRIBUTION: ${{ matrix.distro }}
- name: Fetch cache
run: ./dev/ci/fetch-cache-az-blob-storage
env:
AZURE_STORAGE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}
CONTAINER_NAME: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
BLOB_NAME: "binaries/rpm-cache-${{ matrix.distro }}-${{ matrix.arch.rpm_arch }}.tar.zstd"
CACHE_PATH: packaging/rpm/cache
SUDO: true
- name: Build
run: ./build -w work -c cache -o output -p "$WORKSPACE" -d "$DISTRIBUTION" -a "$RPM_ARCH" -A "$DOCKER_ARCH" -R rpm:all
env:
WORKSPACE: ${{ github.workspace }}
DISTRIBUTION: ${{ matrix.distro }}
RPM_ARCH: ${{ matrix.arch.rpm_arch }}
DOCKER_ARCH: ${{ matrix.arch.docker_arch }}
working-directory: packaging/rpm
- name: Test
run: >
./test
-p "$WORKSPACE"
-d "output/$DISTRIBUTION"
-c cache
-x "$TEST_DISTRO_NAME"
-a "$RPM_ARCH"
-A "$DOCKER_ARCH"
-j
env:
WORKSPACE: ${{ github.workspace }}
DISTRIBUTION: ${{ matrix.distro }}
TEST_DISTRO_NAME: ${{ steps.determine_test_distro.outputs.name }}
RPM_ARCH: ${{ matrix.arch.rpm_arch }}
DOCKER_ARCH: ${{ matrix.arch.docker_arch }}
working-directory: packaging/rpm
- name: Update cache
run: ./dev/ci/update-cache-az-blob-storage
env:
AZURE_STORAGE_CONNECTION_STRING: ${{ secrets.AZURE_CI_STORAGE_CONNECTION_STRING }}
CONTAINER_NAME: ${{ vars.SCCACHE_AZURE_BLOB_CONTAINER }}
BLOB_NAME: "binaries/rpm-cache-${{ matrix.distro }}-${{ matrix.arch.rpm_arch }}.tar.zstd"
CACHE_PATH: packaging/rpm/cache
SUDO: true
if: always()
- uses: actions/upload-artifact@v4
with:
name: rpm-${{ matrix.distro }}-${{ matrix.arch.rpm_arch }}
path: 'packaging/rpm/output/${{ matrix.distro }}/*'