Skip to content

Add a ThreadLocal metrics aggregator #3611

Add a ThreadLocal metrics aggregator

Add a ThreadLocal metrics aggregator #3611

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- master
- release/**
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
RUSTFLAGS: -Dwarnings
jobs:
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Install libcurl-dev
run: |
sudo apt update
sudo apt-get install -y libcurl4-openssl-dev
- name: Checkout sources
uses: actions/checkout@v4
- name: Install rust stable toolchain
run: rustup toolchain install stable --profile minimal --component rustfmt --component clippy --no-self-update
- name: Cache rust cargo artifacts
uses: swatinem/rust-cache@v2
- name: Run cargo fmt
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy --all-features --workspace --tests --examples
test:
name: Tests
runs-on: ubuntu-latest
steps:
- name: Install libcurl-dev
run: |
sudo apt update
sudo apt-get install -y libcurl4-openssl-dev
- name: Checkout sources
uses: actions/checkout@v4
- name: Install rust stable toolchain
run: rustup toolchain install stable --profile minimal --no-self-update
- name: Cache rust cargo artifacts
uses: swatinem/rust-cache@v2
- name: Run cargo test
run: cargo test --workspace --all-features --locked
env:
SENTRY_SYMBOLICATOR_GCS_CLIENT_EMAIL: ${{ secrets.SENTRY_SYMBOLICATOR_GCS_CLIENT_EMAIL }}
SENTRY_SYMBOLICATOR_GCS_PRIVATE_KEY: ${{ secrets.SENTRY_SYMBOLICATOR_GCS_PRIVATE_KEY }}
SENTRY_SYMBOLICATOR_TEST_AWS_ACCESS_KEY_ID: ${{ secrets.SENTRY_SYMBOLICATOR_TEST_AWS_ACCESS_KEY_ID }}
SENTRY_SYMBOLICATOR_TEST_AWS_SECRET_ACCESS_KEY: ${{ secrets.SENTRY_SYMBOLICATOR_TEST_AWS_SECRET_ACCESS_KEY }}
GOOGLE_APPLICATION_CREDENTIALS_JSON: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS_JSON }}
test_against_latest_sentry:
name: Sentry-Symbolicator Tests
runs-on: ubuntu-latest
steps:
- name: Install libcurl-dev
run: |
sudo apt update
sudo apt-get install -y libcurl4-openssl-dev
- name: Checkout Symbolicator
uses: actions/checkout@v4
# Checkout Sentry and run integration tests against latest Symbolicator
- name: Checkout sentry
uses: actions/checkout@v4
with:
repository: getsentry/sentry
path: sentry
- name: Setup steps
id: setup
run: |
# We cannot execute actions that are not placed under .github of the main repo
mkdir -p .github/actions/
cp -r sentry/.github/actions/setup-sentry .github/actions/
- name: Setup Sentry
uses: ./.github/actions/setup-sentry
with:
workdir: sentry
kafka: true
snuba: true
- name: Do the localhost docker dance
run: echo "$DJANGO_LIVE_TEST_SERVER_ADDRESS host.docker.internal" | sudo tee --append /etc/hosts
- name: Install rust stable toolchain
run: rustup toolchain install stable --profile minimal --no-self-update
- name: Cache rust cargo artifacts
uses: swatinem/rust-cache@v2
- name: Build Symbolicator
run: cargo build --locked
- name: Run Symbolicator
run: ./target/debug/symbolicator run &
- name: Run Sentry's Symbolicator integration tests
working-directory: sentry
run: make test-symbolicator
doc-comments:
name: Rust doc comments
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- name: Install libcurl-dev
run: |
sudo apt update
sudo apt-get install -y libcurl4-openssl-dev
- name: Checkout sources
uses: actions/checkout@v4
- name: Install rust stable toolchain
run: rustup toolchain install stable --profile minimal --component rust-docs --no-self-update
- name: Cache rust cargo artifacts
uses: swatinem/rust-cache@v2
- run: cargo doc --workspace --all-features --document-private-items --no-deps
docs:
name: Build docs
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Setup python dependencies
run: pip install --upgrade mkdocs mkdocs-material pygments
- name: Build Docs
run: mkdocs build
codecov:
name: Code Coverage
runs-on: ubuntu-latest
continue-on-error: true # well, its nightly and highly experimental
steps:
- name: Install libcurl-dev
run: |
sudo apt update
sudo apt-get install -y libcurl4-openssl-dev
- uses: actions/checkout@v4
- name: Install rust stable toolchain
run: rustup toolchain install stable --profile minimal --component llvm-tools-preview --no-self-update
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-llvm-cov
- run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
env:
SENTRY_SYMBOLICATOR_GCS_CLIENT_EMAIL: ${{ secrets.SENTRY_SYMBOLICATOR_GCS_CLIENT_EMAIL }}
SENTRY_SYMBOLICATOR_GCS_PRIVATE_KEY: ${{ secrets.SENTRY_SYMBOLICATOR_GCS_PRIVATE_KEY }}
SENTRY_SYMBOLICATOR_TEST_AWS_ACCESS_KEY_ID: ${{ secrets.SENTRY_SYMBOLICATOR_TEST_AWS_ACCESS_KEY_ID }}
SENTRY_SYMBOLICATOR_TEST_AWS_SECRET_ACCESS_KEY: ${{ secrets.SENTRY_SYMBOLICATOR_TEST_AWS_SECRET_ACCESS_KEY }}
GOOGLE_APPLICATION_CREDENTIALS_JSON: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS_JSON }}
- uses: codecov/codecov-action@v4
with:
files: lcov.info