Use just in CI #48
152
.github/workflows/lint.yaml
vendored
Normal file
152
.github/workflows/lint.yaml
vendored
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
|
||||||
|
name: "Linting"
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
# Need to run it on master redundantly, or caches don't work
|
||||||
|
push:
|
||||||
|
branches: ["master"]
|
||||||
|
|
||||||
|
env:
|
||||||
|
RUST_BACKTRACE: full
|
||||||
|
CARGO_INCREMENTAL: 0
|
||||||
|
YARY_COLOR: 0
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
name: "[${{ matrix.os }}/${{ matrix.rust }}] ${{ matrix.just.name }}"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
rust:
|
||||||
|
- stable
|
||||||
|
- 1.53
|
||||||
|
just:
|
||||||
|
- name: "Lint"
|
||||||
|
recipe: lint
|
||||||
|
vars: ""
|
||||||
|
steps:
|
||||||
|
# Checkout code
|
||||||
|
- name: "Git checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Install Rust toolchain
|
||||||
|
- name: "Install Rust ${{ matrix.rust }}"
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.rust }}
|
||||||
|
profile: minimal
|
||||||
|
default: true
|
||||||
|
components: rustfmt,clippy
|
||||||
|
|
||||||
|
- name: "Install Rust rustfmt (nightly)"
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: nightly
|
||||||
|
profile: minimal
|
||||||
|
default: false
|
||||||
|
components: rustfmt
|
||||||
|
|
||||||
|
- name: "Install Just"
|
||||||
|
uses: extractions/setup-just@v1
|
||||||
|
with:
|
||||||
|
just-version: 1
|
||||||
|
|
||||||
|
- name: "Save Cargo cache"
|
||||||
|
uses: Swatinem/rust-cache@v1
|
||||||
|
|
||||||
|
- name: "Task ${{ matrix.just.name }}"
|
||||||
|
run: just ${{ matrix.just.vars }} ${{ matrix.just.recipe }}
|
||||||
|
|
||||||
|
doclint:
|
||||||
|
name: "[${{ matrix.os }}/${{ matrix.rust }}] ${{ matrix.just.name }}"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
rust:
|
||||||
|
- nightly
|
||||||
|
just:
|
||||||
|
- name: "Doc Lint"
|
||||||
|
recipe: lint-docs
|
||||||
|
vars: ""
|
||||||
|
steps:
|
||||||
|
# Checkout code
|
||||||
|
- name: "Git checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Install Rust toolchain
|
||||||
|
- name: "Install Rust ${{ matrix.rust }}"
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.rust }}
|
||||||
|
profile: minimal
|
||||||
|
default: true
|
||||||
|
components: rustfmt
|
||||||
|
|
||||||
|
# Install recipe runner
|
||||||
|
- name: "Install Just"
|
||||||
|
uses: extractions/setup-just@v1
|
||||||
|
with:
|
||||||
|
just-version: 1
|
||||||
|
|
||||||
|
# Save cache
|
||||||
|
- name: "Save Cargo cache"
|
||||||
|
uses: Swatinem/rust-cache@v1
|
||||||
|
with:
|
||||||
|
sharedKey: docs
|
||||||
|
|
||||||
|
# Run tasks
|
||||||
|
- name: "Task ${{ matrix.just.name }}"
|
||||||
|
run: just ${{ matrix.just.vars }} ${{ matrix.just.recipe }}
|
||||||
|
|
||||||
|
audit:
|
||||||
|
name: "[${{ matrix.os }}/${{ matrix.rust }}] ${{ matrix.just.name }}"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
rust:
|
||||||
|
- nightly
|
||||||
|
just:
|
||||||
|
- name: "Unused Deps"
|
||||||
|
recipe: udeps
|
||||||
|
vars: ""
|
||||||
|
- name: "Audit Deps"
|
||||||
|
recipe: audit
|
||||||
|
vars: ""
|
||||||
|
steps:
|
||||||
|
# Checkout code
|
||||||
|
- name: "Git checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Install Rust toolchain
|
||||||
|
- name: "Install Rust ${{ matrix.rust }}"
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.rust }}
|
||||||
|
profile: minimal
|
||||||
|
default: true
|
||||||
|
components: rustfmt
|
||||||
|
|
||||||
|
# Install recipe runner
|
||||||
|
- name: "Install Just"
|
||||||
|
uses: extractions/setup-just@v1
|
||||||
|
with:
|
||||||
|
just-version: 1
|
||||||
|
|
||||||
|
# Save cache
|
||||||
|
- name: "Save Cargo cache"
|
||||||
|
uses: Swatinem/rust-cache@v1
|
||||||
|
|
||||||
|
# Run tasks
|
||||||
|
- name: "Task ${{ matrix.just.name }}"
|
||||||
|
run: just ${{ matrix.just.vars }} ${{ matrix.just.recipe }}
|
106
.github/workflows/pr.yaml
vendored
106
.github/workflows/pr.yaml
vendored
|
@ -1,106 +0,0 @@
|
||||||
|
|
||||||
name: "[CI]: Pull Request"
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
prtasks:
|
|
||||||
name: "[${{ matrix.os }}/${{ matrix.rust }}] ${{ matrix.cargo.name }}"
|
|
||||||
runs-on: "${{ matrix.os }}"
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
- ubuntu-latest
|
|
||||||
rust:
|
|
||||||
- stable
|
|
||||||
- 1.53 # Project MSRV
|
|
||||||
cargo:
|
|
||||||
- name: "Clippy"
|
|
||||||
cmd: clippy
|
|
||||||
args: -- -D clippy::all -W clippy::style
|
|
||||||
- name: "Unit Tests"
|
|
||||||
cmd: test
|
|
||||||
args: --lib --bins
|
|
||||||
- name: "Unit Tests {test_lazy}"
|
|
||||||
cmd: test
|
|
||||||
args: --lib --features=test_lazy
|
|
||||||
- name: "Unit Tests {test_buffer_small}"
|
|
||||||
cmd: test
|
|
||||||
args: --lib --features=test_buffer_small
|
|
||||||
- name: "Unit Tests {test_buffer_small,test_lazy}"
|
|
||||||
cmd: test
|
|
||||||
args: --lib --features=test_buffer_small,test_lazy
|
|
||||||
include:
|
|
||||||
- os: ubuntu-latest
|
|
||||||
sccache-path: /home/runner/.cache/sccache
|
|
||||||
env:
|
|
||||||
RUST_BACKTRACE: full
|
|
||||||
RUSTC_WRAPPER: sccache
|
|
||||||
SCCACHE_CACHE_SIZE: 1G
|
|
||||||
SCCACHE_DIR: ${{ matrix.sccache-path }}
|
|
||||||
steps:
|
|
||||||
|
|
||||||
# Checkout code
|
|
||||||
- name: "Git checkout"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# Install sccache
|
|
||||||
- name: "Install sccache"
|
|
||||||
if: matrix.os == 'ubuntu-latest'
|
|
||||||
env:
|
|
||||||
SCCACHE_URL: https://github.com/mozilla/sccache/releases/download
|
|
||||||
SCCACHE_VERSION: v0.2.15
|
|
||||||
run: |
|
|
||||||
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
|
|
||||||
curl -sSL "$SCCACHE_URL/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
|
|
||||||
install -vDm 755 "$SCCACHE_FILE/sccache" "$HOME/.local/bin/sccache"
|
|
||||||
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
||||||
|
|
||||||
# Install Rust toolchain
|
|
||||||
- name: "Install Rust ${{ matrix.rust }}"
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ matrix.rust }}
|
|
||||||
profile: minimal
|
|
||||||
default: true
|
|
||||||
components: rustfmt,clippy
|
|
||||||
|
|
||||||
# Rebuild cache
|
|
||||||
- name: Cache cargo registry
|
|
||||||
uses: actions/cache@v2
|
|
||||||
continue-on-error: false
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-cargo-
|
|
||||||
- name: Save sccache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
continue-on-error: false
|
|
||||||
with:
|
|
||||||
path: ${{ matrix.sccache-path }}
|
|
||||||
key: ${{ runner.os }}-sccache-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-sccache-
|
|
||||||
|
|
||||||
# Run job
|
|
||||||
- name: "Start sccache server"
|
|
||||||
run: sccache --start-server
|
|
||||||
|
|
||||||
- name: "Task ${{ matrix.cargo.name }}"
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: ${{ matrix.cargo.cmd }}
|
|
||||||
args: ${{ matrix.cargo.args }}
|
|
||||||
|
|
||||||
- name: "Print sccache stats"
|
|
||||||
run: sccache --show-stats
|
|
||||||
|
|
||||||
- name: "Stop sccache server"
|
|
||||||
run: sccache --stop-server || true
|
|
||||||
|
|
74
.github/workflows/tests.yaml
vendored
Normal file
74
.github/workflows/tests.yaml
vendored
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
|
||||||
|
name: "Tests"
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
# Need to run it on master redundantly, or caches don't work
|
||||||
|
push:
|
||||||
|
branches: ["master"]
|
||||||
|
|
||||||
|
env:
|
||||||
|
RUST_BACKTRACE: full
|
||||||
|
CARGO_INCREMENTAL: 0
|
||||||
|
YARY_COLOR: 0
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tests:
|
||||||
|
name: "[${{ matrix.os }}/${{ matrix.rust }}] ${{ matrix.just.name }}"
|
||||||
|
runs-on: "${{ matrix.os }}"
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
rust:
|
||||||
|
- stable
|
||||||
|
- 1.53
|
||||||
|
just:
|
||||||
|
- name: "Unit Tests"
|
||||||
|
recipe: test
|
||||||
|
vars: ""
|
||||||
|
- name: "Unit Tests {test_lazy}"
|
||||||
|
recipe: test
|
||||||
|
vars: Features=test_lazy
|
||||||
|
- name: "Unit Tests {test_buffer_small}"
|
||||||
|
recipe: test
|
||||||
|
vars: Features=test_buffer_small
|
||||||
|
- name: "Unit Tests {test_buffer_small,test_lazy}"
|
||||||
|
recipe: test
|
||||||
|
vars: Features=test_buffer_small,test_lazy
|
||||||
|
- name: "Doc Tests"
|
||||||
|
recipe: test-docs
|
||||||
|
vars: ""
|
||||||
|
- name: "Test Examples"
|
||||||
|
recipe: test-examples
|
||||||
|
vars: ""
|
||||||
|
steps:
|
||||||
|
# Checkout code
|
||||||
|
- name: "Git checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Install Rust toolchain
|
||||||
|
- name: "Install Rust ${{ matrix.rust }}"
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.rust }}
|
||||||
|
profile: minimal
|
||||||
|
default: true
|
||||||
|
components: rustfmt
|
||||||
|
|
||||||
|
# Install recipe runner
|
||||||
|
- name: "Install Just"
|
||||||
|
uses: extractions/setup-just@v1
|
||||||
|
with:
|
||||||
|
just-version: 1
|
||||||
|
|
||||||
|
# Save cache
|
||||||
|
- name: "Save Cargo cache"
|
||||||
|
uses: Swatinem/rust-cache@v1
|
||||||
|
|
||||||
|
# Run tasks
|
||||||
|
- name: "Task ${{ matrix.just.name }}"
|
||||||
|
run: just ${{ matrix.just.vars }} ${{ matrix.just.recipe }}
|
||||||
|
|
Loading…
Reference in a new issue