mirror of
https://github.com/starship/starship.git
synced 2024-11-29 19:53:38 +01:00
6717d40b95
Now that the uom dependency has been updated and compiles on the nightly version of rust we can enable the builds again in the build matrix.
148 lines
3.8 KiB
YAML
148 lines
3.8 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
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1
|
|
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
|
|
|
|
# Cache files between builds
|
|
# - name: Setup | Cache Cargo
|
|
# uses: actions/cache@v2
|
|
# with:
|
|
# path: |
|
|
# ~/.cargo/registry
|
|
# ~/.cargo/git
|
|
# target
|
|
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- 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
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
components: clippy
|
|
|
|
- name: Build | Lint
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: --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
|
|
|
|
# Cache files between builds
|
|
# - name: Setup | Cache Cargo
|
|
# uses: actions/cache@v2
|
|
# with:
|
|
# path: |
|
|
# ~/.cargo/registry
|
|
# ~/.cargo/git
|
|
# target
|
|
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build | Check
|
|
run: cargo check --all
|
|
|
|
# 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
|
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
# Cache files between builds
|
|
# - name: Setup | Cache Cargo
|
|
# uses: actions/cache@v2
|
|
# with:
|
|
# path: |
|
|
# ~/.cargo/registry
|
|
# ~/.cargo/git
|
|
# target
|
|
# key: ${{ runner.os }}-${{ matrix.rust }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
# Install all the required dependencies for testing
|
|
- name: Setup | Rust
|
|
uses: actions-rs/toolchain@v1
|
|
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: pip3 install mercurial
|
|
|
|
# Run the ignored tests that expect the above setup
|
|
- name: Build | Test
|
|
run: cargo test --all-features -- -Z unstable-options --include-ignored
|