Merge branch 'main' into Isratja45-patch-3 #6
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: CI | ||
on: | ||
pull_request: | ||
merge_group: | ||
env: | ||
SPACEDRIVE_CUSTOM_APT_FLAGS: --no-install-recommends | ||
# Cancel previous runs of the same workflow on the same branch. | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
jobs: | ||
typescript: | ||
name: TypeScript | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- name: Setup Node.js, pnpm and dependencies | ||
uses: ./.github/actions/setup-pnpm | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Perform typechecks | ||
run: pnpm typecheck | ||
eslint: | ||
name: ESLint | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- name: Setup Node.js, pnpm and dependencies | ||
uses: ./.github/actions/setup-pnpm | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Perform linting | ||
run: pnpm lint | ||
rustfmt: | ||
name: Rust Formatting | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- uses: dorny/paths-filter@v2 | ||
id: filter | ||
with: | ||
filters: | | ||
changes: | ||
- 'apps/cli/*/**' | ||
- 'apps/desktop/crates/*/**' | ||
- 'apps/desktop/src-tauri/*/**' | ||
- 'apps/mobile/crates/*/**' | ||
- 'apps/server/*/**' | ||
- 'core/**' | ||
- 'crates/*/**' | ||
- 'extensions/*/**' | ||
- 'Cargo.toml' | ||
- 'Cargo.lock' | ||
- name: Setup Rust and Prisma | ||
if: steps.filter.outputs.changes == 'true' | ||
uses: ./.github/actions/setup-rust | ||
- name: Run rustfmt | ||
if: steps.filter.outputs.changes == 'true' | ||
run: cargo fmt --all -- --check | ||
clippy: | ||
name: Clippy (${{ matrix.platform }}) | ||
runs-on: ${{ matrix.platform }} | ||
strategy: | ||
matrix: | ||
platform: [ubuntu-20.04, macos-latest, windows-latest] | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- uses: dorny/paths-filter@v2 | ||
id: filter | ||
with: | ||
filters: | | ||
changes: | ||
- 'apps/cli/*/**' | ||
- 'apps/desktop/crates/*/**' | ||
- 'apps/desktop/src-tauri/*/**' | ||
- 'apps/mobile/crates/*/**' | ||
- 'apps/server/*/**' | ||
- 'core/**' | ||
- 'crates/*/**' | ||
- 'extensions/*/**' | ||
- 'Cargo.toml' | ||
- 'Cargo.lock' | ||
- name: Setup System and Rust | ||
if: steps.filter.outputs.changes == 'true' | ||
uses: ./.github/actions/setup-system | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Run Clippy | ||
if: steps.filter.outputs.changes == 'true' | ||
uses: actions-rs/clippy-check@v1 | ||
with: | ||
args: --workspace --all-features | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
test: | ||
name: Test (${{ matrix.platform }}) | ||
runs-on: ${{ matrix.platform }} | ||
strategy: | ||
matrix: | ||
platform: [ubuntu-20.04, macos-latest, windows-latest] | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- name: Setup | ||
uses: ./.github/actions/setup | ||
- name: Test | ||
run: cargo test --workspace --all-features | ||