Skip to content

Commit 000aed7

Browse files
committed
chore: Adds build packages github action
1 parent d9a8228 commit 000aed7

File tree

4 files changed

+108
-35
lines changed

4 files changed

+108
-35
lines changed

.github/workflows/main.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Build Packages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build-deb:
10+
name: Build .deb Package
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
16+
- name: Install Rust toolchain
17+
uses: dtolnay/rust-toolchain@stable
18+
with:
19+
targets: x86_64-unknown-linux-musl
20+
21+
- name: Cache cargo dependencies
22+
uses: actions/cache@v4
23+
with:
24+
path: |
25+
~/.cargo/bin/
26+
~/.cargo/registry/index/
27+
~/.cargo/registry/cache/
28+
~/.cargo/git/db/
29+
target/
30+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
31+
32+
- name: Install system dependencies
33+
run: |
34+
sudo apt-get update
35+
sudo apt-get install -y musl-tools just
36+
37+
- name: Build .deb package
38+
run: just build-deb
39+
40+
- name: Upload .deb package
41+
uses: actions/upload-artifact@v4
42+
with:
43+
name: dispenser-deb
44+
path: dispenser-*.deb
45+
46+
build-rpm:
47+
name: Build .rpm Package
48+
runs-on: ubuntu-latest
49+
steps:
50+
- name: Checkout code
51+
uses: actions/checkout@v4
52+
53+
- name: Install Rust toolchain
54+
uses: dtolnay/rust-toolchain@stable
55+
with:
56+
targets: x86_64-unknown-linux-musl
57+
58+
- name: Cache cargo dependencies
59+
uses: actions/cache@v4
60+
with:
61+
path: |
62+
~/.cargo/bin/
63+
~/.cargo/registry/index/
64+
~/.cargo/registry/cache/
65+
~/.cargo/git/db/
66+
target/
67+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
68+
69+
- name: Install system dependencies
70+
run: |
71+
sudo apt-get update
72+
sudo apt-get install -y musl-tools rpm just
73+
74+
- name: Build .rpm package
75+
run: just build-rpm
76+
77+
- name: Upload .rpm package
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: dispenser-rpm
81+
path: rpmbuild/RPMS/x86_64/*.rpm

Taskfile.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

justfile

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# justfile for dispenser project
2+
3+
DISPENSER_VERSION := "0.3"
4+
TARGET_BIN := "target/x86_64-unknown-linux-musl/release/dispenser"
5+
USR_BIN_DEB := "deb/usr/local/bin/dispenser"
6+
USR_BIN_RPM := "rpm/usr/local/bin/dispenser"
7+
8+
build:
9+
CARGO_TARGET_DIR="./target" cargo build --release --target "x86_64-unknown-linux-musl"
10+
11+
build-deb: build
12+
mkdir -p deb/usr/local/bin/
13+
rm -f {{USR_BIN_DEB}}
14+
mv {{TARGET_BIN}} {{USR_BIN_DEB}}
15+
dpkg-deb --build deb
16+
rm -f dispenser.deb
17+
mv deb.deb dispenser-{{DISPENSER_VERSION}}-0.x86_64.deb
18+
19+
build-rpm: build
20+
rm -rf rpmbuild
21+
mkdir -p rpmbuild/usr/local/bin
22+
mkdir -p rpmbuild/usr/lib/systemd/system
23+
mkdir -p rpmbuild/opt/dispenser
24+
cp {{TARGET_BIN}} rpmbuild/usr/local/bin/dispenser
25+
cp rpm/usr/lib/systemd/system/dispenser.service rpmbuild/usr/lib/systemd/system/
26+
rpmbuild --target=x86_64 --buildroot $(pwd)/rpmbuild -bb rpm/dispenser.spec

rpm/dispenser.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Distribution: Debian
77
Group: Converted/unknown
88
Requires: docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin, gnupg2, pass
99

10-
%define _rpmdir ./
10+
1111
%define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
1212
%define _unpackaged_files_terminate_build 0
1313

0 commit comments

Comments
 (0)