fix: handle deleting files from smb shares #673
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@v3 | |
| 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 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@v3 | |
| 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 |