Files
bottom/.github/workflows/ci.yml
T
Clement Tsang 7392b56364 ci: reduce the number of tests in CI (#540)
Seems like we have a few too many tests that aren't really needed for just asserting CI is passing.

The goal for CI (IMO) is just to ensure things still build on the various supported platforms after changes are made.  However, there were a few tested scenarios like Windows GNU or musl which I feel weren't really too important in this regard, and added extra time to an already long CI process.

Commented out the following tests since there aren't any architecture-specific features that require running these in addition to other already-existing tests:
- Windows GNU
- Linux musl (both x86 and x86_64)

Of course, should we add changes that directly affect these architectures, then we should add the tests back.
2021-07-12 23:02:48 -04:00

206 lines
5.2 KiB
YAML

# Main CI pipeline to validate PRs.
#
# CI pipeline based on:
# - https://github.com/heim-rs/heim/blob/master/.github/workflows/ci.yml
# - https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/ci.yml
name: ci
on:
workflow_dispatch:
pull_request:
paths-ignore:
- 'README.md'
- 'docs/**'
- '.github/ISSUE_TEMPLATE/**'
push:
branches:
- master
paths-ignore:
- 'README.md'
- 'docs/**'
- '.github/ISSUE_TEMPLATE/**'
- 'CHANGELOG.md'
- 'CONTRIBUTING.md'
jobs:
# Check rustfmt
rustfmt:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macOS-latest
- windows-2019
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- run: cargo fmt --all -- --check
# Check clippy. Note that this doesn't check ARM.
clippy:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macOS-latest
- windows-2019
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
# TODO: Can probably put cache here in the future; I'm worried if this will cause issues with clippy though since cargo check breaks it; maybe wait until 1.52, when fix lands.
- run: cargo clippy --all-targets --workspace -- -D warnings
# Compile/check/test.
check:
needs: [rustfmt, clippy]
runs-on: ${{ matrix.triple.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
triple:
# Standard x86-64 stuff, stable
- {
os: "ubuntu-latest",
target: "x86_64-unknown-linux-gnu",
cross: false,
rust: stable,
toTest: "true",
}
- {
os: "ubuntu-latest",
target: "i686-unknown-linux-gnu",
cross: true,
rust: stable,
}
# - {
# os: "ubuntu-latest",
# target: "x86_64-unknown-linux-musl",
# cross: false,
# rust: stable,
# }
# - {
# os: "ubuntu-latest",
# target: "i686-unknown-linux-musl",
# cross: true,
# rust: stable,
# }
- {
os: "macOS-latest",
target: "x86_64-apple-darwin",
cross: false,
rust: stable,
toTest: "true",
}
# Big Sur builds are disabled, unfortunately.
# - {
# os: "macOS-11.0",
# target: "x86_64-apple-darwin",
# cross: false,
# rust: stable,
# }
- {
os: "windows-2019",
target: "x86_64-pc-windows-msvc",
cross: false,
rust: stable,
toTest: "true",
}
- {
os: "windows-2019",
target: "i686-pc-windows-msvc",
cross: true,
rust: stable,
}
# - {
# os: "windows-2019",
# target: "x86_64-pc-windows-gnu",
# cross: false,
# rust: stable,
# }
# aarch64
- {
os: "ubuntu-latest",
target: "aarch64-unknown-linux-gnu",
cross: true,
rust: stable,
}
# armv7
- {
os: "ubuntu-latest",
target: "armv7-unknown-linux-gnueabihf",
cross: true,
rust: stable,
}
# armv6
- {
os: "ubuntu-latest",
target: "arm-unknown-linux-gnueabihf",
cross: true,
rust: stable,
}
# PowerPC 64 LE
- {
os: "ubuntu-latest",
target: "powerpc64le-unknown-linux-gnu",
cross: true,
rust: stable,
}
# macOS ARM
- {
os: "macOS-latest",
target: "aarch64-apple-darwin",
cross: true,
rust: stable,
}
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.triple.rust }}
override: true
target: ${{ matrix.triple.target }}
- uses: Swatinem/rust-cache@v1
- name: Check
uses: actions-rs/cargo@v1
with:
command: check
args: --all-targets --verbose --target=${{ matrix.triple.target }} --no-default-features
use-cross: ${{ matrix.triple.cross }}
- name: Run tests
if: matrix.triple.toTest == 'true'
run: cargo test --no-fail-fast
env:
CARGO_HUSKY_DONT_INSTALL_HOOKS: true
RUST_BACKTRACE: full