-
Notifications
You must be signed in to change notification settings - Fork 23
107 lines (103 loc) · 3.65 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
name: release
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
permissions:
contents: write
jobs:
create-release:
name: create-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get the tag name
if: env.VERSION == ''
run: echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
- name: Print Version
run: echo "$VERSION"
- name: Print Cargo Version
run: cargo -V
- name: Package Version
run: echo "PKG_VER=$(cargo metadata --no-deps --format-version 1 | jq '.packages[0].version' | head -n 1)" >> $GITHUB_ENV
- name: Print Package Version
run: echo "$PKG_VER"
- name: Check Version
run: |
if ! [ "$PKG_VER" == "${VERSION#v}" ]; then
echo "version does not match tag"
# exit 1
fi
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create $VERSION --draft --verify-tag --title $VERSION
outputs:
version: ${{ env.VERSION }}
pkg_ver: ${{ env.PKG_VER }}
build:
name: build
needs: ['create-release']
env:
APPIMAGETOOL: tools/appimagetool
VERSION: ${{needs.create-release.outputs.version}}
PKG_VER: ${{needs.create-release.outputs.pkg_ver}}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check Version env
run: |
if [ "$PKG_VER" == "" ]; then
exit 1
fi
if [ "$VERSION" == "" ]; then
exit 1
fi
- name: Install
run: |
sudo apt update
sudo apt install libdrm-dev mold desktop-file-utils appstream
- name: Download appimagetool
run: |
mkdir tools
curl -o $APPIMAGETOOL -L -O https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x $APPIMAGETOOL
- name: Install cargo-deb
run: mold -run cargo install cargo-deb
- name: Install cargo-generate-rpm
run: mold -run cargo install cargo-generate-rpm
- name: Install cargo-appimage
run: mold -run cargo install cargo-appimage
- name: Build binary
run: mold -run cargo build --release --no-default-features --features="package"
- name: Build Deb Package
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mold -run cargo deb -- --no-default-features --features="package"
gh release upload "$VERSION" ./target/debian/amdgpu-top_${{ env.PKG_VER }}-1_amd64.deb
- name: Build RPM Pakcage
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mold -run cargo generate-rpm
gh release upload "$VERSION" ./target/generate-rpm/amdgpu_top-${{ env.PKG_VER }}-1.x86_64.rpm
- name: Build AppImage
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PATH=$PATH:$PWD/tools/
mold -run cargo appimage --no-default-features --features="package"
cp ./target/appimage/amdgpu_top.AppImage amdgpu_top-x86_64.AppImage
gh release upload "$VERSION" amdgpu_top-x86_64.AppImage
- name: Build Deb Package without GUI
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mold -run cargo deb -- --no-default-features --features="tui, json"
mv ./target/debian/amdgpu-top{,_without_gui}_${{ env.PKG_VER }}-1_amd64.deb
gh release upload "$VERSION" ./target/debian/amdgpu-top_without_gui_${{ env.PKG_VER }}-1_amd64.deb