...

Text file src/edge-infra.dev/hack/build/ci/docker-build-push.sh

Documentation: edge-infra.dev/hack/build/ci

     1#!/usr/bin/env bash
     2set -eu
     3
     4# This script assumes you are building and pushing from GitHub Actions, using
     5# Edge private runners (specifically that authentication keys are already being
     6# managed)
     7
     8PUSH_CONTAINER=${PUSH_CONTAINER:-false}
     9GCP_CONTAINER_REGISTRY="${GCP_CONTAINER_REGISTRY:-us-east1-docker.pkg.dev}"
    10GCP_CONTAINER_REGISTRY_PROJECT="${GCP_CONTAINER_REGISTRY_PROJECT:-ret-edge-pltf-infra}"
    11GCP_CONTAINER_REPO=${GCP_CONTAINER_REPO:-workloads}
    12SKIP_UPDATE_MANIFEST=${SKIP_UPDATE_MANIFEST:-false}
    13
    14# shellcheck disable=SC2206
    15t=(${GITHUB_REPOSITORY//\// })
    16REPO=${t[1]}
    17
    18SEMVER="$(cat .version)"
    19TIMESTAMP="${SOURCE_DATE_EPOCH:-$(git log -1 --format=%ct)}"
    20BUILD_VERSION="$SEMVER-$TIMESTAMP"
    21
    22# export variables so they are available to update-manifests.sh
    23export IMAGE_NAME="${IMAGE_NAME:-$REPO}"
    24export TAG="$GCP_CONTAINER_REGISTRY/$GCP_CONTAINER_REGISTRY_PROJECT/$GCP_CONTAINER_REPO/$IMAGE_NAME:$BUILD_VERSION"
    25export DRY_RUN=${DRY_RUN:-false}
    26
    27echo "running docker-build make target"
    28if ! make IMG="$TAG" docker-build; then
    29    echo "Build didn't succeed, aborting!"
    30    exit 1
    31fi
    32
    33if [[ "$PUSH_CONTAINER" != 'true' && "$DRY_RUN" != 'true' ]]; then
    34    echo "PUSH_CONTAINER is false, skipping push"
    35    exit 0
    36fi
    37
    38echo "pushing $TAG"
    39docker push "${TAG}"
    40
    41# Optionally run the update manifests script
    42if [[ "$SKIP_UPDATE_MANIFEST" != 'true' ]]; then
    43	"$(dirname "${BASH_SOURCE[0]}")/update-manifests.sh"
    44fi

View as plain text