Skip to content

fixup! WIP: add debian package builder #8

fixup! WIP: add debian package builder

fixup! WIP: add debian package builder #8

Workflow file for this run

name: Debian Packages
on: [push]
jobs:
debian-build:
name: Debian Build
runs-on: ubuntu-24.04
strategy:
matrix:
target-arch:
- amd64
# - arm64
# - riscv64
permissions:
packages: write
contents: read
steps:
- name: Checkout machine emulator source code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
- name: Import GPG signing key
working-directory: debian
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
mkdir -p key
chmod 700 key
echo "$GPG_PRIVATE_KEY" | base64 -d | gpg --homedir "$(pwd)/key" --import
- name: Set up QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
- name: Make builder container image
working-directory: debian
run: |
make image TARGET_ARCH=${{ matrix.target-arch }} \
DOCKER_BUILD_FLAGS="--cache-from type=gha,scope=${{ matrix.target-arch }} --cache-to type=gha,scope=${{ matrix.target-arch }},mode=max"
- name: Build packages
working-directory: debian
run: make packages TARGET_ARCH=${{ matrix.target-arch }}
- name: Export builder container image
run: docker save cartesi/deb-builder-${{ matrix.target-arch }} | gzip > /tmp/deb-builder-${{ matrix.target-arch }}.tar.gz
- name: Upload builder container image
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: image-deb-builder-${{ matrix.target-arch }}
path: /tmp/deb-builder-${{ matrix.target-arch }}.tar.gz
- name: Upload artifacts
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: artifacts-apt-${{ matrix.target-arch }}
path: cdn/apt
test:
name: Debian Test
runs-on: ubuntu-24.04
needs: debian-build
permissions:
packages: write
contents: read
steps:
- name: Download builder container image
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: image-deb-builder
pattern: image-deb-builder-*
merge-multiple: true
- name: Import builder container image
run: |
for image in $(ls -1 image-deb-builder/); do
docker load < image-deb-builder/${image}
done
- name: Test packages
working-directory: debian
run: make test-packages TARGET_ARCH=amd64