|
| 1 | +# Cloudsmith Package Publishing |
| 2 | + |
| 3 | +Publishes Linux packages (DEBs and RPMs) to Cloudsmith's `posit/open` repository. |
| 4 | + |
| 5 | +**Workflow**: [.github/workflows/publish-cloudsmith.yml](../.github/workflows/publish-cloudsmith.yml) |
| 6 | + |
| 7 | +## Automatic Publishing |
| 8 | + |
| 9 | +Called automatically by `create-release.yml` for stable releases (non-prereleases). |
| 10 | + |
| 11 | +## Manual Publishing |
| 12 | + |
| 13 | +Use for: |
| 14 | +- Republishing older releases |
| 15 | +- Fixing package issues |
| 16 | +- Testing with dry-run |
| 17 | + |
| 18 | +### Steps |
| 19 | + |
| 20 | +1. Go to [Actions → Publish to Cloudsmith](https://github.com/quarto-dev/quarto-cli/actions/workflows/publish-cloudsmith.yml) |
| 21 | +2. Click "Run workflow" |
| 22 | +3. Configure: |
| 23 | + - **version**: `v1.8.26` (release tag) |
| 24 | + - **dry-run**: Check for testing, uncheck for production |
| 25 | +4. Run workflow |
| 26 | + |
| 27 | +### Dry-Run First |
| 28 | + |
| 29 | +**Always test with dry-run before production:** |
| 30 | + |
| 31 | +```yaml |
| 32 | +dry-run: true # Test - validates but doesn't publish |
| 33 | +dry-run: false # Production - publishes to Cloudsmith |
| 34 | +``` |
| 35 | +
|
| 36 | +Dry-run downloads packages and validates parameters without pushing to Cloudsmith. |
| 37 | +
|
| 38 | +## Required Assets |
| 39 | +
|
| 40 | +Workflow expects these in the GitHub release: |
| 41 | +
|
| 42 | +``` |
| 43 | +quarto-${VERSION}-linux-amd64.deb |
| 44 | +quarto-${VERSION}-linux-arm64.deb |
| 45 | +quarto-${VERSION}-linux-x86_64.rpm |
| 46 | +quarto-${VERSION}-linux-aarch64.rpm |
| 47 | +``` |
| 48 | + |
| 49 | +Verify with: |
| 50 | +```bash |
| 51 | +gh release view v1.8.26 --json assets --jq '.assets[].name' | grep -E '(deb|rpm)' |
| 52 | +``` |
| 53 | + |
| 54 | +## Architecture |
| 55 | + |
| 56 | +- **Validation**: Checks assets exist via GitHub API |
| 57 | +- **Matrix**: 4 parallel jobs (deb/rpm × x86_64/aarch64) |
| 58 | +- **Publishing**: Uses `cloudsmith push` with `--republish` flag |
| 59 | +- **Repository**: `posit/open/any-distro/any-version` (distribution-agnostic) |
| 60 | + |
| 61 | +## Troubleshooting |
| 62 | + |
| 63 | +**Assets missing**: Run [Build Installers](https://github.com/quarto-dev/quarto-cli/actions/workflows/create-release.yml) workflow to rebuild packages |
| 64 | + |
| 65 | +**Authentication failed**: Check `CLOUDSMITH_API_KEY` secret in repository settings |
0 commit comments