#!/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 . ci/scripts/common/runtime_env.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" } BFF_ENV_NAME="${BFF_ENV:-$(resolve_runtime_env_name)}" load_runtime_env_bundle "${BFF_ENV_NAME}" IMAGE_TAG="$(compute_image_tag)" BFF_CONFIG_PATH="api/edge/bff/config.yml" if [ "${CI_RUNTIME_ENV_NAME:-prod}" = "devserver" ] && [ -f "${REPO_ROOT}/api/edge/bff/config.dev.yml" ]; then BFF_CONFIG_PATH="api/edge/bff/config.dev.yml" fi REGISTRY_URL="${REGISTRY_URL:?missing REGISTRY_URL}" APP_V="${APP_V:?missing APP_V}" BFF_DOCKERFILE="${BFF_DOCKERFILE:?missing BFF_DOCKERFILE}" BFF_IMAGE_PATH="${BFF_IMAGE_PATH:?missing BFF_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 </kaniko/.docker/config.json { "auths": { "https://${REGISTRY_HOST}": { "auth": "${AUTH_B64}" } } } EOF BUILD_CONTEXT="${BFF_BUILD_CONTEXT:-${WOODPECKER_WORKSPACE:-${CI_WORKSPACE:-${PWD:-/workspace}}}}" if [ ! -d "${BUILD_CONTEXT}" ]; then BUILD_CONTEXT="/workspace" fi /kaniko/executor \ --context "${BUILD_CONTEXT}" \ --dockerfile "${BFF_DOCKERFILE}" \ --destination "${REGISTRY_URL}/${BFF_IMAGE_PATH}:${IMAGE_TAG}" \ --build-arg APP_CONFIG_PATH="${BFF_CONFIG_PATH}" \ --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