Skip to content

updates targets

updates targets #144

Workflow file for this run

name: Tauri Build + Release
on:
push:
branches: [ develop, staging, release ]
# This workflow will build your tauri app without uploading it anywhere.
jobs:
# test:
# strategy:
# fail-fast: false
# matrix:
# platform: [macos-latest, ubuntu-latest, windows-latest]
# runs-on: ${{ matrix.platform}}
# steps:
# - uses: actions/checkout@v4
# - name: Install the Rust toolchain
# uses: dtolnay/rust-toolchain@stable
# - name: Initialize Rust cache
# uses: swatinem/rust-cache@v2
# with:
# workspaces: './backend -> target'
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 20
# cache: 'npm'
# - name: Install dependencies (ubuntu only)
# if: matrix.platform == 'ubuntu-latest'
# run: |
# sudo apt-get update
# sudo apt-get install -y libsoup-3.0-dev libwebkit2gtk-4.1-dev javascriptcoregtk-4.1 build-essential curl wget file libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
# - name: Run unit tests
# run: |
# cd backend
# cargo test
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install pre-commit
run: pip install pre-commit
- name: Run pre-commit
run: |
pre-commit install
pre-commit run --all-files
build-and-release:
needs: pre-commit
environment: ${{ github.ref_name }}
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [macos_x86-latest, macos_arm-latest, ubuntu-latest, windows-latest]
runs-on: ${{ (matrix.platform == 'macos_x86-latest' || matrix.platform =='macos_arm-latest' ) && 'macos-latest' || matrix.platform}}
steps:
- uses: actions/checkout@v4
- name: Install the Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos_arm-latest' && 'aarch64-apple-darwin' || matrix.platform == 'macos_x86-latest' && 'x86_64-apple-darwin' || '' }}
- name: Initialize Rust cache
if: matrix.platform != 'windows-latest'
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- name: Install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libsoup-3.0-dev libwebkit2gtk-4.1-dev patchelf javascriptcoregtk-4.1 build-essential curl wget file libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
- name: Install Tauri CLI using Cargo
uses: baptiste0928/cargo-install@v3
with:
crate: tauri-cli
version: "2.0.0-rc.0"
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
API: ${{ secrets.AVAIL_API_URL}}
DEV_NODE_IP: ${{ secrets.DEV_NODE_IP}}
TESTNET_API_OBSCURA: ${{ secrets.TESTNET_API_OBSCURA}}
MAINNET_API_OBSCURA: ""
DEVNET_API_OBSCURA: ""
OBSCURA_SDK: ${{ secrets.OBSCURA_SDK}}
with:
tauriScript: cargo tauri
# This is required for Apple ARM chips and license bundling
args: "${{ matrix.platform == 'macos_arm-latest' && ' --target aarch64-apple-darwin' || matrix.platform == 'macos_x86-latest' && ' --target x86_64-apple-darwin' || '' }} --config {\"bundle\":{\"licenseFile\":\"${{ matrix.platform == 'windows-latest' && '..\\\\EULA.rtf' || '../EULA.txt' }}\"}}"
distPath: dist
# The tagName is alpha for develop, beta for staging and latest for release
includeDebug: ${{ github.ref_name == 'release' && false || true }}
includeRelease: ${{ github.ref_name == 'release' && true || false }}
tagName: "v__VERSION__-${{ vars.TAGNAME }}"
releaseName: "v__VERSION__-${{ vars.TAGNAME }}"
# The release body is optional, but it's a good place to put release notes
releaseBody: 'See the assets to download this version and install.'
# Always create a draft release, so we can check the assets before publishing
releaseDraft: true
# Only publish the release if the branch is release
prerelease: ${{ github.ref_name == 'release' && false || true }}