Skip to content

linux build

linux build #28

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:
create-release:
permissions:
contents: write
runs-on: ubuntu-latest
outputs:
release_id: ${{ steps.create-release.outputs.result }}
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('./src/Apps/NetPad.Apps.Shells.Tauri/TauriApp/src-tauri/tauri.conf.json5').version")" >> $GITHUB_ENV
- name: create release
id: create-release
uses: actions/github-script@v6
with:
script: |
const { data } = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `app-v${process.env.PACKAGE_VERSION}`,
name: `NetPad vNext v${process.env.PACKAGE_VERSION}`,
body: 'Take a look at the assets to download and install this app.',
draft: true,
prerelease: false
})
return data.id
build-tauri:
needs: create-release
defaults:
run:
working-directory: ./src
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
args: "--target aarch64-apple-darwin -c src-tauri/tauri.conf.mac-arm64.json5"
#- 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"
args: "--verbose -c src-tauri/tauri.conf.linux-x64.json5"
- 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 8
uses: actions/[email protected]
with:
dotnet-version: 8.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
- 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"
releaseId: ${{ needs.create-release.outputs.release_id }}
# - 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: |
# VAL=${{ steps.tauri.outputs.artifactPaths }}' | jq -r '.[]'
# echo "paths=$VAL" >> "$GITHUB_OUTPUT"
# shell: bash
#
# - name: 'Upload Bundled Packages'
# uses: actions/upload-artifact@v4
# with:
# name: netpad_0.8.0.bundles
# path: ${{ steps.process_artifacts.outputs.paths }}
# 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