mirror of
https://github.com/containers/podman.git
synced 2026-01-29 00:11:42 -05:00
(podman push) and (podman manifest push) now support --sign-by-sigstore=param-file, using the containers-sigstore-signing-params.yaml(5) file format. That notably adds support for Fulcio and Rekor signing. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
188 lines
5.1 KiB
YAML
188 lines
5.1 KiB
YAML
# This file contains Google Cloud Build configuration for presubmit checks, unit
|
|
# and integration tests, triggered by pull requests and commits to branches.
|
|
|
|
timeout: 1800s
|
|
substitutions:
|
|
_CODECOV_TOKEN: "" # The auth token for uploading coverage to Codecov.
|
|
options:
|
|
machineType: E2_HIGHCPU_32
|
|
volumes:
|
|
# A shared volume for caching Go modules between steps.
|
|
- name: go-modules
|
|
path: /go
|
|
env:
|
|
- GO111MODULE=on
|
|
- GOPATH=/go
|
|
- GOLANG_PROTOBUF_REGISTRATION_CONFLICT=ignore # Temporary work-around v1.proto already registered error.
|
|
- DOCKER_CLIENT_TIMEOUT=120
|
|
- COMPOSE_HTTP_TIMEOUT=120
|
|
|
|
# Cache the testbase image in Container Regisrty, to be reused by subsequent
|
|
# builds. The technique is described here:
|
|
# https://cloud.google.com/cloud-build/docs/speeding-up-builds#using_a_cached_docker_image
|
|
#
|
|
# TODO(pavelkalinnikov): Consider pushing this image only on commits to master.
|
|
images: ['gcr.io/$PROJECT_ID/trillian_testbase:latest']
|
|
|
|
# Cloud Build logs sent to GCS bucket
|
|
logsBucket: 'gs://trillian-cloudbuild-logs'
|
|
|
|
steps:
|
|
|
|
# Try to pull the testbase image from Container Registry.
|
|
- name: 'gcr.io/cloud-builders/docker'
|
|
entrypoint: 'bash'
|
|
args: ['-c', 'docker pull gcr.io/$PROJECT_ID/trillian_testbase:latest || exit 0']
|
|
# Build the testbase image reusing as much of the cached image as possible.
|
|
- name: 'gcr.io/cloud-builders/docker'
|
|
args: [
|
|
'build',
|
|
'-t', 'gcr.io/$PROJECT_ID/trillian_testbase:latest',
|
|
'--cache-from', 'gcr.io/$PROJECT_ID/trillian_testbase:latest',
|
|
'-f', './integration/cloudbuild/testbase/Dockerfile',
|
|
'.'
|
|
]
|
|
|
|
# Set up tools and any other common steps which should not be part of Docker image.
|
|
- id: prepare
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/prepare.sh
|
|
|
|
# Run lint and porcelain checks, make sure the diff is empty and no files need
|
|
# to be updated. This includes gofmt, golangci-linter, go mod tidy, go mod
|
|
# generate and a few more.
|
|
- id: lint
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./scripts/presubmit.sh
|
|
args:
|
|
- --no-build
|
|
- --fix
|
|
- --no-mod-tidy
|
|
- --empty-diff
|
|
waitFor:
|
|
- prepare
|
|
|
|
# Presubmit
|
|
- id: presubmit
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_presubmit.sh
|
|
args:
|
|
- --no-linters
|
|
- --no-generate
|
|
env:
|
|
- GOFLAGS=-race
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- lint
|
|
|
|
# Codecov
|
|
- id: codecov
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_presubmit.sh
|
|
args:
|
|
- --coverage
|
|
- --no-linters
|
|
- --no-generate
|
|
env:
|
|
- GOFLAGS=-race
|
|
- GO_TEST_TIMEOUT=20m
|
|
- CODECOV_TOKEN=${_CODECOV_TOKEN}
|
|
waitFor:
|
|
- lint
|
|
|
|
# Presubmit (Batched queue)
|
|
- id: presubmit_batched
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_presubmit.sh
|
|
args:
|
|
- --no-linters
|
|
- --no-generate
|
|
env:
|
|
- GOFLAGS=-race --tags=batched_queue
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- lint
|
|
|
|
# Presubmit (PKCS11)
|
|
- id: presubmit_pkcs11
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_presubmit.sh
|
|
args:
|
|
- --no-linters
|
|
- --no-generate
|
|
env:
|
|
- GOFLAGS=-race --tags=pkcs11
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- lint
|
|
|
|
# Try to spread the load a bit, we'll wait for all the presubmit.* steps
|
|
# to finish before starting the integration.* ones.
|
|
# Having too many "big" things running concurrently leads to problems
|
|
# with timeouts and mysql issues.
|
|
- id: presubmits_done
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: /bin/true
|
|
waitFor:
|
|
- codecov
|
|
- presubmit
|
|
- presubmit_batched
|
|
- presubmit_pkcs11
|
|
|
|
# Integration
|
|
- id: integration
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_integration.sh
|
|
env:
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- presubmits_done
|
|
|
|
# Integration (Docker)
|
|
- id: integration_docker
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/docker_compose_integration_test.sh
|
|
waitFor:
|
|
- presubmits_done
|
|
|
|
# Integration (etcd)
|
|
- id: integration_etcd
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_integration.sh
|
|
env:
|
|
- ETCD_DIR=/go/bin
|
|
- GOFLAGS=-race
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- presubmits_done
|
|
|
|
# Integration (Batched queue)
|
|
- id: integration_batched
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_integration.sh
|
|
env:
|
|
- GOFLAGS=-race -tags=batched_queue
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- presubmits_done
|
|
|
|
# Integration (PKCS11)
|
|
- id: integration_pkcs11
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_integration.sh
|
|
env:
|
|
- GOFLAGS=-race -tags=pkcs11
|
|
- GO_TEST_TIMEOUT=20m
|
|
waitFor:
|
|
- presubmits_done
|
|
|
|
# Integration (MariaDB)
|
|
- id: integration_mariadb
|
|
name: 'gcr.io/${PROJECT_ID}/trillian_testbase'
|
|
entrypoint: ./integration/cloudbuild/run_integration.sh
|
|
env:
|
|
- GO_TEST_TIMEOUT=20m
|
|
- MYSQLD_IMAGE=mariadb:10.3
|
|
waitFor:
|
|
- presubmits_done
|