Test Suite #43672
Workflow file for this run
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: Test Suite | |
on: | |
pull_request: | |
merge_group: | |
types: [checks_requested] | |
concurrency: | |
# `github.ref` is unique for MQ runs and PRs | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
AWS_ACCESS_KEY_ID: "dummy" | |
AWS_SECRET_ACCESS_KEY: "dummy" | |
CONTAINER_TOOL: "docker" | |
DD_ENV: "ci" | |
DD_API_KEY: ${{ secrets.DD_API_KEY }} | |
RUST_BACKTRACE: full | |
TEST_LOG: vector=debug | |
VERBOSE: true | |
CI: true | |
PROFILE: debug | |
# observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps | |
# can be removed when we switch back to the upstream openssl-sys crate | |
CARGO_NET_GIT_FETCH_WITH_CLI: true | |
jobs: | |
changes: | |
uses: ./.github/workflows/changes.yml | |
secrets: inherit | |
with: | |
base_ref: ${{ github.event.merge_group.base_ref || github.event.pull_request.base.ref }} | |
head_ref: ${{ github.event.merge_group.head_ref || github.event.pull_request.head.ref }} | |
checks: | |
name: Checks | |
runs-on: ubuntu-20.04-8core | |
timeout-minutes: 60 | |
needs: changes | |
env: | |
CARGO_INCREMENTAL: 0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# check-version needs tags | |
fetch-depth: 0 # fetch everything | |
- uses: actions/cache@v4 | |
name: Cache Cargo registry + index | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh | |
- uses: ruby/setup-ruby@v1 | |
- run: bash scripts/environment/prepare.sh | |
- name: Enable Rust matcher | |
run: echo "::add-matcher::.github/matchers/rust.json" | |
- name: Check code format | |
run: make check-fmt | |
- name: Check clippy | |
if: needs.changes.outputs.source == 'true' | |
run: make check-clippy | |
- name: Unit - x86_64-unknown-linux-gnu | |
if: needs.changes.outputs.source == 'true' | |
run: make test | |
env: | |
CARGO_BUILD_JOBS: 5 | |
# Validates components for adherence to the Component Specification | |
- name: Check Component Spec | |
run: make test-component-validation | |
- name: Upload test results | |
run: scripts/upload-test-results.sh | |
if: always() | |
- name: Check version | |
run: make check-version | |
- name: Check scripts | |
run: make check-scripts | |
- name: Check events | |
if: needs.changes.outputs.source == 'true' | |
run: make check-events | |
- name: Check that the 3rd-party license file is up to date | |
if: needs.changes.outputs.dependencies == 'true' | |
run: make check-licenses | |
- name: Check Cue docs | |
if: needs.changes.outputs.cue == 'true' | |
run: make check-docs | |
- name: Check Markdown | |
if: needs.changes.outputs.markdown == 'true' | |
run: make check-markdown | |
- name: Check Component Docs | |
if: needs.changes.outputs.source == 'true' || needs.changes.outputs.component_docs == 'true' | |
run: make check-component-docs | |
- name: Check Rust Docs | |
if: needs.changes.outputs.source == 'true' | |
run: cd rust-doc && make docs | |
- name: VRL - Linux | |
if: needs.changes.outputs.source == 'true' || needs.changes.outputs.cue == 'true' | |
run: cargo vdev test-vrl | |
- name: Build VRL Playground | |
if: needs.changes.outputs.source == 'true' || needs.changes.outputs.dependencies == 'true' | |
run: | | |
cd lib/vector-vrl/web-playground/ | |
wasm-pack build --target web --out-dir public/pkg | |
# This is a required status check, so it always needs to run if prior jobs failed, in order to mark the status correctly. | |
all-checks: | |
name: Test Suite | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 5 | |
if: always() | |
needs: [changes, checks] | |
env: | |
FAILED: ${{ contains(needs.*.result, 'failure') }} | |
steps: | |
- run: | | |
echo "failed=${{ env.FAILED }}" | |
if [[ "$FAILED" == "true" ]] ; then | |
exit 1 | |
else | |
exit 0 | |
fi |