| # Copyright 2019 The Go Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style |
| # license that can be found in the LICENSE file. |
| |
| # Build gopls, and run the govim integration tests. See README.md for |
| # instructions on how to use this. |
| |
| substitutions: |
| # This bucket must be owned by the GCP project executing the build. If |
| # you are running this from your own project, override using --substitutions. |
| _RESULT_BUCKET: 'golang-gopls_integration_tests' |
| |
| steps: |
| # Build gopls from source, to use with the govim integration tests. |
| - name: 'golang:1.14' |
| env: ['GOPROXY=https://proxy.golang.org'] |
| dir: 'gopls' |
| args: ['go', 'build'] |
| |
| # Run the tests. Note that the script in this step does not return the exit |
| # code from `go test`, but rather saves it for use in the final step after |
| # uploading artifacts. |
| - name: 'gcr.io/$PROJECT_ID/govim-harness:3' |
| dir: '/src/govim' |
| volumes: |
| - name: artifacts |
| path: /artifacts |
| env: |
| - GOVIM_TESTSCRIPT_WORKDIR_ROOT=/artifacts |
| - VIM_FLAVOR=vim |
| args: ['/workspace/gopls/integration/govim/run_tests_for_cloudbuild.sh'] |
| |
| # The govim tests produce a large number of artifacts; tarball/gzip to reduce |
| # roundtrips and save space. |
| - name: 'ubuntu' |
| volumes: |
| - name: artifacts |
| path: /artifacts |
| args: ['tar', '-czf', 'artifacts.tar.gz', '/artifacts'] |
| |
| # Upload artifacts to GCS. |
| - name: 'gcr.io/cloud-builders/gsutil' |
| args: ['cp', 'artifacts.tar.gz', 'gs://${_RESULT_BUCKET}/govim/${BUILD_ID}/artifacts.tar.gz'] |
| |
| # Exit with the actual exit code of the integration tests. |
| - name: 'ubuntu' |
| args: ['bash', 'govim_test_result.sh'] |
| |
| # Write build logs to the same bucket as artifacts, so they can be more easily |
| # shared. |
| logsBucket: 'gs://${_RESULT_BUCKET}' |