2020-08-03 02:06:46 +02:00
|
|
|
---
|
2019-10-05 11:29:13 +02:00
|
|
|
name: Main workflow
|
2019-10-10 09:12:45 +02:00
|
|
|
on:
|
|
|
|
push:
|
|
|
|
paths-ignore:
|
|
|
|
- "docs/**"
|
2019-10-14 17:34:26 +02:00
|
|
|
- "**.md"
|
2019-10-15 17:32:41 +02:00
|
|
|
pull_request:
|
|
|
|
paths-ignore:
|
|
|
|
- "docs/**"
|
|
|
|
- "**.md"
|
2019-10-10 09:12:45 +02:00
|
|
|
|
2019-10-04 08:12:48 +02:00
|
|
|
jobs:
|
|
|
|
# Run the `rustfmt` code formatter
|
|
|
|
rustfmt:
|
|
|
|
name: Rustfmt [Formatter]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Checkout
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- name: Setup | Rust
|
2020-07-08 17:53:03 +02:00
|
|
|
uses: actions-rs/toolchain@v1
|
2019-10-04 08:12:48 +02:00
|
|
|
with:
|
2020-07-08 17:53:03 +02:00
|
|
|
toolchain: stable
|
|
|
|
override: true
|
|
|
|
profile: minimal
|
2019-10-20 16:19:40 +02:00
|
|
|
components: rustfmt
|
2020-07-07 18:28:37 +02:00
|
|
|
|
2020-08-11 18:44:25 +02:00
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Build | Format
|
|
|
|
run: cargo fmt --all -- --check
|
2019-10-04 08:12:48 +02:00
|
|
|
|
|
|
|
# Run the `clippy` linting tool
|
|
|
|
clippy:
|
|
|
|
name: Clippy [Linter]
|
2020-08-03 02:06:46 +02:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
|
|
runs-on: ${{ matrix.os }}
|
2019-10-04 08:12:48 +02:00
|
|
|
steps:
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Checkout
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
# Cache files between builds
|
2020-10-13 21:58:36 +02:00
|
|
|
# - name: Setup | Cache Cargo
|
|
|
|
# uses: actions/cache@v2
|
|
|
|
# with:
|
|
|
|
# path: |
|
|
|
|
# ~/.cargo/registry
|
|
|
|
# ~/.cargo/git
|
|
|
|
# target
|
|
|
|
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
2020-07-07 18:28:37 +02:00
|
|
|
|
2020-08-11 18:44:25 +02:00
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
|
|
if: matrix.os == 'ubuntu-latest'
|
|
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Rust
|
2020-07-08 17:53:03 +02:00
|
|
|
uses: actions-rs/toolchain@v1
|
2019-10-04 08:12:48 +02:00
|
|
|
with:
|
2020-07-08 17:53:03 +02:00
|
|
|
toolchain: stable
|
|
|
|
override: true
|
|
|
|
profile: minimal
|
2020-07-07 18:28:37 +02:00
|
|
|
components: clippy
|
|
|
|
|
|
|
|
- name: Build | Lint
|
2020-07-08 17:53:03 +02:00
|
|
|
uses: actions-rs/cargo@v1
|
|
|
|
with:
|
|
|
|
command: clippy
|
|
|
|
args: --all-targets --all-features -- -D clippy::all
|
2019-10-04 08:12:48 +02:00
|
|
|
|
|
|
|
# Ensure that the project could be successfully compiled
|
|
|
|
cargo_check:
|
|
|
|
name: Compile
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Checkout
|
|
|
|
uses: actions/checkout@v2
|
2020-05-25 02:45:47 +02:00
|
|
|
|
2020-07-07 18:28:37 +02:00
|
|
|
# Cache files between builds
|
2020-10-13 21:58:36 +02:00
|
|
|
# - name: Setup | Cache Cargo
|
|
|
|
# uses: actions/cache@v2
|
|
|
|
# with:
|
|
|
|
# path: |
|
|
|
|
# ~/.cargo/registry
|
|
|
|
# ~/.cargo/git
|
|
|
|
# target
|
|
|
|
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
2020-05-25 02:45:47 +02:00
|
|
|
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Rust
|
2020-07-08 17:53:03 +02:00
|
|
|
uses: actions-rs/toolchain@v1
|
2019-10-04 08:12:48 +02:00
|
|
|
with:
|
2020-07-08 17:53:03 +02:00
|
|
|
toolchain: stable
|
|
|
|
profile: minimal
|
|
|
|
override: true
|
2020-07-07 18:28:37 +02:00
|
|
|
|
|
|
|
- name: Build | Check
|
|
|
|
run: cargo check --all
|
2019-10-04 08:12:48 +02:00
|
|
|
|
2019-10-15 17:10:16 +02:00
|
|
|
# Run tests on Linux, macOS, and Windows
|
2019-10-04 08:12:48 +02:00
|
|
|
# On both Rust stable and Rust nightly
|
|
|
|
test:
|
|
|
|
name: Test Suite
|
|
|
|
runs-on: ${{ matrix.os }}
|
2020-07-07 18:28:37 +02:00
|
|
|
needs: cargo_check # First check then run expansive tests
|
2019-10-04 08:12:48 +02:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2019-10-15 17:10:16 +02:00
|
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
2020-10-21 09:17:54 +02:00
|
|
|
rust: [stable, nightly]
|
2019-10-04 08:12:48 +02:00
|
|
|
steps:
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Checkout
|
|
|
|
uses: actions/checkout@v2
|
2019-10-04 08:12:48 +02:00
|
|
|
|
2020-08-11 18:44:25 +02:00
|
|
|
- name: Setup | libdbus (ubuntu)
|
|
|
|
if: matrix.os == 'ubuntu-latest'
|
|
|
|
run: sudo apt-get install libdbus-1-dev
|
|
|
|
|
|
|
|
# Cache files between builds
|
2020-10-13 21:58:36 +02:00
|
|
|
# - name: Setup | Cache Cargo
|
|
|
|
# uses: actions/cache@v2
|
|
|
|
# with:
|
|
|
|
# path: |
|
|
|
|
# ~/.cargo/registry
|
|
|
|
# ~/.cargo/git
|
|
|
|
# target
|
|
|
|
# key: ${{ runner.os }}-${{ matrix.rust }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
2020-01-18 02:43:29 +01:00
|
|
|
|
2019-10-04 08:12:48 +02:00
|
|
|
# Install all the required dependencies for testing
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Rust
|
2020-07-08 17:53:03 +02:00
|
|
|
uses: actions-rs/toolchain@v1
|
2019-10-04 08:12:48 +02:00
|
|
|
with:
|
2020-07-08 17:53:03 +02:00
|
|
|
toolchain: ${{ matrix.rust }}
|
|
|
|
profile: minimal
|
|
|
|
override: true
|
2019-10-04 08:12:48 +02:00
|
|
|
|
2020-01-18 02:43:29 +01:00
|
|
|
# Install Mercurial (pre-installed on Linux and windows)
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Setup | Mercurial (macos)
|
2019-12-02 23:37:18 +01:00
|
|
|
if: matrix.os == 'macOS-latest'
|
2020-07-07 18:28:37 +02:00
|
|
|
run: pip3 install mercurial
|
2019-12-13 20:22:38 +01:00
|
|
|
|
2019-10-04 08:12:48 +02:00
|
|
|
# Run the ignored tests that expect the above setup
|
2020-07-07 18:28:37 +02:00
|
|
|
- name: Build | Test
|
2020-08-11 18:44:25 +02:00
|
|
|
run: cargo test --all-features -- -Z unstable-options --include-ignored
|