Skip to content

v1.0.1 (#7)

v1.0.1 (#7) #14

Workflow file for this run

name: Tauri Release
on:
push:
tags:
- "v*"
workflow_dispatch:
permissions:
contents: write
jobs:
build-tauri:
strategy:
fail-fast: false
max-parallel: 1
matrix:
include:
- platform: "ubuntu-latest"
args: ""
- platform: "windows-latest"
args: "--target x86_64-pc-windows-msvc --no-sign"
- platform: "macos-latest"
args: "--target aarch64-apple-darwin --no-sign"
- platform: "macos-latest"
args: "--target x86_64-apple-darwin --no-sign"
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"
cache-dependency-path: "pnpm-lock.yaml"
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: |
src-tauri
- name: Install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install frontend dependencies
run: pnpm install --frozen-lockfile
- name: Build and publish Tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
with:
tagName: ${{ github.ref_name }}
releaseName: "DeepLab ${{ github.ref_name }}"
releaseBody: "Automated release build for DeepLab ${{ github.ref_name }}."
releaseDraft: true
prerelease: false
uploadUpdaterJson: true
args: ${{ matrix.args }}
verify-updater-json:
needs: build-tauri
runs-on: ubuntu-latest
steps:
- name: Fetch release latest.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
api="https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/tags/${GITHUB_REF_NAME}"
else
api="https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/latest"
fi
json_url="$(curl -fsSL \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
-H "Accept: application/vnd.github+json" \
"$api" | jq -r '.assets[] | select(.name=="latest.json") | .browser_download_url')"
test -n "$json_url"
curl -fsSL --retry 5 --retry-delay 2 "$json_url" -o latest.json
cat latest.json
- name: Validate latest.json platforms
run: |
set -euo pipefail
jq -e '.platforms["windows-x86_64"]' latest.json >/dev/null
jq -e '.platforms["darwin-aarch64"]' latest.json >/dev/null
jq -e '.platforms["darwin-x86_64"]' latest.json >/dev/null
jq -e '.platforms["linux-x86_64"]' latest.json >/dev/null
echo "latest.json contains all required platform entries"