Enable Debian Build,Sign,Publish via GH Actions - #5
Open
endersonmaia wants to merge 48 commits into
Open
Conversation
endersonmaia
temporarily deployed
to
github-pages
April 22, 2026 22:56 — with
GitHub Actions
Inactive
endersonmaia
temporarily deployed
to
github-pages
April 24, 2026 12:45 — with
GitHub Actions
Inactive
endersonmaia
had a problem deploying
to
github-pages
April 24, 2026 20:22 — with
GitHub Actions
Failure
endersonmaia
had a problem deploying
to
github-pages
April 24, 2026 20:24 — with
GitHub Actions
Failure
endersonmaia
temporarily deployed
to
github-pages
April 24, 2026 20:46 — with
GitHub Actions
Inactive
edubart
requested changes
Apr 24, 2026
| Debian/Ubuntu packages are available in [debian](debian) subdirectory. | ||
| Alpine packages are available in [alpine](alpine) subdirectory. | ||
|
|
||
| You can find instructions on the sub directories. |
There was a problem hiding this comment.
We need to create a LICENSE and AUTHORS file.
Also mention the LICENSE.
endersonmaia
force-pushed
the
feature/ci-debian-build-multiple-archs
branch
from
April 27, 2026 13:21
2842311 to
184ae88
Compare
endersonmaia
temporarily deployed
to
github-pages
April 27, 2026 13:37 — with
GitHub Actions
Inactive
edubart
requested changes
Apr 29, 2026
endersonmaia
force-pushed
the
feature/ci-debian-build-multiple-archs
branch
from
April 29, 2026 20:39
329e5f9 to
c700e3b
Compare
endersonmaia
temporarily deployed
to
github-pages
April 29, 2026 21:01 — with
GitHub Actions
Inactive
endersonmaia
force-pushed
the
feature/ci-debian-build-multiple-archs
branch
from
May 4, 2026 13:24
0c7b63d to
bf6c2c7
Compare
endersonmaia
temporarily deployed
to
github-pages
June 10, 2026 23:01 — with
GitHub Actions
Inactive
endersonmaia
temporarily deployed
to
github-pages
June 11, 2026 23:55 — with
GitHub Actions
Inactive
endersonmaia
temporarily deployed
to
github-pages
June 12, 2026 22:08 — with
GitHub Actions
Inactive
endersonmaia
force-pushed
the
feature/ci-debian-build-multiple-archs
branch
from
June 30, 2026 20:21
9d8a862 to
0fec973
Compare
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…mulator(-dev) cartesi-machine-emulator 0.21.0 renamed its public C headers (machine-c-api.h -> cm.h, jsonrpc-machine-c-api.h -> cm-jsonrpc.h), breaking cartesi-rollups-node's cgo build, which still targets the old header names (no released upstream tag adapts to the rename yet). Runtime Depends was already capped to <0.21.0; Build-Depends/makedepends were not, so apt/apk happily pulled the newest -dev package once 0.21.0 was published locally. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…blish A single package failing (e.g. cartesi-rollups-node) previously took down the whole pipeline: `make packages` stopped at the first failing package, none of the post-build steps had an `if:` guard so already-built packages never got uploaded as artifacts, and every downstream job (check/test/sign/ publish) was skipped by default once the matrixed build job reported failure for any single arch/package - even architectures where everything built fine. - debian.yml/alpine.yml: `make -k packages` (keep-going) plus `continue-on-error` on the build step so later packages still get a chance and already-built ones still get uploaded (`if: always()`); a final step re-raises the failure afterwards so the job still shows red. - debian-check/test/sign and alpine-check/test/sign: guard with `!cancelled()` so they still run (and gate on actual artifact presence) instead of being skipped by default `needs` semantics when a build leg fails. - debian.yml's cdn-restore step used `lfs: false` while cdn's .gitattributes marks *.deb as LFS-tracked; fixed to `lfs: true` to match alpine.yml and avoid resolving Build-Depends against LFS pointer files once real packages exist on the cdn branch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add CI builds for Debian and Alpine packages across multiple architectures
This PR introduces a full CI/CD pipeline for building, signing, and publishing Cartesi Linux packages for both Debian/Ubuntu and Alpine Linux, targeting three architectures:
amd64/x86_64,arm64/aarch64, andriscv64.What's new
Packaging scripts
debian/): AddedMakefile,Dockerfile, build scripts, andDEBBUILDspecs for all packages (cartesi-machine-emulator,cartesi-machine-guest-tools,cartesi-machine-guest-linux-headers,cartesi-machine-linux-image,cartesi-machine-rootfs-image,xgenext2fs), including split install files, control, copyright, rules, and patch series.alpine/): AddedMakefile,Dockerfile, andAPKBUILDspecs for the same set of packages, plus a re-sign helper script.CI/CD workflows
.github/workflows/debian.yml: Multi-arch matrix build (ubuntu-24.04,ubuntu-24.04-arm,ubuntu-24.04-riscv) with GHA cache for Docker layers and built packages; includes build, test, sign, and publish jobs. Scoped to trigger only on changes underdebian/**..github/workflows/alpine.yml: Multi-arch matrix build with analogous structure, CDN fetch before sync, and upload step. Scoped to trigger only on changes underalpine/**.PACKAGES_ALLARCH(architecture-independent packages likelinux-imageandrootfs-image) is only built onamd64to avoid duplicate artifacts.Distribution targets
TARGET_ARCHfixed for cross-platform Docker builds.CDN / package repository
cdngit LFS branch (cdn/aptandcdn/apk), enabling downstream consumers to pull fromcartesi.github.io/linux-packages.Version bumps
cartesi-machine-emulator→ 0.20.0cartesi-machine-guest-toolsandcartesi-machine-linux-image→ 0.17.2Documentation
README.mdupdated to list all supported distros and point tocartesi.github.io/linux-packages.debian/README.mdandalpine/README.mdwith per-distro usage instructions.