Skip to content

Publish a reusable aarch64 repository artifact - #223

Open
birkskyum wants to merge 7 commits into
omacom:masterfrom
birkskyum:upstream/aarch64-reusable-repo
Open

Publish a reusable aarch64 repository artifact#223
birkskyum wants to merge 7 commits into
omacom:masterfrom
birkskyum:upstream/aarch64-reusable-repo

Conversation

@birkskyum

@birkskyum birkskyum commented Aug 27, 2026

Copy link
Copy Markdown

Summary

  • carries Build aarch64 packages on native ARM64 runners #171 as the native ARM build prerequisite
  • lets another workflow call the package build against an explicit repository and ref
  • publishes a complete omarchy.db repository tree rather than only loose package files
  • validates that every package requested by the caller appears in the repository database
  • exposes the artifact name as a reusable-workflow output for omarchy-iso
  • caches the repository tree so unchanged packages do not rebuild for every ISO

Provenance

The prerequisite native runner commits are authored by Scott Jones and come from #171. The reusable repository workflow is authored by Jimmy Van Veen and reduced from JimmayVV/omarchy-pkgs@snapdragon. Birk removed the branch-specific push trigger and the hardcoded Snapdragon package list; callers now own the package set they require.

Dependency and review order

This branch carries #171 so it can be exercised today. It should be rebased to only its follow-up commits after #171 merges.

The consuming ISO work is omacom/omarchy-iso#129. The packages needed by that ISO are proposed separately in #221, #222, #195 and #197.

Validation

Native ARM run 33119644049 passed package construction, omarchy.db publication, requested-package verification and artifact upload. The repository artifact was also consumed successfully by the corrected ISO build in run 33128799299.

scottjones and others added 5 commits August 27, 2026 23:30
Both are plain Rust builds with nothing architecture-specific in build()
or package(), but carry arch=('x86_64') and so are skipped by
should_build_for_arch() on an aarch64 run.

Both are AUR-synced, so the change also goes in .omarchy/patches/ --
matching umu-launcher and the other locally-modified packages -- or the
next sync-aur reverts it.

Verified rather than assumed: both are built and running on an Apple
Silicon machine at these versions.
The build system already supports aarch64 end to end -- bin/build,
bin/sign, bin/update-repo and bin/sync-repo all take --arch, the
Dockerfile bootstraps an Arch Linux ARM rootfs, and omarchy-keyring is
published for aarch64 so that image can bootstrap -- but nothing runs
it, so pkgs.omarchy.org serves no aarch64 tree.

GitHub's ARM64 runners are free for public repositories, so the build
needs no QEMU. The workflow is dispatch-only and takes an optional
package list, and it stops at uploading artifacts: signing and syncing
need credentials only a maintainer has.
The builder container works as its own uid 1000 user, while a GitHub
runner is uid 1001, and make_dir_writable() chowns the mounted output
directories to the host user. The container then cannot write its
incremental omarchy-build database, pacman -Sy fails to open it, and no
makedepends resolve -- the build dies on the first package.

This is invisible on a workstation, where the developer is uid 1000 too.
Extend the native ARM package build so an ISO workflow can call it, receive a complete omarchy.db repository artifact, and verify the requested package set.
@birkskyum
birkskyum force-pushed the upstream/aarch64-reusable-repo branch from e723c3d to 525eb55 Compare August 27, 2026 21:30
@birkskyum
birkskyum marked this pull request as ready for review August 27, 2026 21:52
@birkskyum

Copy link
Copy Markdown
Author

Native ARM64 end-to-end validation passed after making repository database creation use the target architecture: package build, omarchy.db publication, verification, and artifact upload all succeeded. Evidence: https://github.com/birkskyum/omarchy-pkgs/actions/runs/33119644049

@JimmayVV

JimmayVV commented Aug 27, 2026

Copy link
Copy Markdown

Confirming provenance. The reusable repository workflow is mine, from JimmayVV/omarchy-pkgs@snapdragon. Making it branch-neutral is the right call.

@scottjones

Copy link
Copy Markdown
Contributor

Small thing: the body says "The consuming ISO work is #129", which GitHub resolves to #129 ("Update omasnap to 1.0.6") since bare numbers link within the current repo. I think you mean omacom/omarchy-iso#129, "Boot and install Omarchy on Snapdragon X ARM64 systems" — worth spelling out in full so the dependency chain is followable.

Also flagging that I've narrowed #171 to CI only: the tensaku and tzupdate changes are out, so it's now just .github/workflows/build-aarch64.yml plus a README note. Nothing there conflicts with #195 or #240 any more, which should make it easier to land ahead of this and let you rebase down to your own commits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants