updated workflow
This commit is contained in:
@@ -1,27 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
workdir="$PWD/repo"
|
||||
: "${INPUT_GIT_BASE_URL:?missing INPUT_GIT_BASE_URL}"
|
||||
: "${INPUT_GIT_REPOSITORY:?missing INPUT_GIT_REPOSITORY}"
|
||||
: "${INPUT_GIT_SHA:?missing INPUT_GIT_SHA}"
|
||||
: "${INPUT_GIT_USER:?missing INPUT_GIT_USER}"
|
||||
: "${INPUT_GIT_TOKEN:?missing INPUT_GIT_TOKEN}"
|
||||
: "${INPUT_REGISTRY:?missing INPUT_REGISTRY}"
|
||||
: "${INPUT_REGISTRY_USER:?missing INPUT_REGISTRY_USER}"
|
||||
: "${INPUT_REGISTRY_TOKEN:?missing INPUT_REGISTRY_TOKEN}"
|
||||
: "${INPUT_IMAGE_NAME:?missing INPUT_IMAGE_NAME}"
|
||||
: "${INPUT_IMAGE_TAG:?missing INPUT_IMAGE_TAG}"
|
||||
: "${INPUT_CONTEXT:?missing INPUT_CONTEXT}"
|
||||
: "${INPUT_DOCKERFILE:?missing INPUT_DOCKERFILE}"
|
||||
|
||||
rm -rf "$workdir"
|
||||
mkdir -p "$workdir"
|
||||
case "${INPUT_IMAGE_NAME}" in
|
||||
*/*) ;;
|
||||
*)
|
||||
echo "INPUT_IMAGE_NAME must include owner/name, for example: example/signup_app" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
git init "$workdir"
|
||||
cd "$workdir"
|
||||
case "${INPUT_IMAGE_NAME}" in
|
||||
*.*/*|*:*/*)
|
||||
echo "INPUT_IMAGE_NAME must not include a registry hostname; use INPUT_REGISTRY for that" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
workdir="${PWD}/repo"
|
||||
local_image="localbuild:${INPUT_IMAGE_TAG}"
|
||||
remote_image="${INPUT_REGISTRY}/${INPUT_IMAGE_NAME}:${INPUT_IMAGE_TAG}"
|
||||
|
||||
rm -rf "${workdir}"
|
||||
mkdir -p "${workdir}"
|
||||
|
||||
git init "${workdir}"
|
||||
cd "${workdir}"
|
||||
git remote add origin "https://${INPUT_GIT_USER}:${INPUT_GIT_TOKEN}@${INPUT_GIT_BASE_URL}/${INPUT_GIT_REPOSITORY}.git"
|
||||
git fetch --depth=1 origin "${INPUT_GIT_SHA}"
|
||||
git checkout --detach FETCH_HEAD
|
||||
|
||||
full_image="${INPUT_IMAGE_NAME}:${INPUT_IMAGE_TAG}"
|
||||
|
||||
docker build \
|
||||
-f "${INPUT_DOCKERFILE}" \
|
||||
-t "${full_image}" \
|
||||
-t "${local_image}" \
|
||||
"${INPUT_CONTEXT}"
|
||||
|
||||
if [ "${INPUT_PUSH}" = "true" ]; then
|
||||
echo "${INPUT_REGISTRY_TOKEN}" | docker login "${INPUT_REGISTRY}" -u "${INPUT_REGISTRY_USER}" --password-stdin
|
||||
docker tag "${full_image}" "${INPUT_REGISTRY}/${full_image}"
|
||||
docker push "${INPUT_REGISTRY}/${full_image}"
|
||||
fi
|
||||
echo "${INPUT_REGISTRY_TOKEN}" | docker login "${INPUT_REGISTRY}" -u "${INPUT_REGISTRY_USER}" --password-stdin
|
||||
docker tag "${local_image}" "${remote_image}"
|
||||
docker push "${remote_image}"
|
||||
|
||||
Reference in New Issue
Block a user