diff options
Diffstat (limited to '.circleci/config.yml')
-rw-r--r-- | .circleci/config.yml | 81 |
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 |