metrics: add a hacky exporter of tokio metrics #2685
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI # Continuous Integration | |
on: | |
push: | |
branches: | |
- master | |
merge_group: | |
pull_request: | |
branches: | |
- "**" | |
paths: | |
- "Cargo.toml" | |
- "Cargo.lock" | |
- "**.rs" | |
- ".github**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} # cancels previous runs on the same PR / commit group | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
CC: /usr/bin/clang | |
CXX: /usr/bin/clang++ | |
jobs: | |
rustfmt: | |
name: Rustfmt | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- uses: extractions/setup-just@v2 | |
- name: Check formatting | |
run: just check_format | |
clippy: | |
name: Clippy | |
needs: rustfmt | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Clang | |
run: sudo apt-get update && sudo apt-get install -y clang | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: "clippy,rustfmt" | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- uses: extractions/setup-just@v2 | |
- name: Clippy check | |
run: just lint | |
just_install: | |
name: just install works | |
needs: rustfmt | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Clang | |
run: sudo apt-get update && sudo apt-get install -y clang lld | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: "clippy,rustfmt" | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- uses: extractions/setup-just@v2 | |
- name: Clippy check | |
run: just install | |
test: | |
name: Test with codecov | |
runs-on: [self-hosted, linux] | |
needs: rustfmt | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Clang | |
run: sudo apt-get update && sudo apt-get install -y clang | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: llvm-tools-preview | |
- uses: taiki-e/install-action@cargo-llvm-cov | |
- uses: taiki-e/install-action@nextest | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- uses: extractions/setup-just@v2 | |
- name: Run tests | |
env: | |
RUSTC_WRAPPER: scripts/coverage.py | |
RUST_LOG: warn | |
run: just test_cov | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
if: github.repository == 'broxus/tycho' | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: codecov.json | |
fail_ci_if_error: true | |
integration-test: | |
name: Integration Test Suite | |
runs-on: [self-hosted, linux] | |
needs: rustfmt | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Clang | |
run: sudo apt-get update && sudo apt-get install -y clang | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- uses: extractions/setup-just@v2 | |
- name: Run integration tests | |
env: | |
RUST_LOG: warn | |
run: just run_integration_tests | |
metrics: | |
name: Metrics | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- uses: extractions/setup-just@v2 | |
- name: Check dashboard | |
run: just check_dashboard | |
msrv: | |
name: Check minimum supported Rust version | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-msrv | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- name: Check semver | |
run: cargo msrv verify --manifest-path cli/Cargo.toml | |
check-protos: | |
name: Check protos | |
if: | | |
contains(github.event.pull_request.files.*.path, '.proto') || | |
(github.event_name == 'push' && contains(join(github.event.commits.*.added, github.event.commits.*.modified), '.proto')) | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Install protobuf | |
run: sudo apt update && sudo apt-get -y install protobuf-compiler | |
- uses: extractions/setup-just@v2 | |
- name: Update RPC proto | |
run: just update_rpc_proto | |
- name: Check for uncommitted changes | |
run: git diff --exit-code | |
# docs: | |
# name: Docs | |
# needs: clippy | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Install Clang | |
# run: sudo apt-get update && sudo apt-get install -y clang | |
# - uses: dtolnay/rust-toolchain@stable | |
# - uses: Swatinem/rust-cache@v2 | |
# - uses: extractions/setup-just@v2 | |
# - name: Check documentation | |
# run: just docs |