name: debian-unstable
on:
workflow_call:
inputs:
release_mode:
description: Release mode from orchestrator
required: false
type: string
default: none
push:
branches: [main]
pull_request:
types: [opened, synchronize, reopened, labeled]
workflow_dispatch:
concurrency:
group: debian-unstable-${{ github.ref }}-${{ inputs.release_mode || 'none' }}
cancel-in-progress: true
jobs:
build:
if: inputs.release_mode == 'pr' || inputs.release_mode == 'tag' || github.event_name != 'pull_request' || (contains(github.event.pull_request.labels.*.name, 'debs') && !startsWith(github.event.pull_request.head.ref || '', 'release/v'))
name: Build unstable .debs
runs-on: ${{ matrix.runner }}
container: debian:unstable
strategy:
matrix:
include:
- arch: amd64
runner: ubuntu-24.04
- arch: arm64
runner: ubuntu-24.04-arm
env:
DEB_BUILD_OPTIONS: nocheck
DEB_BUILD_PROFILES: nocheck
steps:
- name: install deps
run: |
apt-get update
apt-get -y --no-install-recommends install \
build-essential \
ca-certificates \
devscripts \
dpkg-dev \
eatmydata \
equivs \
fakeroot \
git \
git-buildpackage
- uses: actions/checkout@v4
- name: Install build-deps
run: |
set -euo pipefail
eatmydata apt-get -y --no-install-recommends \
build-dep .
- name: Build packages
run: |
set -euxo pipefail
dpkg-buildpackage -us -uc -b
mkdir -p debs
mv ../*.deb ${GITHUB_WORKSPACE}/debs
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: debs-${{ matrix.arch }}
path: debs