mirror of
https://github.com/Llewellynvdm/starship.git
synced 2024-11-16 10:05:13 +00:00
566d95d81b
* ci: Add jobs for `cargo check` with all features and no features Augmenting #3435: These jobs will check that compilation still succeeds when no features are selected and with all features selected. So when in the future new features are added, these quick checks can prevent miss-compilation for users that like to tweak with feature sets. * (fixup) More descriptive job names * ci: Make the new `cargo_check_*` jobs depend on `cargo_check`
170 lines
4.4 KiB
YAML
170 lines
4.4 KiB
YAML
name: Main workflow
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "**.md"
|
|
pull_request:
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "**.md"
|
|
|
|
jobs:
|
|
# Run the `rustfmt` code formatter
|
|
rustfmt:
|
|
name: Rustfmt [Formatter]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup | Checkout
|
|
uses: actions/checkout@v2.4.0
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
components: rustfmt
|
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
- name: Build | Format
|
|
run: cargo fmt --all -- --check
|
|
|
|
# Run the `clippy` linting tool
|
|
clippy:
|
|
name: Clippy [Linter]
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Setup | Checkout
|
|
uses: actions/checkout@v2.4.0
|
|
|
|
- name: Setup | Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
components: clippy
|
|
|
|
- name: Build | Lint
|
|
uses: actions-rs/cargo@v1.0.3
|
|
with:
|
|
command: clippy
|
|
args: --workspace --locked --all-targets --all-features -- -D clippy::all
|
|
|
|
# Ensure that the project could be successfully compiled
|
|
cargo_check:
|
|
name: Compile
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup | Checkout
|
|
uses: actions/checkout@v2.4.0
|
|
|
|
- name: Setup | Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build | Check
|
|
run: cargo check --workspace --locked
|
|
|
|
# Ensure that the project could be successfully compiled with no features enabled
|
|
cargo_check_no_features:
|
|
name: Compile with no features enabled
|
|
needs: cargo_check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup | Checkout
|
|
uses: actions/checkout@v2.4.0
|
|
|
|
- name: Setup | Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build | Check
|
|
run: cargo check --workspace --locked --no-default-features
|
|
|
|
# Ensure that the project could be successfully compiled with all features enabled
|
|
cargo_check_all_features:
|
|
name: Compile with all features enabled
|
|
needs: cargo_check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup | Checkout
|
|
uses: actions/checkout@v2.4.0
|
|
|
|
- name: Setup | Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build | Check
|
|
run: cargo check --workspace --locked --all-features
|
|
|
|
# Run tests on Linux, macOS, and Windows
|
|
# On both Rust stable and Rust nightly
|
|
test:
|
|
name: Test Suite
|
|
runs-on: ${{ matrix.os }}
|
|
needs: cargo_check # First check then run expansive tests
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
rust: [stable, nightly]
|
|
steps:
|
|
- name: Setup | Checkout
|
|
uses: actions/checkout@v2.4.0
|
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
- name: Setup | Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
# Install all the required dependencies for testing
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1.0.7
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
profile: minimal
|
|
override: true
|
|
|
|
# Install Mercurial (pre-installed on Linux and windows)
|
|
- name: Setup | Mercurial (macos)
|
|
if: matrix.os == 'macOS-latest'
|
|
run: brew install mercurial
|
|
|
|
# Run the ignored tests that expect the above setup
|
|
- name: Build | Test
|
|
run: cargo test --workspace --locked --all-features -- -Z unstable-options --include-ignored
|