Skip to content

Tauri Release

Tauri Release #193

Workflow file for this run

name: Tauri Release
on:
workflow_dispatch:
pull_request:
paths:
- ".github/workflows/tauri-release.yml"
release:
types: [published]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build-and-sign-tauri:
strategy:
fail-fast: false
matrix:
target:
[x86_64-unknown-linux-gnu, x86_64-apple-darwin, aarch64-apple-darwin]
include:
- target: x86_64-unknown-linux-gnu
name: ubuntu-latest
- target: x86_64-apple-darwin
name: macos-11
- target: aarch64-apple-darwin
name: macos-11
runs-on: ${{ matrix.name }}
env:
ORT_LIB_LOCATION: ${{ github.workspace }}/lib/${{ matrix.target }}/onnxruntime
steps:
- name: Checkout code
uses: nschloe/action-cached-lfs-checkout@v1
- name: Setup nix
uses: cachix/install-nix-action@v22
with:
github_access_token: "${{ secrets.GITHUB_TOKEN }}"
- run: nix profile install nixpkgs#protobuf
- if: matrix.name == 'ubuntu-latest'
run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf protobuf-compiler
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: Install app dependencies
run: npm ci
- name: Install Rust stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
target: ${{ matrix.target }}
- name: Check if keys exist
env:
analytics_key: ${{ secrets.ANALYTICS_BE_WRITE_KEY_PROD }}
analytics_fe_key: ${{ secrets.ANALYTICS_FE_WRITE_KEY_PROD }}
sentry_dsn: ${{ secrets.SENTRY_DSN_BE }}
sentry_dsn_fe: ${{ secrets.SENTRY_DSN_FE }}
if: ${{ env.analytics_fe_key == '' || env.sentry_dsn_fe == '' || env.analytics_key == '' || env.sentry_dsn == ''}}
run: exit 1
- name: Set environment
run: echo "{\"analytics_key\":\"${{ secrets.ANALYTICS_BE_WRITE_KEY_PROD }}\",\"analytics_data_plane\":\"${{ secrets.ANALYTICS_DATA_PLANE_URL }}\",\"sentry_dsn_fe\":\"${{ secrets.SENTRY_DSN_FE }}\",\"sentry_dsn\":\"${{ secrets.SENTRY_DSN_BE }}\",\"analytics_key_fe\":\"${{ secrets.ANALYTICS_FE_WRITE_KEY_PROD }}\",\"github_client_id\":\"${{ secrets.APP_GITHUB_CLIENT_ID }}\",\"answer_api_url\":\"${{ secrets.ANSWER_API_URL }}\"}" > apps/desktop/src-tauri/config/config.json
- name: Check environment is set
run: du -h apps/desktop/src-tauri/config/config.json
- name: Set providerShortName in tauri.conf.json
uses: jossef/action-set-json-field@v2
with:
file: apps/desktop/src-tauri/tauri.conf.json
field: tauri.bundle.macOS.providerShortName
value: ${{ secrets.MAC_PROVIDER_SHORT_NAME }}
- name: Set signingIdentity in tauri.conf.json
uses: jossef/action-set-json-field@v2
with:
file: apps/desktop/src-tauri/tauri.conf.json
field: tauri.bundle.macOS.signingIdentity
value: ${{ secrets.APPLE_SIGNING_IDENTITY }}
- name: get release version
id: release-version
run: echo "RELEASE_VERSION=$(cat apps/desktop/src-tauri/tauri.conf.json | jq '.package.version' | tr -d '"')" >> "$GITHUB_OUTPUT"
- uses: tauri-apps/tauri-action@cb58ba3f65bd456ee564376585a8400bf0b71f47
env:
ORT_LIB_LOCATION: ${{ github.workspace }}/lib/${{ matrix.target }}/onnxruntime
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
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 }}
TAURI_BIN_PATH: apps/desktop/src-tauri/bin
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_RELEASE_VERSION: ${{ steps.release-version.outputs.RELEASE_VERSION }}
with:
args: -- --target "${{ matrix.target }}" -v
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.target }}-app
path: target/${{ matrix.target }}/release/bundle
retention-days: 5
- name: Upload release assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/v')
with:
files: |
target/${{ matrix.target }}/release/bundle/**/*.deb
target/${{ matrix.target }}/release/bundle/**/*.AppImage
target/${{ matrix.target }}/release/bundle/**/*.dmg