Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions .github/workflows/publish-deb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,14 @@ name: Publish Debian packages
# Packages the prebuilt linux-gnu binaries from the GitHub release
# into .deb files (amd64 + arm64) and uploads each as a release asset.
#
# v1 ships .deb files attached to releases — users install via
# `dpkg -i ./qn_X.Y.Z_amd64.deb` or `apt install ./qn_X.Y.Z_amd64.deb`.
# Each arch is uploaded under two names: a versioned one
# (`qn_X.Y.Z_amd64.deb`) for pinning/archival, and a version-less one
# (`qn_amd64.deb`) that gives a stable canonical URL via GitHub's
# `releases/latest/download/<file>` redirect. The version lives in the
# package's control metadata, so apt/dpkg install the right version
# regardless of the filename.
#
# Users install via `apt install ./qn_amd64.deb` (or the versioned file).
# A hosted apt repo (aptly/reprepro + GPG) is out of scope.
on:
workflow_call:
Expand Down Expand Up @@ -86,11 +92,16 @@ jobs:
cargo deb --no-build --no-strip \
--target ${{ matrix.rust_target }} \
--output qn_${{ steps.meta.outputs.version }}_${{ matrix.deb_arch }}.deb
# Canonical copy with a version-less name, so
# releases/latest/download/qn_<arch>.deb stays a stable URL.
cp qn_${{ steps.meta.outputs.version }}_${{ matrix.deb_arch }}.deb \
qn_${{ matrix.deb_arch }}.deb

- name: Upload .deb to release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload "${{ steps.meta.outputs.tag }}" \
qn_${{ steps.meta.outputs.version }}_${{ matrix.deb_arch }}.deb \
qn_${{ matrix.deb_arch }}.deb \
--clobber
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,20 @@ scoop install quicknode/qn

### `.deb` (Debian, Ubuntu)

Each GitHub release attaches `qn_<VERSION>_amd64.deb` and `qn_<VERSION>_arm64.deb`. Check your architecture with `dpkg --print-architecture`, then grab the matching file from the [latest release page](https://github.com/quicknode/cli/releases/latest):
Each GitHub release attaches a `.deb` per architecture. These canonical URLs always point at the latest release — check your architecture with `dpkg --print-architecture` and pick the matching one:

```sh
# replace <VERSION> with the version on the release page, e.g. 0.1.8
curl -LO https://github.com/quicknode/cli/releases/download/v<VERSION>/qn_<VERSION>_amd64.deb
sudo apt install ./qn_<VERSION>_amd64.deb
# amd64 (Intel/AMD)
curl -LO https://github.com/quicknode/cli/releases/latest/download/qn_amd64.deb
sudo apt install ./qn_amd64.deb

# arm64
curl -LO https://github.com/quicknode/cli/releases/latest/download/qn_arm64.deb
sudo apt install ./qn_arm64.deb
```

Versioned files (`qn_<VERSION>_amd64.deb`) are also attached to each release for pinning.

### Arch Linux (AUR)

```sh
Expand Down
Loading