on: push: paths-ignore: - '.github/workflows/build_test.yaml' - 'RELEASE.md' pull_request: workflow_dispatch: schedule: - cron: '0 15 * * 2' # Runs at 15:00 (3pm) UTC every Tuesday jobs: build: if: github.event_name != 'push' || github.event.pull_request == null runs-on: ${{ matrix.arch.runner }} strategy: fail-fast: false matrix: debian_version: [bullseye, bookworm] arch: - docker: amd64 variant: amd64 runner: ubuntu-24.04 - docker: arm/v7 variant: arm32v7 runner: ubuntu-24.04 - docker: arm64/v8 variant: arm64v8 runner: ubuntu-24.04-arm build_type: [generic, raspi] exclude: - arch: docker: amd64 build_type: raspi steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 submodules: recursive - name: Set GIT_VERSION run: echo "GIT_VERSION=$(git describe --tags)" >> $GITHUB_ENV - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Build Dockerfile run: | docker build \ --target deb_make \ --tag deb_make \ --file .github/ci/Dockerfile \ --build-arg GIT_VERSION \ --build-arg DOCKER_ARCH \ --build-arg DEBIAN_VERSION \ --build-arg BUILD_TYPE \ . env: DEBIAN_VERSION: ${{ matrix.debian_version }} DOCKER_ARCH: ${{ matrix.arch.docker }} BUILD_TYPE: ${{ matrix.build_type }} DOCKER_BUILDKIT: 1 - name: Create container run: docker create --name deb_make deb_make - name: Copy files run: docker cp deb_make:/deb/. deb/ - name: 'Upload debian files' uses: actions/upload-artifact@v4 with: name: ${{ matrix.debian_version }}-${{ matrix.arch.variant }}-${{ matrix.build_type }}.zip path: deb/ retention-days: 14