Skip to content

Commit e4ed124

Browse files
committed
github workflow
1 parent 9fd15b8 commit e4ed124

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

.github/workflows/release.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Create Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
packages: write
11+
issues: write
12+
pull-requests: write
13+
14+
jobs:
15+
build:
16+
strategy:
17+
matrix:
18+
target:
19+
- x86_64-unknown-linux-gnu
20+
include:
21+
- target: x86_64-unknown-linux-gnu
22+
os: ubuntu-latest
23+
name: linux-x86_64
24+
rpm_enabled: true
25+
26+
runs-on: ${{ matrix.os }}
27+
env:
28+
# Define the destination filename pattern once
29+
dst: highbrow-${{ github.ref_name }}-${{ matrix.name }}
30+
31+
steps:
32+
- uses: actions/checkout@v3
33+
34+
- name: Install dependencies (Linux)
35+
if: matrix.os == 'ubuntu-latest'
36+
run: |
37+
sudo apt-get update
38+
sudo apt-get install -y libgtk-4-dev librust-glib-dev rpm
39+
40+
- name: Setup Rust
41+
uses: actions-rs/toolchain@v1
42+
with:
43+
toolchain: stable
44+
target: ${{ matrix.target }}
45+
override: true
46+
47+
- name: Install cargo-generate-rpm
48+
if: matrix.rpm_enabled
49+
run: cargo install cargo-generate-rpm
50+
51+
- name: Build
52+
uses: actions-rs/cargo@v1
53+
with:
54+
command: build
55+
args: --release --target ${{ matrix.target }}
56+
57+
- name: Generate RPM package
58+
if: matrix.rpm_enabled
59+
shell: bash
60+
run: |
61+
set -euxo pipefail
62+
shopt -s globstar
63+
cargo generate-rpm --target ${{ matrix.target }}
64+
mv target/**/*.rpm "$dst.rpm"
65+
66+
- name: Create Release
67+
id: create_release
68+
uses: actions/create-release@v1
69+
env:
70+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71+
with:
72+
tag_name: ${{ github.ref }}
73+
release_name: Release ${{ github.ref_name }}
74+
draft: false
75+
prerelease: false
76+
77+
- name: Upload RPM
78+
if: matrix.rpm_enabled
79+
uses: actions/upload-release-asset@v1
80+
env:
81+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
with:
83+
upload_url: ${{ steps.create_release.outputs.upload_url }}
84+
asset_path: ${{ env.dst }}.rpm
85+
asset_name: ${{ env.dst }}.rpm
86+
asset_content_type: application/octet-stream
87+
88+
- name: Upload Binary
89+
uses: actions/upload-release-asset@v1
90+
env:
91+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
92+
with:
93+
upload_url: ${{ steps.create_release.outputs.upload_url }}
94+
asset_path: ./target/${{ matrix.target }}/release/highbrow
95+
asset_name: ${{ env.dst }}
96+
asset_content_type: application/octet-stream

0 commit comments

Comments
 (0)