cloudbuild.compose.yaml (52 lines of code) (raw):

# Copyright 2019 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: - id: 'compile web app' name: 'gcr.io/cloud-builders/npm' dir: 'web' args: ['install'] - id: 'web app unit tests' name: 'gcr.io/cloud-builders/npm' dir: 'web' args: ['test'] waitFor: ['compile web app'] - id: 'build web' name: 'gcr.io/cloud-builders/docker' args: [ 'build', '--tag=web', # use local registry for compatibility with local builds '--tag=gcr.io/$PROJECT_ID/web', '--cache-from=gcr.io/$PROJECT_ID/web:latest', 'web/.', ] waitFor: ['web app unit tests'] - id: 'build db' name: 'gcr.io/cloud-builders/docker' args: [ 'build', '--tag=mysql', # use local registry for compatibility with local builds '--tag=gcr.io/$PROJECT_ID/mysql', '--cache-from', 'gcr.io/$PROJECT_ID/mysql:latest', 'mysql/.', ] waitFor: ['-'] # start immediately - id: 'compose up' name: 'gcr.io/$PROJECT_ID/docker-compose:latest' entrypoint: '/bin/bash' args: - '-c' - | docker-compose up -d env: - 'PROJECT_ID=$PROJECT_ID' waitFor: ['build web','build db'] - id: 'integration tests' name: 'gcr.io/$PROJECT_ID/docker-compose:latest' entrypoint: '/bin/bash' args: - '-c' - | ### -r = retries; -i = interval; -k = keyword to search for ### ./test/test-connection.sh -r 20 -i 3 -u http://web:3000 ./test/test-content.sh -r 20 -i 3 -u http://web:3000 -k 'Chocolate Chip' waitFor: ['compose up'] images: - gcr.io/$PROJECT_ID/web - gcr.io/$PROJECT_ID/mysql