-
Notifications
You must be signed in to change notification settings - Fork 379
add RPM and cloudsmith publishing #13402
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
base: main
Are you sure you want to change the base?
Conversation
🎉 Snyk checks have passed. No issues have been found so far.✅ security/snyk check is complete. No issues have been found. (View Details) ✅ license/snyk check is complete. No issues have been found. (View Details) |
From review discussion:
|
This commit introduces comprehensive RPM package support alongside existing DEB packages, migrates to nfpm for package building, and adds automated Cloudsmith publishing. Package Building Changes: - Migrated from dpkg-deb to nfpm for both DEB and RPM package creation - Added makeInstallerRpm() function in installer.ts using shared nfpm configuration - Created RPM-specific post-install and post-remove scripts in package/scripts/linux/rpm/ - Added js-yaml import for generating nfpm configuration files - Implemented architecture mapping (DEB: amd64/arm64, RPM: x86_64/aarch64) GitHub Actions Workflow Improvements: - Consolidated 4 separate Linux installer jobs into single matrix job (make-installer-linux) - Matrix: arch=[x86_64, aarch64] × format=[deb, rpm] - Reduced workflow from ~160 to ~60 lines for Linux installers - Added nfpm installation step (downloads binary from GitHub releases, version 2.43.1) - Updated all artifact references to use new naming: Linux-{format}-{arch}-Installer Cloudsmith Publishing: - Added cloudsmith-push job for automated package repository publishing - Publishes to both "open" and "pro" Posit repositories - Uses matrix strategy: 2 archs × 2 formats × 2 repos = 8 push operations - Configured with any-distro/any-version for broad compatibility Build System Updates: - Added make-installer-rpm command to bld.ts - Updated all job dependencies (publish-release, cleanup-when-failure, docker-push) - Updated checksum generation and release file paths for new artifact names This enables users to install Quarto via standard package managers (apt, yum, dnf, zypper) from Posit's Cloudsmith repositories after configuring the appropriate repository source. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
f4b165f
to
f51134d
Compare
Successful run with new builds: https://github.com/quarto-dev/quarto-cli/actions/runs/17951317627 |
it looks like the installers themselves have the correct names, it's just the intermediate folders that have changed names, which I don't think matters. |
This is something to check and think about. As this means Artifact names have changed ![]() Previous installer ![]() This is updated in th workflow to create the release... so the assets in release will be ok in terms of name. So only users that do have scripts to download artifact could be affected. So any using But I do think this is an ok breaking change as we do put the artifact in release and anyone is supposed to get them there. So we could add a note in the changelog for 1.9, probably. Also, we may need to do the work for 1.8 as a backport if you want to have some 1.8 patch stable release in Cloudsmith without waiting for the next 1.9. But I can do that after this PR is merged. So I believe this is ok. I'll take a bit more time to review before merging, in case I am thinking of anything. |
This commit introduces comprehensive RPM package support alongside existing DEB packages,
migrates to nfpm for package building, and adds automated Cloudsmith publishing.
Package Building Changes:
GitHub Actions Workflow Improvements:
Cloudsmith Publishing:
Build System Updates:
This enables users to install Quarto via standard package managers (apt, yum, dnf, zypper)
from Posit's Cloudsmith repositories after configuring the appropriate repository source.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com