Skip to content

[chore] increase limits for load tests (#400) #1466

[chore] increase limits for load tests (#400)

[chore] increase limits for load tests (#400) #1466

Workflow file for this run

name: E2E-Test
on:
pull_request:
branches: [main]
push:
branches: [main]
defaults:
run:
shell: bash
env:
KUBECONFIG: /tmp/kube-config-collector-e2e-testing
# renovate: datasource=golang-version depName=go
GO_VERSION: "1.23.4"
jobs:
docker-build:
runs-on: ubuntu-24.04
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
check-latest: true
cache: false
- name: Cache tools
id: cache-tools
uses: actions/cache@v4
with:
path: .tools
key: e2e-tools-${{ runner.os }}-${{ hashFiles('internal/tools/go.sum') }}
- name: Install tools
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
mkdir -p .tools
touch .tools/*
make install-tools
- name: Generate source files
run: make generate
- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: e2e-mods-${{ runner.os }}-${{ hashFiles('build/go.sum') }}
- name: Build collector artifact
shell: bash
run: |
echo "Building collector artifact"
make build
- name: Upload binary artifact
uses: actions/upload-artifact@v4
with:
name: dynatrace-otel-collector-bin
path: bin/dynatrace-otel-collector
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push to local registry
uses: docker/build-push-action@v6
with:
context: ./bin
file: Dockerfile
push: false
load: true
tags: dynatrace-otel-collector:e2e-test
- name: export image to tar
run: |
docker save dynatrace-otel-collector:e2e-test > /tmp/dynatrace-otel-collector.tar
- name: Upload container image artifact
uses: actions/upload-artifact@v4
with:
name: dynatrace-otel-collector-image
path: /tmp/dynatrace-otel-collector.tar
k8s-e2e-test-matrix:
strategy:
fail-fast: false
matrix:
usecase:
- k8senrichment
- prometheus
- zipkin
- statsd
- redaction
runs-on: ubuntu-24.04
needs: docker-build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup cluster
uses: ./.github/actions/create-cluster
- name: Run e2e tests
run: |
cd internal/testbed/integration/${{ matrix.usecase }}
go test -v --tags=e2e
combined-load-test:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: "Linux-x64-16-64GB-Runner" # Ubuntu 24.04
needs: docker-build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup cluster
uses: ./.github/actions/create-cluster
- name: Run e2e tests
run: |
cd internal/testbed/integration/combinedload
go test -v --tags=e2e
helm-install-test:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-24.04
needs: docker-build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup cluster
uses: ./.github/actions/create-cluster
- name: Run helm installation
env:
REPOSITORY: "dynatrace-otel-collector"
TAG: "e2e-test"
run: |
./internal/testbed/scripts/install_dt_collector_helm.sh || exit 1;
eec-confmap-provider:
runs-on: ubuntu-24.04
needs: docker-build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
check-latest: true
cache: false
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: dynatrace-otel-collector-bin
path: bin
- run: chmod +x bin/*
- name: Run e2e tests
run: |
cd internal/confmap/provider/eecprovider
go test -v --tags=e2e
notify-slack-combined-load-test:
runs-on: ubuntu-24.04
needs: [combined-load-test]
if: failure() && github.event_name == 'push'
steps:
- name: Slack Notification
uses: rtCamp/[email protected]
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_TITLE: "DT OTel Collector Distro - Combined Load Test Failure"
SLACK_COLOR: "failure"
SLACK_USERNAME: "GitHub Actions Notifier"
SLACK_ICON: "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/github.png"
notify-slack-e2e-tests:
runs-on: ubuntu-24.04
needs: [k8s-e2e-test-matrix, eec-confmap-provider]
if: failure() && github.event_name == 'push'
steps:
- name: Slack Notification
uses: rtCamp/[email protected]
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_TITLE: "DT OTel Collector Distro - E2E Test Failure"
SLACK_COLOR: "failure"
SLACK_USERNAME: "GitHub Actions Notifier"
SLACK_ICON: "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/github.png"