Skip to content

Commit

Permalink
Clean & optimize CI (#606)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dzejkop authored Sep 20, 2023
1 parent 748caee commit e89ec2c
Show file tree
Hide file tree
Showing 14 changed files with 115 additions and 333 deletions.
6 changes: 0 additions & 6 deletions .cargo/config.toml

This file was deleted.

97 changes: 12 additions & 85 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@ jobs:
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --locked --features "bench, mimalloc" --all-targets
args: --locked --features "mimalloc" --all-targets
- name: Check docs
uses: actions-rs/cargo@v1
with:
command: doc
args: --locked --features "bench, mimalloc" --no-deps --document-private-items
args: --locked --features "mimalloc" --no-deps --document-private-items

test:
name: Test
Expand Down Expand Up @@ -99,92 +99,19 @@ jobs:
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
# Cargo doc test is not included in `--all-targets`
# See <https://github.com/rust-lang/cargo/issues/6669>
# Cargo doc test also doesn't support `--no-run`, so we run it but
# have it just print `--help`.
- name: Install latest nextest release
uses: taiki-e/install-action@nextest
- name: Build tests
run: |
cargo test --locked --features "bench, mimalloc" --all-targets --no-run
cargo test --locked --features "bench, mimalloc" --doc -- --help
- name: Run tests
run: |
cargo test --locked --features "bench, mimalloc" --all-targets -- --nocapture
cargo test --locked --features "bench, mimalloc" --doc -- --nocapture
codecov:
# See <https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/source-based-code-coverage.html>
name: Coverage
runs-on: ubuntu-latest
env:
RUSTFLAGS: -Cinstrument-coverage
RUSTDOCFLAGS: -C instrument-coverage -Z unstable-options --persist-doctests target/debug/doctestbins
LLVM_PROFILE_FILE: profile-%m.profraw
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.NIGHTLY_VERSION }}
override: true
components: llvm-tools-preview
- name: Install protobuf-compiler
run: sudo apt-get install -y protobuf-compiler
- name: Cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-cov-${{ hashFiles('**/Cargo.lock') }}-cov
restore-keys: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-cov-
- name: Install cargo-binutils
run: cargo install cargo-binutils
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
uses: actions-rs/cargo@v1
with:
version: nightly
- name: Build tests with coverage
run: |
cargo test --locked --features "bench, mimalloc" --all-targets --no-fail-fast --no-run
cargo test --locked --features "bench, mimalloc" --doc --no-fail-fast -- --help
- name: Run tests with coverage
run: |
cargo test --locked --features "bench, mimalloc" --all-targets --no-fail-fast -- --nocapture
cargo test --locked --features "bench, mimalloc" --doc --no-fail-fast
- name: Merge execution traces
run: cargo profdata -- merge -sparse $(find . -iname "profile-*.profraw") -o profile.profdata
- name: Export to lcov format for codecov
# See <https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/instrument-coverage.html#including-doc-tests>
run:
cargo cov -- export
--format=lcov > profile.lcov
--instr-profile=profile.profdata
$(
for file in
$(
cargo test --locked --features "bench, mimalloc" --all-targets
--no-fail-fast --no-run --message-format=json
| jq -r "select(.profile.test == true) | .filenames[]"
| grep -v dSYM -
)
target/debug/doctestbins/*/rust_out;
do
[[ -x $file ]] && printf "%s %s " -object $file ;
done
)
- name: Submit to codecov.io
uses: codecov/codecov-action@v3.1.1
command: nextest
args: run --workspace --features "mimalloc" --no-run
- name: Run tests
uses: actions-rs/cargo@v1
with:
token: ${{ secrets.CODECOV_TOKEN }} # Optional for public repos
flags: test
fail_ci_if_error: true
verbose: true
command: nextest
args: run --workspace --features "mimalloc"

cargo-vet:
name: Vet Dependencies
runs-on: ubuntu-latest
Expand Down
165 changes: 2 additions & 163 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit e89ec2c

Please sign in to comment.