Make Cloud Build produce artifact ready for Spinnaker to consume

The artifacts for each service will be packaged inside a tar file that, when untared, is ready for Spinnaker to deploy to GAE.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=226516223
This commit is contained in:
jianglai 2018-12-21 11:19:00 -08:00 committed by Michael Muller
parent 3d3c0eb9ae
commit a09067c51d
2 changed files with 24 additions and 21 deletions

View file

@ -22,31 +22,32 @@ steps:
args: ['source', 'repos', 'clone', 'nomulus-config'] args: ['source', 'repos', 'clone', 'nomulus-config']
- name: 'alpine' - name: 'alpine'
args: ['sh', '-c', 'cp -r nomulus-config/* .'] args: ['sh', '-c', 'cp -r nomulus-config/* .']
# Build the war files. # Build the deployment files.
- name: 'openjdk:8-slim' - name: 'google/cloud-sdk'
args: ['./gradlew', 'stage', '-x', 'autoLintGradle'] args: ['./gradlew', 'stage', '-x', 'autoLintGradle']
dir: 'gradle' dir: 'gradle'
- name: 'openjdk:8-slim' # Tar the deployment files as we cannot upload directories to GCS.
args: ['jar', '-cvf', '../../../default-${TAG_NAME}.war', '.'] - name: 'alpine'
dir: 'gradle/services/default/build/exploded-default' args: ['tar', 'cvf', '../../../default.tar', '.']
- name: 'openjdk:8-slim' dir: 'gradle/services/default/build/staged-app'
args: ['jar', '-cvf', '../../../pubapi-${TAG_NAME}.war', '.'] - name: 'alpine'
dir: 'gradle/services/pubapi/build/exploded-pubapi' args: ['tar', 'cvf', '../../../pubapi.tar', '.']
- name: 'openjdk:8-slim' dir: 'gradle/services/pubapi/build/staged-app'
args: ['jar', '-cvf', '../../../backend-${TAG_NAME}.war', '.'] - name: 'alpine'
dir: 'gradle/services/backend/build/exploded-backend' args: ['tar', 'cvf', '../../../backend.tar', '.']
- name: 'openjdk:8-slim' dir: 'gradle/services/backend/build/staged-app'
args: ['jar', '-cvf', '../../../tools-${TAG_NAME}.war', '.'] - name: 'alpine'
dir: 'gradle/services/tools/build/exploded-tools' args: ['tar', 'cvf', '../../../tools.tar', '.']
# WAR files to upload to GCS. dir: 'gradle/services/tools/build/staged-app'
# Tar files to upload to GCS.
artifacts: artifacts:
objects: objects:
location: 'gs://${PROJECT_ID}-war' location: 'gs://${PROJECT_ID}-deploy/${TAG_NAME}'
paths: paths:
- 'gradle/services/default-${TAG_NAME}.war' - 'gradle/services/default.tar'
- 'gradle/services/pubapi-${TAG_NAME}.war' - 'gradle/services/pubapi.tar'
- 'gradle/services/backend-${TAG_NAME}.war' - 'gradle/services/backend.tar'
- 'gradle/services/tools-${TAG_NAME}.war' - 'gradle/services/tools.tar'
timeout: 3600s timeout: 3600s
options: options:
machineType: 'N1_HIGHCPU_8' machineType: 'N1_HIGHCPU_8'

View file

@ -91,7 +91,7 @@ subprojects {
} }
rootProject.deploy.dependsOn appengineDeploy rootProject.deploy.dependsOn appengineDeploy
rootProject.stage.dependsOn explodeWar rootProject.stage.dependsOn appengineStage
// Return early, do not apply the settings below. // Return early, do not apply the settings below.
return return
@ -107,6 +107,8 @@ subprojects {
sourceCompatibility = '1.8' sourceCompatibility = '1.8'
targetCompatibility = '1.8' targetCompatibility = '1.8'
compileJava {options.encoding = "UTF-8"}
gradleLint.rules = [ gradleLint.rules = [
// Checks if Gradle wrapper is up-to-date // Checks if Gradle wrapper is up-to-date
'archaic-wrapper', 'archaic-wrapper',