google-nomulus/release/build_nomulus_for_env.sh
Lai Jiang 5352c06c7b Do not delete build cache when building release candidates (#1619)
We would like to re-use the build cache when building RCs for different
environments. There's not much practical use in doing a "clean" for
every build when Gradle should be able to figure out which artifacts
need to be rebuilt. It also does not make sense to build each
environment in a separate step, which also introduces redunency because
not all artifacts are cached across steps. The build cache is enabled by
default.

Lastly, the cache needs to be inside the /workspace folder, which is the
default persisted storage location.

TESTED=tried to build the RCs on alpha and saved about 10 min.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/google/nomulus/1619)
<!-- Reviewable:end -->
2022-05-04 12:08:10 -04:00

61 lines
1.6 KiB
Bash
Executable file

#!/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 builds the GAE artifacts for a given environment, moves the
# artifacts for all services to a designated location, and then creates a
# tarball from there.
set -e
if [ $# -ne 2 ];
then
echo "Usage: $0 alpha|crash|sandbox|production|tool <destination>"
exit 1
fi
environment="$1"
dest="$2"
gcs_prefix="gcs://domain-registry-maven-repository"
if [ "${environment}" == tool ]
then
mkdir -p "${dest}"
./gradlew :core:buildToolImage \
-PmavenUrl="${gcs_prefix}"/maven \
-PpluginsUrl="${gcs_prefix}"/plugins
mv core/build/libs/nomulus.jar "${dest}"
else
dest="${dest}/$1"
mkdir -p "${dest}"
./gradlew stage -Penvironment="${environment}" \
-PmavenUrl="${gcs_prefix}"/maven \
-PpluginsUrl="${gcs_prefix}"/plugins
for service in default pubapi backend tools
do
mv services/"${service}"/build/staged-app "${dest}/${service}"
done
mv core/build/resources/main/google/registry/env/common/META-INF \
"${dest}/META-INF"
cd "${dest}"
tar cvf ../"${environment}.tar" .
cd -
rm -rf "${dest}"
fi