fix: detect git changes when no commit in repository (#2872) #3267
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
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
name: CI | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
jobs: | |
build: | |
name: Rust on ${{ matrix.os }} (${{ join(matrix.features, ',') }}) | |
if: github.event.pull_request.draft == false | |
needs: [fmt, clippy] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest ] | |
include: | |
- os: windows-latest | |
features: [] | |
- os: windows-latest | |
features: | |
- lapce-app/portable | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Install dependencies on Ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
run: sudo apt-get update && sudo apt-get install clang libxkbcommon-x11-dev pkg-config libvulkan-dev libgtk-3-dev libwayland-dev xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev | |
- name: Update toolchain & add llvm-tools | |
run: | | |
rustup update | |
rustup component add llvm-tools-preview | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Fetch dependencies | |
run: cargo fetch --locked | |
- name: Build | |
if: ${{ join(matrix.features, ',') == '' }} | |
run: cargo build --frozen | |
- name: Build | |
if: ${{ join(matrix.features, ',') != '' }} | |
run: cargo build --frozen --features ${{ join(matrix.features, ',') }} | |
- name: Free space | |
if: startsWith(matrix.os, 'windows') | |
run: cargo clean | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Run tests and coverage | |
if: ${{ toJSON(matrix.features) == '[]' }} | |
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info | |
- name: Run doc tests | |
run: cargo test --doc --workspace | |
- name: Upload coverage | |
uses: codecov/codecov-action@v3 | |
with: | |
files: lcov.info | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Update toolchain & add rustfmt | |
run: | | |
rustup update | |
rustup component add rustfmt | |
- name: Run rustfmt | |
run: cargo fmt --all --check | |
clippy: | |
name: Clippy on ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Update toolchain & add clippy | |
run: | | |
rustup update | |
rustup component add clippy | |
- name: Install dependencies on Ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
run: sudo apt-get update && sudo apt-get install clang libxkbcommon-x11-dev pkg-config libvulkan-dev libwayland-dev xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Fetch dependencies | |
run: cargo fetch --locked | |
- name: Run clippy | |
run: cargo clippy -- -D warnings |