mirror of
https://github.com/google/nomulus.git
synced 2025-07-27 13:06:27 +02:00
Build an uber tarball in Cloud Build
Spinnaker currently cannot have inter-dependencies between different pipelines. As a result we put the WAR files for all environments in one tarball which triggers a single pipeline that first deploys to sandbox and then to production. Temporarily disabled pulling dependencies from GCS while that is being worked out. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=239448777
This commit is contained in:
parent
6e01d400cd
commit
454afcdf30
2 changed files with 53 additions and 23 deletions
|
@ -22,41 +22,40 @@ steps:
|
||||||
args: ['source', 'repos', 'clone', 'nomulus-internal']
|
args: ['source', 'repos', 'clone', 'nomulus-internal']
|
||||||
- name: 'alpine'
|
- name: 'alpine'
|
||||||
args: ['sh', '-c', 'cp -r nomulus-internal/* .']
|
args: ['sh', '-c', 'cp -r nomulus-internal/* .']
|
||||||
# Build the deployment files.
|
# Create a directory to store the artifacts
|
||||||
|
- name: 'alpine'
|
||||||
|
args: ['mkdir', 'nomulus']
|
||||||
|
# Build the deployment files for sandbox.
|
||||||
- name: 'gcr.io/${PROJECT_ID}/builder'
|
- name: 'gcr.io/${PROJECT_ID}/builder'
|
||||||
args:
|
args:
|
||||||
- './gradlew'
|
- './gradlew'
|
||||||
- 'stage'
|
- 'stage'
|
||||||
- '-x'
|
- '-x'
|
||||||
- 'autoLintGradle'
|
- 'autoLintGradle'
|
||||||
- '-PrepositoryUrl=gcs://domain-registry-maven-repository'
|
- '-Penvironment=sandbox'
|
||||||
- '-Penvironment=${_ENVIRONMENT}'
|
|
||||||
dir: 'gradle'
|
dir: 'gradle'
|
||||||
# Tar the deployment files as we cannot upload directories to GCS.
|
|
||||||
- name: 'alpine'
|
- name: 'alpine'
|
||||||
args: ['tar', 'cvf', '../../../default.tar', '.']
|
args: ['sh', './move_artifacts.sh', 'sandbox', 'nomulus']
|
||||||
dir: 'gradle/services/default/build/staged-app'
|
# Build the deployment files for alpha.
|
||||||
|
- name: 'gcr.io/${PROJECT_ID}/builder'
|
||||||
|
args:
|
||||||
|
- './gradlew'
|
||||||
|
- 'stage'
|
||||||
|
- '-x'
|
||||||
|
- 'autoLintGradle'
|
||||||
|
- '-Penvironment=alpha'
|
||||||
|
dir: 'gradle'
|
||||||
- name: 'alpine'
|
- name: 'alpine'
|
||||||
args: ['tar', 'cvf', '../../../pubapi.tar', '.']
|
args: ['sh', './move_artifacts.sh', 'alpha', 'nomulus']
|
||||||
dir: 'gradle/services/pubapi/build/staged-app'
|
# Create the uber tarball including all environments.
|
||||||
- name: 'alpine'
|
- name: 'alpine'
|
||||||
args: ['tar', 'cvf', '../../../backend.tar', '.']
|
args: ['tar', 'cvf', '../nomulus.tar', '.']
|
||||||
dir: 'gradle/services/backend/build/staged-app'
|
dir: 'nomulus'
|
||||||
- name: 'alpine'
|
# The tarball to upload to GCS.
|
||||||
args: ['tar', 'cvf', '../../../tools.tar', '.']
|
|
||||||
dir: 'gradle/services/tools/build/staged-app'
|
|
||||||
# Tar files to upload to GCS.
|
|
||||||
artifacts:
|
artifacts:
|
||||||
objects:
|
objects:
|
||||||
location: 'gs://${PROJECT_ID}-deploy/${TAG_NAME}/${_ENVIRONMENT}'
|
location: 'gs://${PROJECT_ID}-deploy/${TAG_NAME}'
|
||||||
paths:
|
paths: ['nomulus.tar']
|
||||||
- 'gradle/services/default.tar'
|
|
||||||
- 'gradle/services/pubapi.tar'
|
|
||||||
- 'gradle/services/backend.tar'
|
|
||||||
- 'gradle/services/tools.tar'
|
|
||||||
timeout: 3600s
|
timeout: 3600s
|
||||||
# Default values
|
|
||||||
substitutions:
|
|
||||||
_ENVIRONMENT: alpha
|
|
||||||
options:
|
options:
|
||||||
machineType: 'N1_HIGHCPU_8'
|
machineType: 'N1_HIGHCPU_8'
|
||||||
|
|
31
move_artifacts.sh
Executable file
31
move_artifacts.sh
Executable file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2019 The Nomulus Authors. All Rights Reserved.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# This script moves GAE artifacts for a given environment to a designated location.
|
||||||
|
|
||||||
|
if [ $# -ne 2 ];
|
||||||
|
then
|
||||||
|
echo "Usage: $0 alpha|crash|sandbox|production destination."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dest="$2/$1"
|
||||||
|
|
||||||
|
mkdir -p "${dest}"
|
||||||
|
|
||||||
|
for service in default pubapi backend tools
|
||||||
|
do
|
||||||
|
mv gradle/services/"${service}"/build/staged-app "${dest}/${service}"
|
||||||
|
done
|
Loading…
Add table
Add a link
Reference in a new issue