feat: set json formatter as default #5522
Workflow file for this run
This file contains hidden or 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
| 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 }} |