Files
2025-11-14 10:34:59 +00:00

71 lines
2.0 KiB
YAML

name: CI
on:
pull_request:
push:
branches:
- main
tags:
- "*"
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
cancel-in-progress: true
jobs:
test:
name: Test
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
run_on: macos-latest
- target: x86_64-linux-gnu
run_on: ubuntu-latest
- target: x86_64-windows-msvc
run_on: windows-latest
runs-on: ${{ matrix.run_on }}
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
- name: Install system dependencies
if: ${{ matrix.run_on != 'windows-latest' }}
run: script/bootstrap
- name: Machete
if: ${{ matrix.run_on == 'macos-latest' }}
uses: bnjbvr/cargo-machete@v0.9.1
- name: Setup | Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: test-cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
- name: Typo check
if: ${{ matrix.run_on == 'macos-latest' }}
run: |
cargo install typos-cli || echo "typos-cli already installed"
typos
- name: Lint
if: ${{ matrix.run_on == 'macos-latest' }}
run: |
cargo clippy -- --deny warnings
- name: Test Linux
if: ${{ matrix.run_on == 'ubuntu-latest' }}
run: |
cargo test --all
- name: Test Windows
if: ${{ matrix.run_on == 'windows-latest' }}
run: |
cargo test --all
- name: Test MacOS
if: ${{ matrix.run_on == 'macos-latest' }}
run: |
cargo test --all
cargo test -p gpui-component --doc