Add couldbuild build config file for code coverage (#23578)
diff --git a/integrations/cloudbuild/build-coverage.yaml b/integrations/cloudbuild/build-coverage.yaml
new file mode 100644
index 0000000..cc85632
--- /dev/null
+++ b/integrations/cloudbuild/build-coverage.yaml
@@ -0,0 +1,55 @@
+steps:
+ - name: gcr.io/cloud-builders/git
+ args:
+ - submodule
+ - update
+ - "--init"
+ - "--recursive"
+ id: Submodules
+
+ - name: "connectedhomeip/chip-build-vscode:0.6.06"
+ env:
+ - PW_ENVIRONMENT_ROOT=/pwenv
+ args:
+ - "-c"
+ - source ./scripts/bootstrap.sh
+ id: Bootstrap
+ waitFor:
+ - Submodules
+ entrypoint: /usr/bin/bash
+ volumes:
+ - name: pwenv
+ path: /pwenv
+ timeout: 900s
+
+ - name: "connectedhomeip/chip-build-vscode:0.6.06"
+ env:
+ - PW_ENVIRONMENT_ROOT=/pwenv
+ args:
+ - "-c"
+ - ./scripts/build_coverage.sh
+ id: BuildCoverage
+ waitFor:
+ - Bootstrap
+ entrypoint: /usr/bin/bash
+ volumes:
+ - name: pwenv
+ path: /pwenv
+ timeout: 900s
+
+logsBucket: matter-build-automation-build-logs
+
+# Global timeout for all steps
+timeout: 21600s
+queueTtl: 21600s
+
+artifacts:
+ objects:
+ location: "gs://matter-build-automation-artifacts/$PROJECT_ID/$COMMIT_SHA/"
+ paths: ["/out/coverage/coverage/coverage_html.tar.gz"]
+
+# Using higher CPU machines generally speeds up builds, except bootstrap is always
+# slow.
+options:
+ machineType: "E2_HIGHCPU_32"
+ diskSizeGb: 500
diff --git a/scripts/build_coverage.sh b/scripts/build_coverage.sh
index c8aa555..a978b8d 100755
--- a/scripts/build_coverage.sh
+++ b/scripts/build_coverage.sh
@@ -168,3 +168,5 @@
lcov --capture --directory "$OUTPUT_ROOT/obj/src" --exclude="$PWD"/zzz_generated/* --exclude="$PWD"/third_party/* --exclude=/usr/include/* --output-file "$COVERAGE_ROOT/lcov_test.info"
lcov --add-tracefile "$COVERAGE_ROOT/lcov_base.info" --add-tracefile "$COVERAGE_ROOT/lcov_test.info" --output-file "$COVERAGE_ROOT/lcov_final.info"
genhtml "$COVERAGE_ROOT/lcov_final.info" --output-directory "$COVERAGE_ROOT/html"
+
+tar czvf "$COVERAGE_ROOT/coverage_html.tar.gz" -C "$COVERAGE_ROOT/html" .