Repository navigation
ci(release): integrate VirusTotal API for file scanning #30
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| frontend: | |
| name: Frontend | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - run: npm ci --prefix frontend | |
| - run: npm --prefix frontend run check | |
| - name: Translations are complete | |
| run: node scripts/i18n-check.mjs | |
| - run: npm --prefix frontend run build | |
| rust: | |
| name: Rust (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-24.04, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Linux dependencies | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src-tauri -> target | |
| cache-on-failure: true | |
| - name: Placeholder frontend build | |
| shell: bash | |
| run: mkdir -p frontend/dist && echo '<!doctype html>' > frontend/dist/index.html | |
| - name: Generate the Firefox extension build | |
| run: node scripts/extension-builds.mjs | |
| - name: Format | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: cargo fmt --manifest-path src-tauri/Cargo.toml --check | |
| - name: Clippy | |
| run: cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets | |
| - name: Tests | |
| run: cargo test --manifest-path src-tauri/Cargo.toml | |
| extension: | |
| name: Browser extension | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: for f in extension/*.js; do node --check "$f"; done | |
| - run: node scripts/package-extension.mjs |