Merge branch 'main' into feat/launch-parameters #3425
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |