chore(deps): bump Tauri ecosystem to 2.11 #58
Workflow file for this run
This file contains hidden or 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: CLI Smoke Test | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'src-tauri/src/bin/aeroftp_cli.rs' | |
| - 'src-tauri/src/providers/**' | |
| - 'src-tauri/Cargo.toml' | |
| - '.github/workflows/cli-smoke.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'src-tauri/src/bin/aeroftp_cli.rs' | |
| - 'src-tauri/src/providers/**' | |
| - 'src-tauri/Cargo.toml' | |
| - '.github/workflows/cli-smoke.yml' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| smoke: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| cli_bin: ./target/release/aeroftp-cli | |
| - os: macos-latest | |
| cli_bin: ./target/release/aeroftp-cli | |
| - os: windows-latest | |
| cli_bin: ./target/release/aeroftp-cli.exe | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| with: | |
| toolchain: stable | |
| - name: Rust cache | |
| uses: swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2 | |
| with: | |
| workspaces: './src-tauri -> target' | |
| - name: Install Linux dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev | |
| # Windows only: openssl-sys (vendored via ssh2) needs a Perl with the | |
| # Locale::Maketext::Simple / Params::Check modules to configure OpenSSL. | |
| # The Git-for-Windows Perl that `shell: bash` picks up is missing those | |
| # modules (BEGIN failed at Params/Check.pm). Strawberry Perl ships them, | |
| # but after `choco install` the Strawberry bin dirs only hit the PATH of | |
| # newly-spawned steps: we also have to prepend them to GITHUB_PATH so | |
| # they actually win against Git Bash's Perl on the next step's lookup. | |
| - name: Install Strawberry Perl (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| choco install strawberryperl -y --no-progress | |
| "C:\Strawberry\perl\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| "C:\Strawberry\perl\site\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| "C:\Strawberry\c\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| - name: Build CLI | |
| working-directory: src-tauri | |
| shell: bash | |
| run: | | |
| if [[ "$RUNNER_OS" == "Windows" ]]; then | |
| # Force Strawberry Perl ahead of Git-for-Windows /usr/bin/perl so | |
| # openssl-src's Configure script finds Locale::Maketext::Simple. | |
| export PATH="/c/Strawberry/perl/bin:/c/Strawberry/perl/site/bin:/c/Strawberry/c/bin:$PATH" | |
| which perl | |
| perl -e 'use Locale::Maketext::Simple; print "OK\n"' | |
| fi | |
| cargo build --release --bin aeroftp-cli | |
| - name: Version and help smoke | |
| working-directory: src-tauri | |
| shell: bash | |
| env: | |
| CLI_BIN: ${{ matrix.cli_bin }} | |
| run: | | |
| "$CLI_BIN" --version | |
| "$CLI_BIN" --help > /dev/null | |
| "$CLI_BIN" sync --help > /dev/null | |
| "$CLI_BIN" reconcile --help > /dev/null | |
| "$CLI_BIN" agent-info --json > /dev/null | |
| "$CLI_BIN" profiles --json > /dev/null || true | |
| - name: Batch parser smoke | |
| working-directory: src-tauri | |
| shell: bash | |
| env: | |
| CLI_BIN: ${{ matrix.cli_bin }} | |
| run: | | |
| cat > smoke-test.aeroftp <<'EOF' | |
| SET host = example.com | |
| ECHO Host is $host | |
| EOF | |
| "$CLI_BIN" batch smoke-test.aeroftp > /dev/null | |
| - name: Share link verify flag smoke | |
| working-directory: src-tauri | |
| shell: bash | |
| env: | |
| CLI_BIN: ${{ matrix.cli_bin }} | |
| run: | | |
| # Just confirm the --verify flag is wired into the link subcommand; | |
| # actual live probes against real providers require credentialed | |
| # profiles and run on the operator's machine, not in CI. | |
| # Capture help to a tempfile so `set -o pipefail` cannot bite us | |
| # on macOS, where `clap` writes the long form to stdout but the | |
| # tail of a piped paginator-style buffer was being dropped before | |
| # grep could see it. | |
| HELP_OUT=$(mktemp) | |
| "$CLI_BIN" link --help > "$HELP_OUT" 2>&1 | |
| if ! grep -q -- '--verify' "$HELP_OUT"; then | |
| echo "::error::aeroftp link is missing --verify flag" | |
| echo "--- link --help dump (last 30 lines) ---" | |
| tail -30 "$HELP_OUT" | |
| echo "--- end ---" | |
| exit 1 | |
| fi | |
| - name: Shell completions smoke | |
| working-directory: src-tauri | |
| shell: bash | |
| env: | |
| CLI_BIN: ${{ matrix.cli_bin }} | |
| run: | | |
| "$CLI_BIN" completions bash > /dev/null | |
| "$CLI_BIN" completions zsh > /dev/null | |
| "$CLI_BIN" completions fish > /dev/null | |
| coverage: | |
| runs-on: ubuntu-latest | |
| needs: smoke | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| with: | |
| toolchain: stable | |
| - name: Rust cache | |
| uses: swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2 | |
| with: | |
| workspaces: './src-tauri -> target' | |
| - name: Install Linux dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev | |
| - name: Install cargo-llvm-cov | |
| uses: taiki-e/install-action@9baf7c20ae8e70a5220bd48d08870afb205ab1ed # cargo-llvm-cov | |
| - name: Generate coverage | |
| working-directory: src-tauri | |
| shell: bash | |
| # Baseline at T8 Fase A (2026-04-21): 11.73% lines, 9.59% functions. | |
| # Gate is set below baseline so CI passes today; raise per T8 Fase B/C/D | |
| # as new tests land. Target after Fase C (16 zero-coverage providers): 25%. | |
| run: | | |
| cargo llvm-cov --no-report --all-targets | |
| cargo llvm-cov report --lcov --output-path lcov.info | |
| cargo llvm-cov report --summary-only --fail-under-lines 10 | tee coverage-summary.txt | |
| - name: Upload coverage artifacts | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: coverage-linux | |
| path: | | |
| src-tauri/lcov.info | |
| src-tauri/coverage-summary.txt | |
| - name: Upload to Codecov | |
| uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6 | |
| with: | |
| files: src-tauri/lcov.info | |
| fail_ci_if_error: false |