chore: sync version to v0.1.23 #759
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: Check | |
| on: | |
| push: | |
| branches: ['main', 'master'] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint-typecheck-rust: | |
| runs-on: [self-hosted, medium] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup persistent cargo target dir | |
| run: | | |
| # Use persistent target dir outside workspace so it survives between different repo checkouts | |
| echo "CARGO_TARGET_DIR=$HOME/.cache/cargo-target/marlin-check" >> $GITHUB_ENV | |
| mkdir -p "$HOME/.cache/cargo-target/marlin-check" | |
| - name: Detect files requiring checks | |
| id: changes | |
| uses: dorny/paths-filter@v4 | |
| with: | |
| filters: | | |
| check: | |
| - 'package.json' | |
| - 'package-lock.json' | |
| - 'tsconfig.json' | |
| - 'tsconfig.node.json' | |
| - 'eslint.config.cjs' | |
| - 'vite.config.ts' | |
| - 'vitest.config.ts' | |
| - 'scripts/**' | |
| - 'src/**' | |
| - 'src-tauri/**' | |
| - '.github/workflows/check.yml' | |
| - name: Skip checks | |
| if: steps.changes.outputs.check != 'true' | |
| run: echo "No relevant changes detected. Skipping lint/typecheck/rust checks." | |
| - name: Install Rust toolchain | |
| if: steps.changes.outputs.check == 'true' | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install system dependencies (Ubuntu) | |
| if: runner.os == 'Linux' && steps.changes.outputs.check == 'true' | |
| run: | | |
| apt_retry() { | |
| for attempt in 1 2 3 4 5 6 7 8 9 10 11 12; do | |
| if sudo DEBIAN_FRONTEND=noninteractive apt-get "$@"; then | |
| return 0 | |
| fi | |
| echo "apt-get $* failed on attempt $attempt; retrying in 10s..." >&2 | |
| sleep 10 | |
| done | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get "$@" | |
| } | |
| apt_retry update | |
| apt_retry install -y \ | |
| build-essential \ | |
| clang \ | |
| curl \ | |
| wget \ | |
| file \ | |
| xdg-utils \ | |
| libssl-dev \ | |
| libclang-dev \ | |
| libgtk-3-dev \ | |
| libayatana-appindicator3-dev \ | |
| librsvg2-dev \ | |
| pkg-config \ | |
| patchelf \ | |
| libglib2.0-bin \ | |
| libgdk-pixbuf2.0-bin \ | |
| desktop-file-utils \ | |
| shared-mime-info \ | |
| gperf | |
| apt_retry install -y libwebkit2gtk-4.1-dev || apt_retry install -y libwebkit2gtk-4.0-dev | |
| - name: Install dependencies | |
| if: steps.changes.outputs.check == 'true' | |
| run: npm ci | |
| - name: Create SMB sidecar placeholders | |
| if: steps.changes.outputs.check == 'true' | |
| run: | | |
| # Create placeholder files for all platforms to satisfy tauri-build | |
| # These are overwritten with real binaries during release builds | |
| mkdir -p src-tauri/binaries | |
| touch src-tauri/binaries/marlin-smb-x86_64-unknown-linux-gnu | |
| touch src-tauri/binaries/marlin-smb-aarch64-unknown-linux-gnu | |
| touch src-tauri/binaries/marlin-smb-x86_64-apple-darwin | |
| touch src-tauri/binaries/marlin-smb-aarch64-apple-darwin | |
| - name: Run checks | |
| if: steps.changes.outputs.check == 'true' | |
| run: npm run check | |
| e2e-tests: | |
| runs-on: [self-hosted, medium] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Detect files requiring e2e tests | |
| id: changes | |
| uses: dorny/paths-filter@v4 | |
| with: | |
| filters: | | |
| e2e: | |
| - 'src/**' | |
| - 'e2e/**' | |
| - 'playwright.config.ts' | |
| - 'package.json' | |
| - '.github/workflows/check.yml' | |
| - name: Skip e2e tests | |
| if: steps.changes.outputs.e2e != 'true' | |
| run: echo "No relevant changes detected. Skipping e2e tests." | |
| - name: Install dependencies | |
| if: steps.changes.outputs.e2e == 'true' | |
| run: npm ci | |
| - name: Install Playwright browsers | |
| if: steps.changes.outputs.e2e == 'true' | |
| run: npx playwright install chromium | |
| - name: Run e2e tests | |
| if: steps.changes.outputs.e2e == 'true' | |
| run: npm run test:e2e | |
| - name: Upload test results | |
| if: failure() && steps.changes.outputs.e2e == 'true' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: playwright-report | |
| path: playwright-report/ | |
| retention-days: 7 |