-
Notifications
You must be signed in to change notification settings - Fork 0
200 lines (185 loc) · 7.35 KB
/
releases.yaml
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
name: Create GitHub Release
# release a new version by pushing to the release branch
on:
push:
branches:
- release
permissions:
actions: write
contents: read
jobs:
publish-tauri:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest" # for Arm based Macs
args: ""
- platform: "macos-13" # for Intel based Macs
args: ""
- platform: "ubuntu-22.04"
args: ""
- platform: "windows-latest"
args: ""
runs-on: ${{ matrix.platform }}
env:
VITE_EXCLUDE_SIDECAR: true # excludes nrsc5 sidecar and disables HD Radio in the app (due to building issues)
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
steps:
- uses: actions/checkout@v4
- name: Install Build Dependencies (MacOS Only)
if: matrix.platform == 'macos-latest' || matrix.platform == 'macos-13'
run: |
brew tap pothosware/homebrew-pothos
brew update
brew install pkg-config cmake autoconf automake libtool git librtlsdr libao fftw soapyrtlsdr libusb
- name: Install Build Dependencies (Ubuntu Only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev librsvg2-dev patchelf git build-essential cmake autoconf automake libtool libao-dev libfftw3-dev librtlsdr-dev nodejs npm libsoapysdr-dev soapysdr-module-rtlsdr libusb-dev libusb-1.0-0-dev curl wget file libxdo-dev libssl-dev libappindicator3-dev librsvg2-dev libasound2-dev libclang-dev libudev-dev patchelf
- name: Install Build Dependencies (Windows Only)
if: matrix.platform == 'windows-latest'
shell: powershell
run: choco install pkgconfiglite -y
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: "yarn"
- name: Install Rust Stable
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
# If on Mac, we need to include both architectures
target: ${{ matrix.args == '--target aarch64-apple-darwin' && 'aarch64-apple-darwin' || matrix.args == '--target x86_64-apple-darwin' && 'x86_64-apple-darwin' || '' }}
# required to run build scripts
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
# setup caching to speed up builds
- name: Rust Build Cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- name: Dependencies Build Cache
id: deps-build-cache
uses: actions/cache@v4
with:
path: ./build
key: ${{ matrix.platform }}-${{ matrix.args }}-deps-build
- name: Install Frontend Dependencies
run: yarn install
- name: Build and Release Tauri App
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version.
releaseName: "RTL-SDR Radio v__VERSION__"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
includeUpdaterJson: true
args: ${{ matrix.args }}
tauriScript: "yarn tauri"
# publish-tauri-linux-arm:
# runs-on: ubuntu-22.04
#
# permissions:
# contents: write
# strategy:
# matrix:
# arch: [aarch64, armv7l]
# include:
# - arch: aarch64
# cpu: cortex-a72
# base_image: https://dietpi.com/downloads/images/DietPi_RPi-ARMv8-Bookworm.img.xz
# deb: arm64
# rpm: aarch64
# appimage: aarch64
# - arch: armv7l
# cpu: cortex-a53
# deb: armhfp
# rpm: arm
# appimage: armhf
# base_image: https://dietpi.com/downloads/images/DietPi_RPi-ARMv7-Bookworm.img.xz
#
# env:
# VITE_EXCLUDE_SIDECAR: true # excludes nrsc5 sidecar and disables HD Radio in the app (due to building issues)
# TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
# TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
#
# steps:
# - uses: actions/checkout@v4
#
# # setup caching to speed up builds
# - name: Rust Build Cache
# uses: Swatinem/rust-cache@v2
# with:
# workspaces: src-tauri
# cache-on-failure: true
#
# - name: Dependencies Build Cache
# id: deps-build-cache
# uses: actions/cache@v4
# with:
# path: ./build
# key: ${{ matrix.platform }}-${{ matrix.args }}-deps-build
#
# - name: Build app
# uses: pguyot/arm-runner-action@v2.6.5
# with:
# base_image: ${{ matrix.base_image }}
# cpu: ${{ matrix.cpu }}
# bind_mount_repository: true
# image_additional_mb: 10240
# optimize_image: no
# #exit_on_fail: no
# commands: |
# # Prevent Rust from complaining about $HOME not matching eid home
# export HOME=/root
#
# # Workaround to CI worker being stuck on Updating crates.io index
# export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
#
# # Install setup prerequisites
# apt-get update -y --allow-releaseinfo-change
# apt-get autoremove -y
# apt-get install -y --no-install-recommends --no-install-suggests curl libwebkit2gtk-4.1-dev build-essential libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf libfuse2 file git cmake autoconf automake libtool libao-dev libfftw3-dev librtlsdr-dev nodejs npm libsoapysdr-dev soapysdr-module-rtlsdr libusb-dev libusb-1.0-0-dev curl wget file libxdo-dev librsvg2-dev libasound2-dev libclang-dev libudev-dev patchelf python3
# curl https://sh.rustup.rs -sSf | sh -s -- -y
# . "$HOME/.cargo/env"
# curl -fsSL https://deb.nodesource.com/setup_lts.x | bash
# apt-get install -y nodejs
#
# # Install frontend dependencies
# yarn install
#
# # Build the application
# yarn tauri build -- --verbose
#
# - name: Get app version
# run: echo "APP_VERSION=$(jq -r .version src-tauri/tauri.conf.json)" >> $GITHUB_ENV
#
# # TODO: Combine this with the basic workflow and upload the files to the Release.
# - name: Upload deb bundle
# uses: actions/upload-artifact@v3
# with:
# name: Debian Bundle
# path: ${{ github.workspace }}/src-tauri/target/release/bundle/deb/appname_${{ env.APP_VERSION }}_${{ matrix.deb }}.deb
#
# - name: Upload rpm bundle
# uses: actions/upload-artifact@v3
# with:
# name: RPM Bundle
# path: ${{ github.workspace }}/src-tauri/target/release/bundle/rpm/appname-${{ env.APP_VERSION }}-1.${{ matrix.rpm }}.rpm
#
# - name: Upload appimage bundle
# uses: actions/upload-artifact@v3
# with:
# name: AppImage Bundle
# path: ${{ github.workspace }}/src-tauri/target/release/bundle/appimage/appname_${{ env.APP_VERSION }}_${{ matrix.appimage }}.AppImage
#