name: Test Suite on: pull_request: merge_group: types: [checks_requested] # Workflow-level permissions - read access to repository contents permissions: contents: read # Required to checkout code concurrency: # `github.ref` is unique for MQ runs and PRs group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: CONTAINER_TOOL: "docker" DD_ENV: "ci" DD_API_KEY: ${{ secrets.DD_API_KEY }} VECTOR_LOG: vector=debug VERBOSE: true CI: true PROFILE: debug jobs: changes: uses: ./.github/workflows/changes.yml secrets: inherit check-fmt: name: Check code format runs-on: ubuntu-24.04 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.test-yml == 'true' || needs.changes.outputs.prettier == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true prettier: true - run: make check-fmt check-clippy: name: Check clippy runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true protoc: true libsasl2: true - run: make check-clippy test: name: Unit and Component Validation tests - x86_64-unknown-linux-gnu runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true cargo-nextest: true datadog-ci: true protoc: true libsasl2: true - name: Unit Test 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() check-scripts: name: Check scripts runs-on: ubuntu-24.04 if: ${{ needs.changes.outputs.scripts == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: cargo-cache: false mold: false vdev: true - run: make check-scripts check-events: name: Check events runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: cargo-cache: false mold: false vdev: true - run: make check-events check-licenses: name: Check that the 3rd-party license file is up to date runs-on: ubuntu-24.04 if: ${{ needs.changes.outputs.dependencies == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: cargo-cache: false mold: false vdev: true dd-rust-license-tool: true - run: make check-licenses check-docs: name: Check Cue docs runs-on: ubuntu-24.04 if: ${{ needs.changes.outputs.cue == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true cue: true - run: make check-docs check-markdown: name: Check Markdown runs-on: ubuntu-24.04 if: ${{ needs.changes.outputs.markdown == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true markdownlint-cli2: true - run: make check-markdown check-generated-docs: name: Check Generated Docs runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.component_docs == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true protoc: true cue: true libsasl2: true - run: make check-generated-docs check-rust-docs: name: Check Rust Docs runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true - run: cd rust-doc && make ci-docs-build test-vrl: name: VRL - Linux runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.cue == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true protoc: true wasm-pack: true - run: make test-vrl build-vrl-playground: name: Build VRL Playground runs-on: ubuntu-24.04-8core if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.dependencies == 'true' || needs.changes.outputs.test-yml == 'true' }} needs: changes steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/setup with: rust: true wasm-pack: true - run: | cd lib/vector-vrl/web-playground/ rustup target add wasm32-unknown-unknown wasm-pack build --target web --out-dir public/pkg all-checks: name: Test Suite runs-on: ubuntu-24.04 if: always() needs: - changes - check-fmt - check-clippy - test - check-scripts - check-events - check-licenses - check-docs - check-markdown - check-generated-docs - check-rust-docs - test-vrl - build-vrl-playground steps: - name: Check all jobs status run: | if [[ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" == "true" ]]; then echo "One or more jobs failed or were cancelled" exit 1 else echo "All jobs completed successfully" fi