Skip to content

foomatic-rip: Reject options defined by FoomaticRIPOption #26

foomatic-rip: Reject options defined by FoomaticRIPOption

foomatic-rip: Reject options defined by FoomaticRIPOption #26

Workflow file for this run

# Multi-Architecture / multi-CUPS Build and Test Workflow for cups-filters
#
# Matrix: 4 architectures x 2 CUPS releases = 8 combinations.
# architectures: x86_64, arm64 (native runners); armv7, riscv64 (QEMU)
# CUPS releases: 2.4.x (distro libcups2-dev), 2.5.x (OpenPrinting/cups master)
# CUPS 3.x / libcups3 is intentionally NOT tested: cups-filters is a
# compatibility layer that exposes libcupsfilters' filter functions as classic
# CUPS filters, and CUPS 3.x has no filter/backend-executable concept, so
# cups-filters has no meaning there (confirmed by Till Kamppeter).
# All the per-combination work lives in ci/ci-setup.sh so the legs differ only
# in which CUPS is provided and whether they run under emulation. Each leg
# builds pdfio + libcupsfilters + libppd against the selected CUPS, then
# cups-filters, then runs the downstream autopkgtests (make test-autopkgtest).
name: Build and Test (Multi-Architecture, Multi-CUPS)
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-matrix:
strategy:
fail-fast: false
matrix:
arch: [x86_64, arm64, armv7, riscv64]
cups: [system-2x, source-2.5.x]
include:
- arch: x86_64
runs-on: ubuntu-latest
use-qemu: false
- arch: arm64
runs-on: ubuntu-24.04-arm
use-qemu: false
- arch: armv7
runs-on: ubuntu-latest
use-qemu: true
- arch: riscv64
runs-on: ubuntu-latest
use-qemu: true
runs-on: ${{ matrix.runs-on }}
name: Build & Test (${{ matrix.arch }}, ${{ matrix.cups }})
# Building CUPS 2.5 from source under QEMU is slow; allow plenty.
timeout-minutes: 360
steps:
- uses: actions/checkout@v4
# ==========================================
# NATIVE EXECUTION (x86_64 and arm64)
# ==========================================
- name: Build & Test (Native)
if: matrix.use-qemu == false
env:
CC: /usr/bin/gcc
CUPS_KIND: ${{ matrix.cups }}
EMULATED: "0"
run: |
set -ex
sh ci/ci-setup.sh deps
sh ci/ci-setup.sh cups "${{ matrix.cups }}"
sh ci/ci-setup.sh pdfio
sh ci/ci-setup.sh libcupsfilters "${{ matrix.cups }}"
sh ci/ci-setup.sh libppd "${{ matrix.cups }}"
sh ci/ci-setup.sh build-cups-filters
- name: Autopkgtest (DESTDIR staging, native)
# Run the downstream autopkgtest suite (filter chain + test-external)
# against every CUPS version under test.
if: matrix.use-qemu == false
run: |
set -ex
make test-autopkgtest V=1
- name: Upload test artifacts (Native)
if: matrix.use-qemu == false && always()
continue-on-error: true
timeout-minutes: 5
uses: actions/upload-artifact@v4
with:
name: cups-filters-logs-${{ matrix.arch }}-${{ matrix.cups }}
path: |
config.log
test-suite.log
**/*.log
if-no-files-found: ignore
# ==========================================
# EMULATED EXECUTION (armv7 and riscv64)
# ==========================================
- name: Build & Test (Emulated)
if: matrix.use-qemu == true
uses: uraimo/run-on-arch-action@v3
with:
arch: ${{ matrix.arch }}
distro: ubuntu24.04
githubToken: ${{ github.token }}
install: |
apt-get update --fix-missing -y
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata ca-certificates git
run: |
set -ex
export CUPS_KIND="${{ matrix.cups }}"
export EMULATED=1
sh ci/ci-setup.sh deps
sh ci/ci-setup.sh cups "${{ matrix.cups }}"
sh ci/ci-setup.sh pdfio
sh ci/ci-setup.sh libcupsfilters "${{ matrix.cups }}"
sh ci/ci-setup.sh libppd "${{ matrix.cups }}"
sh ci/ci-setup.sh build-cups-filters
make test-autopkgtest V=1
- name: Upload test artifacts (Emulated)
if: matrix.use-qemu == true && always()
continue-on-error: true
timeout-minutes: 5
uses: actions/upload-artifact@v4
with:
name: cups-filters-logs-${{ matrix.arch }}-${{ matrix.cups }}
path: |
config.log
test-suite.log
**/*.log
if-no-files-found: ignore