Add RPM spec file and CI workflow for RPM publishing#4
Conversation
Remove main branch restrictions for push and pull request events.
Rpm publish
fix rawhide
- Use ubuntu-24.04-arm runners for native aarch64 mock builds - Pin mock results to /tmp/mock-result so paths are deterministic - Per-arch artifact names (rpms-<arch>, mock-logs-<arch>) - publish-rpm-repo merges all rpms-* artifacts, deriving dist/version from RPM filenames and deduping shared SRPMs
|
Thanks for putting work into this - RPM support is welcome. |
This pull request significantly refactors and expands the project's CI/CD workflows to support reusable build steps, cross-platform packaging, and automated RPM repository publication for Fedora. The changes modularize the build process, introduce a Fedora RPM spec, and streamline release artifact handling.
Workflow modularization and improvements:
.github/workflows/build.yml) that runs formatting, linting, testing, and builds release binaries for both native and cross targets, with optional artifact uploads for use in CI and releases.ci.yml) to delegate all build and test steps to the new reusable build workflow, simplifying the file and removing redundant job definitions.Release and packaging enhancements:
release.yml) to:.repofile, and a landing page for easy consumption by users.Fedora packaging support:
rusty_lights.specfile for Fedora RPM packaging, including build requirements, install instructions, systemd integration, and documentation/license handling.These changes make the build, test, and release process more maintainable, enable easy cross-distribution packaging, and provide users with direct access to RPM packages via a public repository.
Most important changes:
Workflow modularization
.github/workflows/build.ymlas a reusable workflow for building, testing, and packaging across native and cross targets, with optional artifact uploads..github/workflows/ci.ymlto use the new reusable build workflow, removing all previous job definitions.Release and RPM packaging
.github/workflows/release.ymlto use the reusable build workflow, automate artifact handling, add concurrency, and introduce a full Fedora RPM build/publish pipeline, including GitHub Pages RPM repo publication.Fedora support
rusty_lights.specfor Fedora RPM packaging, including build/install scripts, dependencies, and changelog.