-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Working CI with non-gui phases #4
Conversation
Ready to review! |
The workflow uploads all the packages as compressed tarballs containing the debian packages. See: https://github.com/gnustep/tools-packaging/actions/runs/6762034966 |
Turns out we need QEMU for ARM64 building. I have looked at https://github.com/uraimo/run-on-arch-action, but they do not support bookworm. I would suggest postponing the cross CI for now |
Merged as discussed in email. Further work with cross-building is following |
This is currently a draft PR aiming to get a fully automated toolchain up and running.
Features:
pbuilder/
)debian/
package descriptions with metadata separate from the source (more on that below)Traditionally,
debian/
configuration is shipped along side the code. A maintainer would grab the latest release and upload it to the corresponding git repository of the debian package.Modern distributions like NixOS, VoidLinux, or ArchLinux aggregate all package descriptions inside a single mono-repo to avoid complex ownership hierarchies or teams. This lowers the entry barrier of updating a package significantly:
I chose to do the same for this repository. The resulting structure:
source/description
as JSONcmd
The build utility. Invoked via./cmd/main.sh
.pbuilder
: Configuration, and hooks for pbuilderDefinitions:
debootstrap
: A tool for bootstrapping a debian root filesystempbuilder
: A tool that usesdebootstrap
to build a minimal rootfs, and manages the building of debian packages within this rootfs.debuild
: The standard way of building packages directly on the HOST systemdebhelper
: An aggregation of ancient and painful to use build scripts (Thedebian/rules
file is a Makefile with multiple pre-configured "pipelines")