Skip to content
This repository was archived by the owner on Mar 3, 2026. It is now read-only.

Commit 3135138

Browse files
authored
Add tracing-tests into pipeline (#1302)
1 parent 5777536 commit 3135138

File tree

1 file changed

+95
-25
lines changed

1 file changed

+95
-25
lines changed

.circleci/config.yml

Lines changed: 95 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ parameters:
1414
orbs:
1515
win: circleci/windows@2.4.0
1616
aws-cli: circleci/aws-cli@1.3.1
17+
kubernetes: circleci/kubernetes@0.11.2
1718

1819
executors:
1920
golang:
@@ -105,25 +106,6 @@ commands:
105106
keys:
106107
- cimg-go-pkg-mod-{{ arch }}-{{ checksum "go.sum" }}-v4
107108

108-
install_fluentbit:
109-
steps:
110-
- run: |
111-
sudo chmod 0777 -R /opt
112-
- restore_cache: # restores saved cache if no changes are detected since last run
113-
keys:
114-
- "cimg-fluentbit-{{ arch }}-1.5.3"
115-
- run: |
116-
sudo ln -s /opt/td-agent-bit/bin/td-agent-bit /usr/local/bin/fluent-bit
117-
if [[ -f /opt/td-agent-bit/bin/td-agent-bit ]]; then
118-
exit 0
119-
fi
120-
wget https://packages.fluentbit.io/ubuntu/bionic/pool/main/t/td-agent-bit/td-agent-bit_1.5.3_amd64.deb
121-
sudo dpkg -i ./td-agent-bit*.deb
122-
- save_cache:
123-
key: cimg-fluentbit-{{ arch }}-1.5.3
124-
paths:
125-
- /opt/td-agent-bit
126-
127109
publish_docker_images:
128110
parameters:
129111
repo:
@@ -172,6 +154,20 @@ workflows:
172154
- publish-dev:
173155
requires:
174156
- run-stability-tests
157+
- run-tracing-tests:
158+
repo: opentelemetry-collector-dev
159+
tag: ${CIRCLE_SHA1}
160+
requires:
161+
- publish-dev
162+
- publish-stable:
163+
requires:
164+
- run-tracing-tests
165+
filters:
166+
branches:
167+
ignore: /.*/
168+
tags:
169+
only: /.*/
170+
175171

176172
build-publish:
177173
when: << pipeline.parameters.run-build-publish >>
@@ -246,20 +242,31 @@ workflows:
246242
branches:
247243
ignore: /.*/
248244
tags:
249-
only: /.*/
250-
- spawn-stability-tests-job:
245+
ignore: /.*/
246+
- publish-dev:
251247
requires:
252248
- lint
253249
- unit-tests
254-
- loadtest
255-
- windows-test
256250
- integration-tests
257251
- cross-compile
252+
- loadtest
253+
- windows-test
254+
- windows-msi
255+
- deb-package
256+
- rpm-package
258257
filters:
259258
branches:
260-
only: /main|release\/.+/
259+
ignore: /.*/
261260
tags:
262261
ignore: /.*/
262+
- spawn-stability-tests-job:
263+
requires:
264+
- publish-check
265+
filters:
266+
branches:
267+
only: /.*/
268+
tags:
269+
only: /.*/
263270
- integration-tests:
264271
filters:
265272
tags:
@@ -343,7 +350,6 @@ jobs:
343350
TEST_RESULTS: testbed/tests/results/junit/results.xml
344351
steps:
345352
- restore_workspace
346-
- install_fluentbit
347353
- run:
348354
name: Loadtest
349355
command: make e2e-test
@@ -572,3 +578,67 @@ jobs:
572578
- persist_to_workspace:
573579
root: ~/
574580
paths: project/dist/*.<< parameters.package_type >>
581+
582+
run-tracing-tests:
583+
parameters:
584+
repo:
585+
type: string
586+
tag:
587+
type: string
588+
docker:
589+
- image: ${INFRASTRUCTURE_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/tracing-tests/tests:latest
590+
aws_auth:
591+
aws_access_key_id: ${TRACING_TESTS_AWS_ACCESS_KEY_ID}
592+
aws_secret_access_key: ${TRACING_TESTS_AWS_SECRET_ACCESS_KEY}
593+
steps:
594+
- run:
595+
name: "Configure environment variables"
596+
command: |
597+
echo "export SUMO_API_ENDPOINT=${TRACING_TESTS_SUMO_API_ENDPOINT}" >> $BASH_ENV
598+
echo "export OTELCOL_HEALTHCHECK_URL=${TRACING_TESTS_OTELCOL_URL}" >> $BASH_ENV
599+
echo "export SUMO_ACCESS_ID=${TRACING_TESTS_SUMO_ACCESS_ID}" >> $BASH_ENV
600+
echo "export SUMO_ACCESS_KEY=${TRACING_TESTS_SUMO_ACCESS_KEY}" >> $BASH_ENV
601+
echo "export PYTHONWARNINGS=ignore:Unverified HTTPS request" >> $BASH_ENV
602+
echo "export AWS_ACCESS_KEY_ID=${TRACING_TESTS_CLUSTER_AWS_ACCESS_ID}" >> $BASH_ENV
603+
echo "export AWS_SECRET_ACCESS_KEY=${TRACING_TESTS_CLUSTER_AWS_ACCESS_KEY}" >> $BASH_ENV
604+
- kubernetes/install-kubeconfig:
605+
kubeconfig: TRACING_TESTS_CLUSTER_KUBECONFIG_DATA
606+
- kubernetes/install-kubectl
607+
- aws-cli/install
608+
- run:
609+
name: "Clean up environment"
610+
command: /opt/tracing-tests/deployment_scripts/clean-up-env.sh
611+
- run:
612+
name: "Deploy Sumologic OpenTelemetry Collector"
613+
command: /opt/tracing-tests/deployment_scripts/deploy-otelcol.sh << parameters.repo >> << parameters.tag >>
614+
- run:
615+
name: "Wait for Sumologic OpenTelemetry Collector to be available"
616+
command: kubectl -n java-app wait --for=condition=ready --timeout=120s pod -l app=otelcol
617+
- run:
618+
name: "Deploy ECR Registry Secret"
619+
command: /opt/tracing-tests/deployment_scripts/deploy-ecr-registry-secret.sh
620+
- run:
621+
name: "Deploy Kubernetes Metadata Provider application"
622+
command: /opt/tracing-tests/deployment_scripts/deploy-k8sfeeder.sh
623+
- run:
624+
name: "Wait for Kubernetes Metadata Provider"
625+
command: kubectl -n java-app wait --for=condition=ready --timeout=60s pod -l app=k8s-feeder
626+
- run:
627+
name: "Get Kubernetes Metadata provider URL"
628+
command: echo "export KUBERNETES_METADATA_URL=$(kubectl -n java-app get svc k8s-feeder-svc-pub -o json | jq .status.loadBalancer.ingress[0].hostname)" >> $BASH_ENV
629+
- run:
630+
name: "Deploy Java App application"
631+
command: /opt/tracing-tests/deployment_scripts/deploy-javaapp.sh
632+
- run:
633+
name: "Wait for Kubernetes Metadata Provider"
634+
command: kubectl -n java-app wait --for=condition=ready --timeout=60s pod -l app=server
635+
- run:
636+
name: "Wait for data..."
637+
command: sleep 180
638+
- run:
639+
name: "Execute Tracing Tests"
640+
command: "pytest --rootdir=/opt/tracing-tests --junitxml=/opt/tracing-tests/test-results/junit.xml --html=/opt/tracing-tests/test-results/report.html --self-contained-html -vvv /opt/tracing-tests/tests"
641+
- store_test_results:
642+
path: /opt/tracing-tests/test-results
643+
- store_artifacts:
644+
path: /opt/tracing-tests/test-results

0 commit comments

Comments
 (0)