@@ -14,6 +14,7 @@ parameters:
1414orbs :
1515 win : circleci/windows@2.4.0
1616 aws-cli : circleci/aws-cli@1.3.1
17+ kubernetes : circleci/kubernetes@0.11.2
1718
1819executors :
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