# 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 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}'
