cloudbuild-e2e-cloud-functions-gen2.yaml (27 lines of code) (raw):

# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. steps: # Cloud Functions doesn't play nice with lerna monorepos, so bundle in the local dependencies # before creating the zip file. - name: node:16-alpine id: build script: | set -x # install dev deps and tools for the monorepo apk add zip # bootstrap and compile only the packages needed for e2e test server npm install --workspace=./e2e-test-server npx lerna@^7 run compile --scope=@google-cloud/e2e-test-server --include-dependencies # builds a small self contained bundle with @vercel/ncc under dist/ cd e2e-test-server # --external will avoid bundling functions-framework. Needed so we only have one copy of # global variables in that package when GCF executes it. npm run bundle -- --external @google-cloud/functions-framework # create a new fake package.json in dist/ and zip it up into a source zip for Cloud # Functions cd dist cp ../fake.package.json package.json zip -qr function-source.zip . # Run the test - name: $_TEST_RUNNER_IMAGE id: run-tests-cloud-functions dir: / env: ["PROJECT_ID=$PROJECT_ID"] args: - cloud-functions-gen2 - --functionsource=/workspace/e2e-test-server/dist/function-source.zip - --runtime=nodejs16 - --entrypoint=cloudFunctionHandler logsBucket: gs://opentelemetry-ops-e2e-cloud-build-logs timeout: 20m substitutions: _TEST_RUNNER_IMAGE: us-central1-docker.pkg.dev/${PROJECT_ID}/e2e-testing/opentelemetry-operations-e2e-testing:0.20.1 _TEST_SERVER_IMAGE: us-central1-docker.pkg.dev/${PROJECT_ID}/e2e-testing/opentelemetry-operations-js-e2e-test-server:${SHORT_SHA}