summaryrefslogtreecommitdiff
path: root/.circleci/config.yml
diff options
context:
space:
mode:
Diffstat (limited to '.circleci/config.yml')
-rw-r--r--.circleci/config.yml81
1 files changed, 67 insertions, 14 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 8cf5a042a..27c616436 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -48,7 +48,7 @@ executors:
workflows:
version: 2
- build_pr:
+ "circleci_build_and_test":
jobs:
- codegen_verification
@@ -275,6 +275,8 @@ commands:
generic_test:
description: Run build tests from build workspace, for re-use by diferent architectures
parameters:
+ platform:
+ type: string
build_dir:
type: string
default: << pipeline.parameters.build_dir >>
@@ -335,6 +337,9 @@ commands:
key: 'go-cache-v2-{{ .Environment.CIRCLE_STAGE }}-{{ .Environment.CIRCLE_BUILD_NUM }}'
paths:
- tmp/go-cache
+ - upload_to_buildpulse:
+ platform: << parameters.platform >>
+ path: << parameters.result_path >>/<< parameters.result_subdir>>
upload_coverage:
description: Collect coverage reports and upload them
@@ -345,9 +350,45 @@ commands:
command: |
scripts/travis/upload_coverage.sh || true
+ upload_to_buildpulse:
+ description: Collect build reports and upload them
+ parameters:
+ platform:
+ type: string
+ path:
+ type: string
+ steps:
+ - run:
+ name: Send test results to BuildPulse
+ when: always
+ command: |
+ set -e
+ if ! ls << parameters.path >>/*/*.xml &> /dev/null; then exit 0; fi
+ sed -i"" -e 's/classname="/classname="<< parameters.platform >>-/' << parameters.path >>/*/*.xml
+ case "<< parameters.platform >>" in
+ arm64)
+ URL=https://github.com/buildpulse/test-reporter/releases/download/v0.21.0-pre/test-reporter-linux-arm64
+ SUM=53f94c29ad162c2b9ebb1f4a2f967f5262c0459ee4a0c34332977d8c89aafc18
+ ;;
+ amd64)
+ URL=https://github.com/buildpulse/test-reporter/releases/download/v0.21.0-pre/test-reporter-linux-amd64
+ SUM=4655e54d756580c0de0112cab488e6e08d0af75e9fc8caea2d63f9e13be8beb5
+ ;;
+ mac_amd64)
+ URL=https://github.com/buildpulse/test-reporter/releases/download/v0.21.0-pre/test-reporter-darwin-amd64
+ SUM=2f9e20a6f683c80f35d04e36bc57ecfe605bb48fee5a1b8d8f7c45094028eea3
+ ;;
+ esac
+ curl -fsSL --retry 3 --retry-connrefused $URL > ./buildpulse-test-reporter
+ echo "$SUM *buildpulse-test-reporter" | shasum -a 256 -c --status
+ chmod +x ./buildpulse-test-reporter
+ ./buildpulse-test-reporter submit << parameters.path >> --account-id 23182699 --repository-id 191266671 || true
+
generic_integration:
description: Run integration tests from build workspace, for re-use by diferent architectures
parameters:
+ platform:
+ type: string
build_dir:
type: string
default: << pipeline.parameters.build_dir >>
@@ -401,6 +442,9 @@ commands:
root: << parameters.result_path >>
paths:
- << parameters.result_subdir >>
+ - upload_to_buildpulse:
+ platform: << parameters.platform >>
+ path: << parameters.result_path >>/<< parameters.result_subdir>>
tests_verification_command:
description: Check if all tests were run at least once and only once across all parallel runs
@@ -431,9 +475,14 @@ commands:
type: string
default: << pipeline.parameters.build_dir >>
steps:
+ - attach_workspace:
+ at: << parameters.build_dir >>
- run:
name: Upload binaries << parameters.platform >>
command: |
+ export PATH=$(echo "$PATH" | sed -e "s|:${HOME}/\.go_workspace/bin||g" | sed -e 's|:/usr/local/go/bin||g')
+ export GOPATH="<< parameters.build_dir >>/go"
+ export NO_BUILD=true
export TRAVIS_BRANCH=${CIRCLE_BRANCH}
scripts/travis/deploy_packages.sh
- when:
@@ -473,13 +522,14 @@ jobs:
parameters:
platform:
type: string
- executor: << parameters.platform >>_large
+ executor: << parameters.platform >>_medium
working_directory: << pipeline.parameters.build_dir >>/project
parallelism: 4
steps:
- prepare_build_dir
- prepare_go
- generic_test:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_test
short_test_flag: "-short"
- upload_coverage
@@ -488,13 +538,14 @@ jobs:
parameters:
platform:
type: string
- executor: << parameters.platform >>_large
+ executor: << parameters.platform >>_medium
working_directory: << pipeline.parameters.build_dir >>/project
parallelism: 4
steps:
- prepare_build_dir
- prepare_go
- generic_test:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_test_nightly
no_output_timeout: 45m
- upload_coverage
@@ -508,13 +559,14 @@ jobs:
type: string
executor: << parameters.platform >>_large
working_directory: << pipeline.parameters.build_dir >>/project
- parallelism: 4
+ parallelism: 2
environment:
E2E_TEST_FILTER: "GO"
steps:
- prepare_build_dir
- prepare_go
- generic_integration:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_integration
short_test_flag: "-short"
@@ -531,6 +583,7 @@ jobs:
- prepare_build_dir
- prepare_go
- generic_integration:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_integration_nightly
no_output_timeout: 45m
- slack/notify:
@@ -540,15 +593,16 @@ jobs:
parameters:
platform:
type: string
- executor: << parameters.platform >>_large
+ executor: << parameters.platform >>_medium
working_directory: << pipeline.parameters.build_dir >>/project
- parallelism: 4
+ parallelism: 2
environment:
E2E_TEST_FILTER: "EXPECT"
steps:
- prepare_build_dir
- prepare_go
- generic_integration:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_e2e_expect
short_test_flag: "-short"
@@ -556,15 +610,16 @@ jobs:
parameters:
platform:
type: string
- executor: << parameters.platform >>_large
+ executor: << parameters.platform >>_medium
working_directory: << pipeline.parameters.build_dir >>/project
- parallelism: 4
+ parallelism: 2
environment:
E2E_TEST_FILTER: "EXPECT"
steps:
- prepare_build_dir
- prepare_go
- generic_integration:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform>>_e2e_expect_nightly
no_output_timeout: 45m
- slack/notify:
@@ -576,13 +631,13 @@ jobs:
type: string
executor: << parameters.platform >>_large
working_directory: << pipeline.parameters.build_dir >>/project
- parallelism: 4
environment:
E2E_TEST_FILTER: "SCRIPTS"
steps:
- prepare_build_dir
- prepare_go
- generic_integration:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_e2e_subs
short_test_flag: "-short"
@@ -592,13 +647,13 @@ jobs:
type: string
executor: << parameters.platform >>_large
working_directory: << pipeline.parameters.build_dir >>/project
- parallelism: 4
environment:
E2E_TEST_FILTER: "SCRIPTS"
steps:
- prepare_build_dir
- prepare_go
- generic_integration:
+ platform: << parameters.platform >>
result_subdir: << parameters.platform >>_e2e_subs_nightly
no_output_timeout: 45m
- slack/notify:
@@ -646,10 +701,8 @@ jobs:
executor: << parameters.platform >>_medium
steps:
- prepare_build_dir
- - checkout
- prepare_go
- upload_binaries_command:
platform: << parameters.platform >>
- - slack/notify: &slack-fail-event
- event: fail
- template: basic_fail_1
+ - slack/notify:
+ <<: *slack-fail-event