feat(ci): Add Fedora RPM package build workflow #961
Labels
No labels
Bug
Cherry-picking
Database
Dependencies
Dependencies/Renovate
Difficulty
Easy
Difficulty
Hard
Difficulty
Medium
Documentation
Enhancement
Good first issue
Help wanted
Inherited
Matrix/Administration
Matrix/Appservices
Matrix/Auth
Matrix/Client
Matrix/Core
Matrix/Federation
Matrix/Hydra
Matrix/MSC
Matrix/Media
Meta
Meta/CI
Meta/Packaging
Priority
Blocking
Priority
High
Priority
Low
Security
Status/Blocked
Status
Confirmed
Status
Duplicate
Status
Invalid
Status
Needs Investigation
To-Merge
Wont fix
old/ci/cd
old/rust
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
continuwuation/continuwuity!961
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "tom/ci-fedora-rpm"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Following PR #950 which introduced the RPM spec and systemd unit files, this adds a comprehensive CI workflow for building, signing, testing, and publishing RPM packages. Includes GPG signing infrastructure with Ed25519 keys and automatic package registry deployment for stable, development, and feature branch builds.
Add documentation for RPM installation methods, repository configuration, and package management. Fix linting issues in spec file for pre-commit compliance.
7406556550
d38c89f73a
d38c89f73a
809b6e4f3a
809b6e4f3a
98775d915c
15662898a0
5a4627b879
5a4627b879
4b78ab39e0
4b78ab39e0
ee2557f722
@ -0,0 +81,4 @@
# Aggressive GC since cache restores don't increment counter
echo "CARGO_INCREMENTAL_GC_TRIGGER=5" >> $GITHUB_ENV
- name: Install build dependencies
This step of the workflow should happen after the srpm is generated, and use
dnf builddep <srpm path>
to install the build dependencies listed in the specfile instead of duplicating them here.Agreed, fixed - thanks! 😄
@ -0,0 +282,4 @@
rpm -qpl "$RPM"
# Actually install it (would need --nodeps if dependencies aren't met)
dnf install -y "$RPM" || rpm -ivh --nodeps "$RPM"
Why does this silently try again with
--nodeps
ifdnf install
fails? The workflow should fail if the dependencies fail to install.Made it a lot more faily now, thanks!
ee2557f722
7be651a307
@ -0,0 +85,4 @@
run: |
dnf install -y --setopt=keepcache=1 \
wget \
rpm-build \
some (but not all?) of these tools are included in the
fedora-packager
metapackageI've actually got almost of them in the runner already, I just figured I'd explicitly list the packages we call to ensure they're always there just in case. I can remove a couple if you think that's pointless! 😄
I think I could only remove
rpm-build
andrpmdevtools
based on what I see indnf info fedora-packager
but I've done that now! 🖖@ -0,0 +89,4 @@
rpm-sign \
rpmdevtools \
rpkg \
cargo-rpm-macros \
cargo-rpm-macros
andsystemd-rpm-macros
don't need to be installed here as they're already listed inBuildRequires
in the specfileDone, thanks!
7be651a307
af53ea5599
af53ea5599
fbeb8b1f9e
fbeb8b1f9e
82e3e95fd1
@ginger does the latest RPM in the package registry validate? I'm really curious to know if Forgejo actually does sign them.
82e3e95fd1
668919db4f
@tcpipuk wrote in #961 (comment):
The latest RPM does not install, sadly.
dnf
states that it has no signature, which appears to be the case (note theSignature
field):@tcpipuk Turns out that all that was needed was a magic query parameter! Packages are signed correctly now and dnf5 happily installs them.
ce6037712c
2444b70d95
Thank you very much!!
PR is likely to be superseded by a monolithic release workflow, keep open for now
2444b70d95
d3f8da87dc
d3f8da87dc
f8fd03bd4b
This wants to be merged, just with a limit like this to avoid it running on every main/branch push:
I'll be coming back later with a refactor to integrate them to the main build pipeline, but it makes sense to add these package builds now with appropriate limits 🙂
f8fd03bd4b
3c6f2d07e0