Skip to content

Workflow file for this run

name: "Pack - Tauri App"
env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "true"
on:
push:
branches:
- "feat/pack-tauriapp-workflow"
pull_request:
branches:
- main
paths:
- ".github/workflows/pack-tauri.yml"
jobs:
tauri:
defaults:
run:
working-directory: ./src
strategy:
fail-fast: false
matrix:
include:
#- platform: "macos-latest" # for Arm based macs (M1 and above).
# args: "--target aarch64-apple-darwi -c src-tauri/tauri.conf.mac-arm64.json5n"
#- platform: "macos-latest" # for Intel based macs.
# args: "--target x86_64-apple-darwin -c src-tauri/tauri.conf.mac-x64.json5"
- platform: "ubuntu-22.04" # for Tauri v1 you could replace this with ubuntu-20.04.
#args: "-c src-tauri/tauri.conf.linux-x64.json5"
args: ""
#- platform: "windows-latest"
# args: "-c src-tauri/tauri.conf.win-x64.json5"
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: 🧲 setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: 🧲 setup .NET 7
uses: actions/[email protected]
with:
dotnet-version: 7.0.x
- name: setup 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-22.04' # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
# sudo apt-get install -y libwebkit2gtk-4.0-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: dotnet restore
run: dotnet restore
- name: install frontend dependencies (SPA)
working-directory: "src/Apps/NetPad.Apps.App/App"
run: npm install
- name: install frontend dependencies (Tauri)
working-directory: "src/Apps/NetPad.Apps.Shells.Tauri/TauriApp"
run: npm install
# If tagName and releaseId are omitted tauri-action will only build the app and won't try to upload any assets.
- name: build Tauri app
uses: tauri-apps/tauri-action@v0
id: tauri
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: ${{ matrix.args }}
projectPath: "src/Apps/NetPad.Apps.Shells.Tauri/TauriApp"
tauriScript: "npx tauri"
# - name: List build files
# working-directory: "src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target"
# run: |
# if [ "$RUNNER_OS" == "Linux" ]; then
# find -follow
# elif [ "$RUNNER_OS" == "Windows" ]; then
# dir /s /b /o:gn
# else
# find -L
# fi
# shell: bash
- name: 'Process Artifact Paths'
id: process_artifacts
run: |
echo '${{ steps.tauri.outputs.artifactPaths }}' | jq -r '.[]'
shell: bash
- name: 'Upload Bundled Packages'
uses: actions/upload-artifact@v4
with:
name: netpad_0.8.0.bundles
path: ${{join(steps.process_artifacts.outputs.*, '\n')}}
retention-days: 1
if-no-files-found: warn
- name: 'Upload Standalone Package'
uses: actions/upload-artifact@v4
with:
name: netpad_0.8.0.standalone
path: |
src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/NetPad\ vNext
src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/resources
retention-days: 1
if-no-files-found: warn
#src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/bundle/deb/NetPad\ vNext_0.8.0_amd64.deb
#src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/bundle/appimage/NetPad\ vNext_0.8.0_amd64.AppImage
#src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/bundle/rpm/NetPad\ vNext-0.8.0-1.x86_64.rpm
# tauri action returns this, use it in upload artifact
#/home/runner/work/NetPad/NetPad/src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/bundle/deb/NetPad vNext_0.8.0_amd64.deb
#/home/runner/work/NetPad/NetPad/src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/bundle/rpm/NetPad vNext-0.8.0-1.x86_64.rpm
#/home/runner/work/NetPad/NetPad/src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/target/release/bundle/appimage/NetPad vNext_0.8.0_amd64.AppImage