Skip to content

[otap-dataflow benchmark] filter processor benchmarks + internal telemetry #4914

[otap-dataflow benchmark] filter processor benchmarks + internal telemetry

[otap-dataflow benchmark] filter processor benchmarks + internal telemetry #4914

Workflow file for this run

name: Rust-CI
permissions:
contents: read
on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
env:
CARGO_TERM_COLOR: always
# Cancel in-progress runs on new commits to same PR
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test_and_coverage:
strategy:
fail-fast: false
matrix:
folder:
- otap-dataflow
- experimental/query_abstraction
- experimental/query_engine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: stable
- name: install cargo-llvm-cov and nextest
uses: taiki-e/install-action@537c30d2b45cc3aa3fb35e2bbcfb61ef93fd6f02 # v2.62.52
with:
tool: cargo-llvm-cov,cargo-nextest
- name: Build the test collector
run: make otelarrowcol
- name: Run tests with coverage
run: cargo llvm-cov nextest --all-features --workspace --lcov --output-path lcov.info
working-directory: ./rust/${{ matrix.folder }}
- name: Upload to codecov.io
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
fail_ci_if_error: true
fmt:
strategy:
fail-fast: false
matrix:
folder:
- otap-dataflow
- experimental/query_abstraction
- experimental/query_engine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: nightly
components: rustfmt
- name: cargo fmt ${{ matrix.folder }}
run: cargo fmt --all -- --check
working-directory: ./rust/${{ matrix.folder }}
clippy:
strategy:
fail-fast: false
matrix:
folder:
- otap-dataflow
- experimental/query_abstraction
- experimental/query_engine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: stable
components: clippy
- name: cargo clippy ${{ matrix.folder }}
run: |
cargo clippy --all-targets --all-features --workspace -- -D warnings
working-directory: ./rust/${{ matrix.folder }}
deny:
strategy:
fail-fast: false
matrix:
folder:
- otap-dataflow
- experimental/query_abstraction
- experimental/query_engine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: stable
- name: advisories
if: '!cancelled()'
uses: EmbarkStudios/cargo-deny-action@f2ba7abc2abebaf185c833c3961145a3c275caad # v2.0.13
with:
command: check advisories
manifest-path: ./rust/${{ matrix.folder }}/Cargo.toml
- name: licenses
if: '!cancelled()'
uses: EmbarkStudios/cargo-deny-action@f2ba7abc2abebaf185c833c3961145a3c275caad # v2.0.13
with:
command: check licenses
manifest-path: ./rust/${{ matrix.folder }}/Cargo.toml
- name: bans
if: '!cancelled()'
uses: EmbarkStudios/cargo-deny-action@f2ba7abc2abebaf185c833c3961145a3c275caad # v2.0.13
with:
command: check bans
manifest-path: ./rust/${{ matrix.folder }}/Cargo.toml
- name: sources
if: '!cancelled()'
uses: EmbarkStudios/cargo-deny-action@f2ba7abc2abebaf185c833c3961145a3c275caad # v2.0.13
with:
command: check sources
manifest-path: ./rust/${{ matrix.folder }}/Cargo.toml
docs:
strategy:
fail-fast: false
matrix:
folder:
- otap-dataflow
- experimental/query_abstraction
- experimental/query_engine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: stable
- name: cargo doc ${{ matrix.folder }}
run: cargo doc --no-deps
working-directory: ./rust/${{ matrix.folder }}
structure_check:
strategy:
fail-fast: false
matrix:
# Only otap-dataflow has a structure check
folder: [otap-dataflow]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: stable
- name: cargo xtask ${{ matrix.folder }}
run: cargo xtask structure-check
working-directory: ./rust/${{ matrix.folder }}
document-build-options:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Document Build Options
run: |
echo "## :bulb: Build Options" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- Add the label \`cargobench\` to your PR to run micro benchmarks." >> $GITHUB_STEP_SUMMARY
echo "- More info: [link to docs](https://github.com/open-telemetry/otel-arrow/blob/main/CONTRIBUTING.md#micro-benchmarks)" >> $GITHUB_STEP_SUMMARY