87 lines
3.1 KiB
Bash
87 lines
3.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euxo pipefail
|
|
|
|
title() {
|
|
echo "------------------------------------------------------------------------------"
|
|
echo $*
|
|
echo "------------------------------------------------------------------------------"
|
|
}
|
|
|
|
run() {
|
|
>&2 echo "[run] $*"
|
|
$*
|
|
}
|
|
|
|
__dir="$(cd "$(dirname $0)";pwd)"
|
|
SRC_PATH="${__dir}/../infrastructure/"
|
|
|
|
if [ -z "$1" ] || [ -z "$2" ]; then
|
|
echo "Parameters not enough"
|
|
echo "Example: $(basename $0) <BUCKET_NAME> <SOLUTION_NAME> [VERSION]"
|
|
exit 1
|
|
fi
|
|
|
|
export BUCKET_NAME=$1
|
|
export SOLUTION_NAME=$2
|
|
export BUILD_VERSION=$3
|
|
export GLOBAL_S3_ASSETS_PATH="${__dir}/global-s3-assets"
|
|
|
|
title "init env"
|
|
|
|
run rm -rf ${GLOBAL_S3_ASSETS_PATH} && run mkdir -p ${GLOBAL_S3_ASSETS_PATH}
|
|
|
|
echo "BUCKET_NAME=${BUCKET_NAME}"
|
|
echo "SOLUTION_NAME=${SOLUTION_NAME}"
|
|
echo "e=${BUILD_VERSION}"
|
|
echo "${BUILD_VERSION}" > ${GLOBAL_S3_ASSETS_PATH}/version
|
|
|
|
title "cdk synth"
|
|
|
|
run cd ${SRC_PATH}
|
|
run npm install
|
|
# if [ "$BUILD_VERSION" != 'latest' ]; then
|
|
# sed -i "1,210s/\"version\":.*$/\"version\": \"$BUILD_VERSION\",/g" package.json
|
|
# fi
|
|
|
|
export USE_BSS=true
|
|
# see https://github.com/aws-samples/cdk-bootstrapless-synthesizer/blob/main/API.md for how to config
|
|
export BSS_TEMPLATE_BUCKET_NAME="${BUCKET_NAME}"
|
|
export BSS_FILE_ASSET_BUCKET_NAME="${BUCKET_NAME}-\${AWS::Region}"
|
|
export FILE_ASSET_PREFIX="${SOLUTION_NAME}/${BUILD_VERSION}/"
|
|
|
|
# container support
|
|
export BSS_IMAGE_ASSET_TAG_PREFIX="${BUILD_VERSION}"
|
|
export BSS_IMAGE_ASSET_TAG_SUFFIX_TYPE=NONE
|
|
|
|
export BSS_IMAGE_ASSET_ACCOUNT_ID=${AWS_CN_ASSET_ACCOUNT_ID}
|
|
export BSS_FILE_ASSET_REGION_SET="cn-north-1,cn-northwest-1"
|
|
export BSS_IMAGE_ASSET_REGION_SET="cn-north-1,cn-northwest-1"
|
|
run mkdir -p ${GLOBAL_S3_ASSETS_PATH}/${CN_ASSETS}
|
|
export BSS_FILE_ASSET_PREFIX="${FILE_ASSET_PREFIX}${CN_ASSETS}"
|
|
run npx cdk synth -c TargetPartition=aws-cn --json --output ${GLOBAL_S3_ASSETS_PATH}/${CN_ASSETS}
|
|
sed -i "s|@TEMPLATE_BUILD_VERSION@|$BUILD_VERSION|"g ${GLOBAL_S3_ASSETS_PATH}/${CN_ASSETS}*template.json
|
|
|
|
export BSS_IMAGE_ASSET_ACCOUNT_ID=${AWS_ASSET_ACCOUNT_ID}
|
|
export BSS_FILE_ASSET_REGION_SET="$REGIONS"
|
|
export BSS_IMAGE_ASSET_REGION_SET=${BSS_FILE_ASSET_REGION_SET}
|
|
|
|
if [ ! -z "$AWS_ASSET_PUBLISH_ROLE" ]; then
|
|
run export BSS_FILE_ASSET_PUBLISHING_ROLE_ARN="$AWS_ASSET_PUBLISH_ROLE"
|
|
run export BSS_IMAGE_ASSET_PUBLISHING_ROLE_ARN="$AWS_ASSET_PUBLISH_ROLE"
|
|
fi
|
|
|
|
IFS=',' read -r -a prefixes <<< "$GLOBAL_ASSETS"
|
|
mkdir -p ${GLOBAL_S3_ASSETS_PATH}/${prefixes[0]}
|
|
|
|
export BSS_FILE_ASSET_PREFIX="${FILE_ASSET_PREFIX}${prefixes[0]}"
|
|
run pwd
|
|
run npx cdk synth -c EnableDashboardCustomDomain=true --json --output ${GLOBAL_S3_ASSETS_PATH}/${prefixes[0]}
|
|
sed -i "s|@TEMPLATE_BUILD_VERSION@|$BUILD_VERSION|"g ${GLOBAL_S3_ASSETS_PATH}/${prefixes[0]}*template.json
|
|
mkdir -p ${GLOBAL_S3_ASSETS_PATH}/${prefixes[1]}
|
|
export BSS_FILE_ASSET_PREFIX="${FILE_ASSET_PREFIX}${prefixes[1]}"
|
|
run npx cdk synth --json --output ${GLOBAL_S3_ASSETS_PATH}/${prefixes[1]}
|
|
sed -i "s|@TEMPLATE_BUILD_VERSION@|$BUILD_VERSION|"g ${GLOBAL_S3_ASSETS_PATH}/${prefixes[1]}*template.json
|
|
|
|
run echo '763104351884.dkr.ecr.us-east-1.amazonaws.com'>>"${__dir}/ecr-repos"
|
|
run echo '727897471807.dkr.ecr.cn-northwest-1.amazonaws.com.cn'>>"${__dir}/cn-ecr-repos"
|