#!/usr/bin/env bash set -eu # This script assumes you are building and pushing from GitHub Actions, using # Edge private runners (specifically that authentication keys are already being # managed) PUSH_CONTAINER=${PUSH_CONTAINER:-false} GCP_CONTAINER_REGISTRY="${GCP_CONTAINER_REGISTRY:-us-east1-docker.pkg.dev}" GCP_CONTAINER_REGISTRY_PROJECT="${GCP_CONTAINER_REGISTRY_PROJECT:-ret-edge-pltf-infra}" GCP_CONTAINER_REPO=${GCP_CONTAINER_REPO:-workloads} SKIP_UPDATE_MANIFEST=${SKIP_UPDATE_MANIFEST:-false} # shellcheck disable=SC2206 t=(${GITHUB_REPOSITORY//\// }) REPO=${t[1]} SEMVER="$(cat .version)" TIMESTAMP="${SOURCE_DATE_EPOCH:-$(git log -1 --format=%ct)}" BUILD_VERSION="$SEMVER-$TIMESTAMP" # export variables so they are available to update-manifests.sh export IMAGE_NAME="${IMAGE_NAME:-$REPO}" export TAG="$GCP_CONTAINER_REGISTRY/$GCP_CONTAINER_REGISTRY_PROJECT/$GCP_CONTAINER_REPO/$IMAGE_NAME:$BUILD_VERSION" export DRY_RUN=${DRY_RUN:-false} echo "running docker-build make target" if ! make IMG="$TAG" docker-build; then echo "Build didn't succeed, aborting!" exit 1 fi if [[ "$PUSH_CONTAINER" != 'true' && "$DRY_RUN" != 'true' ]]; then echo "PUSH_CONTAINER is false, skipping push" exit 0 fi echo "pushing $TAG" docker push "${TAG}" # Optionally run the update manifests script if [[ "$SKIP_UPDATE_MANIFEST" != 'true' ]]; then "$(dirname "${BASH_SOURCE[0]}")/update-manifests.sh" fi