Skip to content

feat(logs): support json formatter #5505

feat(logs): support json formatter

feat(logs): support json formatter #5505

Workflow file for this run

permissions:
contents: read
on:
# TODO: validate when to trigger the pipeline
push:
merge_group:
# See https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
name: test
jobs:
release-build:
runs-on: ubuntu-latest
name: "Build release binaries"
steps:
- uses: actions/checkout@v4
- name: Obtain Rust version from project
run: |
RUST_VERSION=$(grep "rust-version" Cargo.toml | cut -d "=" -f2 | tr -d "[:space:]")
echo "RUST_VERSION=${RUST_VERSION}" >> $GITHUB_ENV
- name: Install Rust ${{ env.RUST_VERSION }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
targets: >-
x86_64-unknown-linux-musl
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-release
- name: Install Zig
uses: mlugg/setup-zig@v2
- name: Install cargo-zigbuild
run: |
cargo install --locked cargo-zigbuild --force
- name: Build k8s in release mode
run: cargo zigbuild --release --package newrelic_agent_control --bin newrelic-agent-control-k8s --target x86_64-unknown-linux-musl
- name: Build onhost in release mode
run: cargo zigbuild --release --package newrelic_agent_control --bin newrelic-agent-control --target x86_64-unknown-linux-musl
required:
runs-on: ubuntu-latest
name: Unit, docs and onhost integration tests
steps:
- uses: actions/checkout@v4
- name: Obtain Rust version from project
run: |
RUST_VERSION=$(grep "rust-version" Cargo.toml | cut -d "=" -f2 | tr -d "[:space:]")
echo "RUST_VERSION=${RUST_VERSION}" >> $GITHUB_ENV
- name: Install Rust ${{ matrix.toolchain }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
targets: >-
aarch64-unknown-linux-musl,
x86_64-unknown-linux-musl
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- uses: actions/cache/restore@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-test-dev
- name: Install Zig
uses: mlugg/setup-zig@v2
- name: Install cargo-zigbuild
run: |
cargo install --locked cargo-zigbuild --force
- name: Run workspace tests excluding the agent control package
run: cargo test --workspace --exclude 'newrelic_agent_control' --all-targets
- name: Run tests agent control lib excluding root-required tests (on-host)
run: make -C agent-control test/onhost
- name: Run tests agent control integration_test excluding root-required tests (on-host)
run: make -C agent-control test/onhost/integration
- name: Run tests agent control (k8s)
run: make -C agent-control test/k8s
- name: Run documentation tests
run: cargo test --locked --doc
# Test using root can be troublesome to perform as usually the Rust toolchain is installed local to the user.
# To test for root privileges, we can run from a container (disabling the test that fail if running non-root).
test-with-root:
runs-on: ubuntu-latest
container: rust:latest
name: tests as root
steps:
- uses: actions/checkout@v4
- name: Obtain Rust version from project
run: |
RUST_VERSION=$(grep "rust-version" Cargo.toml | cut -d "=" -f2 | tr -d "[:space:]")
echo "RUST_VERSION=${RUST_VERSION}" >> $GITHUB_ENV
- name: Install Rust ${{ env.RUST_VERSION }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
- uses: actions/cache/restore@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-test-dev
- name: Run onHost root-required integration-tests only
run: make -C agent-control test/onhost/root/integration
embedded:
name: Unit test for embedded downloader
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version-file: "build/embedded/go.mod"
- name: run tests for embedded downloader
run: make -C build/embedded test
k8s-integration-tests:
name: K8s integration tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
group: [ part1, part2, flux-self-update ]
steps:
- uses: actions/checkout@v4
- name: Setup Minikube
uses: manusa/actions-setup-minikube@v2.14.0
with:
minikube version: v1.35.0
kubernetes version: "v1.30.14"
driver: docker
github token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Tilt
run: |
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash
- name: Obtain Rust version from project
run: |
RUST_VERSION=$(grep "rust-version" Cargo.toml | cut -d "=" -f2 | tr -d "[:space:]")
echo "RUST_VERSION=${RUST_VERSION}" >> $GITHUB_ENV
- name: Install Rust ${{ env.RUST_VERSION }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
targets: >-
x86_64-unknown-linux-musl
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-test-dev
- name: Install Zig
uses: mlugg/setup-zig@v2
- name: Install cargo-zigbuild
run: |
cargo install --locked cargo-zigbuild --force
- name: Run k8s integration tests
env:
# Tilt configs
ARCH: amd64
run: make -C agent-control test/k8s/integration-${{ matrix.group }}
k8s-e2e-tests:
uses: ./.github/workflows/component_k8s_e2e.yml
with:
scenarios: '["infra"]'
secrets:
E2E_ACCOUNT_ID: ${{ secrets.AC_PROD_E2E_ACCOUNT_ID }}
E2E_API_KEY: ${{ secrets.AC_PROD_E2E_API_KEY }}
E2E_LICENSE_KEY: ${{ secrets.AC_PROD_E2E_LICENSE_KEY }}