All checks were successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/billing_fees Pipeline was successful
ci/woodpecker/push/fx/1 Pipeline was successful
ci/woodpecker/push/fx/2 Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful
ci/woodpecker/push/ledger Pipeline was successful
86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
if ! set -o pipefail 2>/dev/null; then
|
|
:
|
|
fi
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
|
|
cd "${REPO_ROOT}"
|
|
|
|
sh ci/scripts/common/ensure_env_version.sh
|
|
|
|
normalize_env_file() {
|
|
file="$1"
|
|
tmp="${file}.tmp.$$"
|
|
tr -d '\r' <"$file" >"$tmp"
|
|
mv "$tmp" "$file"
|
|
}
|
|
|
|
load_env_file() {
|
|
file="$1"
|
|
while IFS= read -r line || [ -n "$line" ]; do
|
|
case "$line" in
|
|
''|\#*) continue ;;
|
|
esac
|
|
key="${line%%=*}"
|
|
value="${line#*=}"
|
|
key="$(printf '%s' "$key" | tr -d '[:space:]')"
|
|
value="${value#"${value%%[![:space:]]*}"}"
|
|
value="${value%"${value##*[![:space:]]}"}"
|
|
export "$key=$value"
|
|
done <"$file"
|
|
}
|
|
|
|
LEDGER_ENV_NAME="${LEDGER_ENV:-prod}"
|
|
RUNTIME_ENV_FILE="./ci/${LEDGER_ENV_NAME}/.env.runtime"
|
|
|
|
if [ ! -f "${RUNTIME_ENV_FILE}" ]; then
|
|
echo "[ledger-build] runtime env file not found: ${RUNTIME_ENV_FILE}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
normalize_env_file "${RUNTIME_ENV_FILE}"
|
|
normalize_env_file ./.env.version
|
|
|
|
load_env_file "${RUNTIME_ENV_FILE}"
|
|
load_env_file ./.env.version
|
|
|
|
REGISTRY_URL="${REGISTRY_URL:?missing REGISTRY_URL}"
|
|
APP_V="${APP_V:?missing APP_V}"
|
|
LEDGER_DOCKERFILE="${LEDGER_DOCKERFILE:?missing LEDGER_DOCKERFILE}"
|
|
LEDGER_IMAGE_PATH="${LEDGER_IMAGE_PATH:?missing LEDGER_IMAGE_PATH}"
|
|
|
|
REGISTRY_HOST="${REGISTRY_URL#http://}"
|
|
REGISTRY_HOST="${REGISTRY_HOST#https://}"
|
|
REGISTRY_USER="$(cat secrets/REGISTRY_USER)"
|
|
REGISTRY_PASSWORD="$(cat secrets/REGISTRY_PASSWORD)"
|
|
: "${REGISTRY_USER:?missing registry user}"
|
|
: "${REGISTRY_PASSWORD:?missing registry password}"
|
|
|
|
mkdir -p /kaniko/.docker
|
|
AUTH_B64="$(printf '%s:%s' "$REGISTRY_USER" "$REGISTRY_PASSWORD" | base64 | tr -d '\n')"
|
|
cat <<EOF >/kaniko/.docker/config.json
|
|
{
|
|
"auths": {
|
|
"https://${REGISTRY_HOST}": { "auth": "${AUTH_B64}" }
|
|
}
|
|
}
|
|
EOF
|
|
|
|
BUILD_CONTEXT="${LEDGER_BUILD_CONTEXT:-${WOODPECKER_WORKSPACE:-${CI_WORKSPACE:-${PWD:-/workspace}}}}"
|
|
if [ ! -d "${BUILD_CONTEXT}" ]; then
|
|
BUILD_CONTEXT="/workspace"
|
|
fi
|
|
|
|
/kaniko/executor \
|
|
--context "${BUILD_CONTEXT}" \
|
|
--dockerfile "${LEDGER_DOCKERFILE}" \
|
|
--destination "${REGISTRY_URL}/${LEDGER_IMAGE_PATH}:${APP_V}" \
|
|
--build-arg APP_VERSION="${APP_V}" \
|
|
--build-arg GIT_REV="${GIT_REV}" \
|
|
--build-arg BUILD_BRANCH="${BUILD_BRANCH}" \
|
|
--build-arg BUILD_DATE="${BUILD_DATE}" \
|
|
--build-arg BUILD_USER="${BUILD_USER}" \
|
|
--single-snapshot
|