Skip to content

update tauri-publish.yaml #7

update tauri-publish.yaml

update tauri-publish.yaml #7

Workflow file for this run

name: 'Publish Release (Tauri + Server + Static)'
on:
push:
branches:
- release
env:
VITE_SERVER_URLS: Local files:localhost:16800:0,Default server:pi.thissma.fr:16900:1
jobs:
build-all:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
args: "--target aarch64-apple-darwin"
name: "macos-aarch64"
- platform: "macos-latest" # for Intel based macs.
args: "--target x86_64-apple-darwin"
name: "macos-x64"
- platform: "ubuntu-latest" # for Tauri v1 you could replace this with ubuntu-20.04.
args: ""
name: "linux-ubuntu"
- platform: "twwe-server-windows-latest"
args: ""
name: "windows-x64"
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: get version
run: echo "PACKAGE_VERSION=$(node -p "require('./client/package.json').version")" >> $GITHUB_ENV
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
# webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2.
# You can remove the one that doesn't apply to your app to speed up the workflow a bit.
- name: install frontend dependencies
run: cd client && npm install # change this to npm or pnpm depending on which one you use
- name: build tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: app-v${{ env.PACKAGE_VERSION }}
releaseName: TWWE v${{ env.PACKAGE_VERSION }}
releaseBody: See the assets to download this version and install.
releaseDraft: true
prerelease: false
projectPath: desktop
- name: build server
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --manifest_path server/Cargo.toml --verbose --release ${{ matrix.args }}
- name: build static site
run: cd client && npm run build
- name: build archive
shell: bash
env:
dirname: twwe-server_v${{ env.PACKAGE_VERSION }}_${{ matrix.name }}
run: |
mkdir "$dirname"
if [ "${{ matrix.os }}" = "windows-latest" ]; then
mv "server/target/${{ matrix.target }}/release/twwe-server.exe" "$dirname"
else
mv "server/target/${{ matrix.target }}/release/twwe-server" "$dirname"
fi
mv "client/dist" "$dirname/static"
if [ "${{ matrix.os }}" = "windows-latest" ]; then
7z a "$dirname.zip" "$dirname"
echo "ASSET=$dirname.zip" >> $GITHUB_ENV
else
tar -czf "$dirname.tar.gz" "$dirname"
echo "ASSET=$dirname.tar.gz" >> $GITHUB_ENV
fi
- name: upload server to release
uses: actions/github-script@v6
env:
tag: app-v${{ env.PACKAGE_VERSION }}
file: ${{ env.ASSET }}
with:
script: |
gh release upload $tag $file