Tauri Release #194
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: 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 |