Skip to content

Merge branch 'main' into feat/launch-parameters #3425

Merge branch 'main' into feat/launch-parameters

Merge branch 'main' into feat/launch-parameters #3425

Workflow file for this run

name: "test-on-push"
on: [push, pull_request]
jobs:
# Ensure version numbers in various places match up
ensure-same-version:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: install dependencies
run: |
pip install toml
- name: Run check
run: |
python3 scripts/check_version_numbers.py
# Ensure correct Rust code formatting
formatting:
name: format-check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt
- name: Format check
run: cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check
clippy:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-22.04, windows-latest]
name: clippy-check
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: clippy
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
- name: Create dist folder (Ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: mkdir --parent src-vue/dist
- name: Create dist folder (Windows only)
if: matrix.platform == 'windows-latest'
run: New-Item -ItemType Directory -Force -Path "src-vue\dist"
- name: Run clippy
run: cargo clippy --manifest-path src-tauri/Cargo.toml -- --no-deps --deny warnings
# Ensure committed bindings correct
autogen-ts-bindings-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: install dependencies (ubuntu only)
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
- name: Move original TypeScript bindings
run: |
cp -r src-tauri/bindings original-bindings
rm -r src-tauri/bindings
- name: Create empty dist folder # Otherwise tests fail
run: mkdir src-vue/dist
- name: Run Tests
run: cargo test --manifest-path src-tauri/Cargo.toml
- name: Compare TypeScript Bindings
run: |
diff -r src-tauri/bindings original-bindings
if [[ $? -ne 0 ]]; then
echo "Generated bindings are different from committed bindings"
exit 1
fi
test-tauri:
needs: ensure-same-version
strategy:
fail-fast: false
matrix:
platform: [ubuntu-22.04, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
- name: Disable self-updater
shell: bash
run: |
jq '.tauri.updater.active = false' src-tauri/tauri.conf.json > src-tauri/tauri.conf.json.new
rm src-tauri/tauri.conf.json
mv src-tauri/tauri.conf.json.new src-tauri/tauri.conf.json
- uses: Swatinem/rust-cache@v2 # Cache Rust build artifacts
with:
workspaces: |
src-tauri
- name: install app dependencies and build it
env:
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
run: |
npm clean-install
cd src-vue && npm clean-install && cd ..
npm run tauri build
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
- name: Upload Linux artifact
if: matrix.platform == 'ubuntu-22.04'
uses: actions/upload-artifact@v3
with:
name: linux-artifacts
path: |
src-tauri/target/release/bundle/appimage/*
- name: Upload Linux AppImage
if: matrix.platform == 'ubuntu-22.04'
uses: actions/upload-artifact@v3
with:
name: linux-appimage
path: |
src-tauri/target/release/bundle/appimage/*.AppImage
- name: Upload Windows artifact
if: matrix.platform == 'windows-latest'
uses: actions/upload-artifact@v3
with:
name: windows-artifacts
path: |
src-tauri/target/release/bundle/msi/*
src-tauri/target/release/app.pdb
- name: Additionally upload Windows installer separately
if: matrix.platform == 'windows-latest'
uses: actions/upload-artifact@v3
with:
name: windows-msi
path: |
src-tauri/target/release/bundle/msi/*.msi