Skip to content

Commit 9430fba

Browse files
authored
feat: build debian package (r0gue-io#817)
* feat: build a debian package for pop-cli * feat: build debian package in release workflow * fix: PR feedback * fix: use correct pop-cli webpage * doc: installation instructions
1 parent 07a4873 commit 9430fba

8 files changed

Lines changed: 118 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,42 @@ jobs:
8484
files: |
8585
${{ env.path }}/${{ env.package }}
8686
87+
build-debian:
88+
name: Build Debian Package
89+
runs-on: ubuntu-22.04
90+
permissions:
91+
contents: write
92+
if: github.event_name == 'release'
93+
steps:
94+
- name: Checkout
95+
uses: actions/checkout@v4
96+
with:
97+
fetch-depth: 0
98+
ref: ${{ github.event.inputs.ref }}
99+
100+
- name: Install build dependencies
101+
run: |
102+
sudo apt-get update
103+
sudo apt-get install -y curl git debhelper libssl-dev pkg-config protobuf-compiler
104+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
105+
106+
- name: Build Debian package
107+
run: |
108+
. "$HOME/.cargo/env"
109+
dpkg-buildpackage -us -uc -d
110+
111+
- name: Upload Debian package artifact
112+
uses: actions/upload-artifact@v4
113+
with:
114+
name: pop-cli-debian-package
115+
path: ${{ github.workspace }}/../pop-cli_*.deb
116+
117+
- name: Upload Debian package to release
118+
uses: softprops/action-gh-release@v1
119+
with:
120+
files: |
121+
${{ github.workspace }}../pop-cli_*.deb
122+
87123
publish-homebrew:
88124
name: Publish to Homebrew
89125
runs-on: ubuntu-latest

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,9 @@ debug
1111
.idea
1212
.vscode
1313
.envrc
14+
15+
debian/pop-cli/
16+
debian/debhelper-build-stamp
17+
debian/files
18+
debian/pop-cli.substvars
19+
debian/.debhelper

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
## Installation
1818

19-
You can install Pop CLI
19+
You can install Pop CLI
2020
- from homebrew:
2121
```shell
2222
brew install r0gue-io/pop-cli/pop
@@ -25,8 +25,12 @@ brew install r0gue-io/pop-cli/pop
2525
```shell
2626
cargo install --force --locked pop-cli
2727
```
28+
- from Debian package (download from [releases](https://github.com/r0gue-io/pop-cli/releases)):
29+
```shell
30+
sudo dpkg -i pop-cli_*.deb
31+
```
2832

29-
> :information_source: Pop CLI requires Rust 1.91 or later.
33+
> :information_source: Pop CLI requires Rust 1.91.1 or later.
3034
3135
You can also install Pop CLI using the [Pop CLI GitHub repo](https://github.com/r0gue-io/pop-cli):
3236

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pop-cli (0.12.1-1) unstable; urgency=medium
2+
3+
* Initial Debian package release
4+
* Version 0.12.1 of pop-cli
5+
6+
-- R0GUE <go@r0gue.io> Wed, 04 Dec 2025 00:00:00 +0000

debian/control

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Source: pop-cli
2+
Section: devel
3+
Priority: optional
4+
Maintainer: R0GUE <go@r0gue.io>
5+
Build-Depends: debhelper-compat (= 13),
6+
cargo (>= 1.91.1),
7+
rustc (>= 1.91.1),
8+
libssl-dev,
9+
pkg-config,
10+
protobuf-compiler
11+
Standards-Version: 4.7.0
12+
Homepage: https://onpop.io/
13+
Vcs-Git: https://github.com/r0gue-io/pop-cli.git
14+
Vcs-Browser: https://github.com/r0gue-io/pop-cli
15+
16+
Package: pop-cli
17+
Architecture: any
18+
Depends: ${shlibs:Depends}, ${misc:Depends}
19+
Description: An all-in-one tool for Polkadot development
20+
Pop CLI is a comprehensive command-line tool for developing on Polkadot.
21+
It provides functionality for smart contract development, parachain
22+
development, and other Polkadot ecosystem tools.

debian/copyright

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2+
Upstream-Name: pop-cli
3+
Upstream-Contact: R0GUE <go@r0gue.io>
4+
Source: https://github.com/r0gue-io/pop-cli
5+
6+
Files: *
7+
Copyright: 2025 R0GUE
8+
License: GPL-3.0
9+
10+
License: GPL-3.0
11+
This program is free software: you can redistribute it and/or modify
12+
it under the terms of the GNU General Public License as published by
13+
the Free Software Foundation, version 3 of the License.
14+
.
15+
This program is distributed in the hope that it will be useful,
16+
but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
GNU General Public License for more details.
19+
.
20+
You should have received a copy of the GNU General Public License
21+
along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
.
23+
On Debian systems, the complete text of the GNU General
24+
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

debian/install

Whitespace-only changes.

debian/rules

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/make -f
2+
3+
export DH_VERBOSE = 1
4+
5+
%:
6+
dh $@
7+
8+
override_dh_auto_clean:
9+
cargo clean
10+
11+
override_dh_auto_build:
12+
cargo build --release --locked
13+
14+
override_dh_auto_test:
15+
# Skip tests during package build
16+
17+
override_dh_auto_install:
18+
install -D -m 755 target/release/pop debian/pop-cli/usr/bin/pop

0 commit comments

Comments
 (0)