Don't Enable BUILD_SHARED_LIBS in CMakeLists.txt on Windows #72
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
# 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 | |
# |