Skip to content

Update Dependencies #1499

Update Dependencies

Update Dependencies #1499

Workflow file for this run

name: build
on:
push:
branches:
- 'master'
pull_request:
branches:
- '**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
qa:
# For QA (lint, test, etc), Linux is enough
# https://github.com/tauri-apps/tauri-action/issues/745#issuecomment-2024998604
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install native dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install UI dependencies
run: npm ci
- name: Install Playwright dependencies
run: npx playwright install chromium --with-deps
- name: 'Test: TS/JS linting & formatting'
run: 'npm run test:lint'
- name: 'Test: unit'
run: 'npm run test:unit'
- name: 'Test: E2E'
run: 'npm run test:ui'
- name: 'Test: Types'
run: 'npm run test:typings'
- name: 'Generate translations'
run: npm run gen:translations
- name: Build application
run: npm run build
- name: 'Test: Rust (+ Generate Types)'
run: npm run gen:types
# Check one of the command above did not generate any unexpected artifacts
# (like types generation)
- name: Check if git is dirty
run: |
if [[ -n $(git status --porcelain) ]];
then
echo "git is dirty, make sure you ran the gen script"
git status --porcelain
exit 1;
fi
# Documentation on environments:
# https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners
binaries:
needs: qa
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [macos-latest, windows-latest, windows-11-arm, ubuntu-24.04, 'ubuntu-24.04-arm']
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- 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 native dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf xdg-utils
- name: Install flatpak dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get install -y flatpak flatpak-builder
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install -y flathub org.gnome.Platform//48 org.gnome.Sdk//48
flatpak install flathub -y org.flatpak.Builder
- name: Install frontend dependencies
run: npm ci
- uses: tauri-apps/tauri-action@v0
env:
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_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
with:
includeUpdaterJson: false
# compile a universal binary for intel + apple sillicon
args: ${{ matrix.platform == 'macos-latest' && '--target universal-apple-darwin' || '' }}
- name: Flatpak Checks
if: startsWith(matrix.platform, 'ubuntu')
continue-on-error: true
run: |
bash scripts/flatpak.sh
- uses: actions/upload-artifact@v4
if: matrix.platform == 'ubuntu-24.04'
with:
name: binaries-linux
path: |
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.deb
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.rpm
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.AppImage
${{ github.workspace }}/release/*.flatpak
- uses: actions/upload-artifact@v4
if: matrix.platform == 'ubuntu-24.04-arm'
with:
name: binaries-linux-arm
path: |
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.deb
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.rpm
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.AppImage
${{ github.workspace }}/release/*.flatpak
- uses: actions/upload-artifact@v4
if: matrix.platform == 'macos-latest'
with:
name: binaries-macos
path: |
${{ github.workspace }}/src-tauri/target/universal-apple-darwin/release/bundle/**/*.dmg
- uses: actions/upload-artifact@v4
if: matrix.platform == 'windows-latest'
with:
name: binaries-windows
path: |
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.exe
- uses: actions/upload-artifact@v4
if: matrix.platform == 'windows-11-arm'
with:
name: binaries-windows-arm
path: |
${{ github.workspace }}/src-tauri/target/release/bundle/**/*.exe