mirror of
https://github.com/tokio-rs/tracing.git
synced 2026-01-25 04:16:18 +00:00
* chore(CI): split CI into separate workflows Tracing runs a very large number of jobs on CI. Right now, those jobs are all defined in a single workflow. Unfortunately, GitHub Actions only allows restarting failed actions at the workflow level --- if a single job fails spuriously and we want to rerun it, we currently have to re-run *all* the jobs we run on CI. This makes rerunning a single failed job take much longer than is generally necessary. This branch changes the CI configuration to split each logical set of jobs into a separate workflow. This way, if (for example) the MSRV `cargo check` job fails spuriously, we can restart only the MSRV checks workflow, and not have to re-run (for example) all the WASM test jobs too. This doesn't actually change what any of these jobs do, just moves them into separate yaml files with separate names. Signed-off-by: Eliza Weisman <eliza@buoyant.io>
81 lines
2.4 KiB
YAML
81 lines
2.4 KiB
YAML
name: Tests (WASM)
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- "v0.1.x"
|
|
pull_request: {}
|
|
|
|
env:
|
|
# Disable incremental compilation.
|
|
#
|
|
# Incremental compilation is useful as part of an edit-build-test-edit cycle,
|
|
# as it lets the compiler avoid recompiling code that hasn't changed. However,
|
|
# on CI, we're not making small edits; we're almost always building the entire
|
|
# project from scratch. Thus, incremental compilation on CI actually
|
|
# introduces *additional* overhead to support making future builds
|
|
# faster...but no future builds will ever occur in any given CI environment.
|
|
#
|
|
# See https://matklad.github.io/2021/09/04/fast-rust-builds.html#ci-workflow
|
|
# for details.
|
|
CARGO_INCREMENTAL: 0
|
|
# Allow more retries for network requests in cargo (downloading crates) and
|
|
# rustup (installing toolchains). This should help to reduce flaky CI failures
|
|
# from transient network timeouts or other issues.
|
|
CARGO_NET_RETRY: 10
|
|
RUSTUP_MAX_RETRIES: 10
|
|
# Don't emit giant backtraces in the CI logs.
|
|
RUST_BACKTRACE: short
|
|
|
|
jobs:
|
|
test-build-wasm:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
# TODO(securityinsanity): slowly add wasm32 test runner to each crate, and move to seperate actions that run tests.
|
|
subcrate:
|
|
- tracing-appender
|
|
- tracing-attributes
|
|
- tracing-core
|
|
- tracing-error
|
|
- tracing-flame
|
|
- tracing-journald
|
|
- tracing-log
|
|
- tracing-macros
|
|
- tracing-opentelemetry
|
|
- tracing-serde
|
|
- tracing-subscriber
|
|
- tracing-tower
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
target: wasm32-unknown-unknown
|
|
toolchain: stable
|
|
override: true
|
|
- name: build all tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --no-run -p ${{ matrix.subcrate }}
|
|
|
|
test-wasm:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
subcrate:
|
|
- tracing
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
target: wasm32-unknown-unknown
|
|
toolchain: stable
|
|
override: true
|
|
- name: install test runner for wasm
|
|
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
|
- name: run wasm tests
|
|
run: cd ${{ matrix.subcrate }} && wasm-pack test --node
|