mirror of
https://github.com/willfarrell/docker-autoheal.git
synced 2024-12-06 19:16:20 +01:00
ci: clean up build script path
This commit is contained in:
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
IMAGE_NAME="willfarrell/autoheal"
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0"
|
||||
}
|
||||
|
||||
array_join() {
|
||||
local IFS="$1"
|
||||
shift
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
get_available_architectures() {
|
||||
local image="$1"
|
||||
local tag="${2:-latest}"
|
||||
|
||||
docker buildx imagetools inspect --raw "${image}:${tag}" | \
|
||||
jq -r '.manifests[].platform | .os + "/" + .architecture + "/" + .variant' | \
|
||||
sed 's#/$##' | sort
|
||||
}
|
||||
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]
|
||||
then
|
||||
set -ex
|
||||
|
||||
cd "$(readlink -f "$(dirname "$0")")" || exit 9
|
||||
|
||||
read -r base_image base_tag <<< \
|
||||
"$(sed -nr 's/^FROM\s+([^:]+):?((\w+).*)\s*$/\1 \3/p' Dockerfile | head -1)"
|
||||
# shellcheck disable=2207
|
||||
platforms=($(get_available_architectures "$base_image" "$base_tag"))
|
||||
|
||||
PUSH_IMAGE=true
|
||||
BUILD_TYPE=manual
|
||||
|
||||
if [[ "$TRAVIS" == "true" ]]
|
||||
then
|
||||
BUILD_TYPE=travis
|
||||
elif [[ "$GITHUB_ACTIONS" == "true" ]]
|
||||
then
|
||||
BUILD_TYPE=github
|
||||
fi
|
||||
|
||||
docker buildx build \
|
||||
--platform "$(array_join "," "${platforms[@]}")" \
|
||||
--output "type=image,push=${PUSH_IMAGE}" \
|
||||
--no-cache \
|
||||
--label=build-type="$BUILD_TYPE" \
|
||||
--label=built-on="$HOSTNAME" \
|
||||
--tag "${IMAGE_NAME}:latest" \
|
||||
.
|
||||
fi
|
||||
@@ -25,4 +25,4 @@ jobs:
|
||||
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||
run: |
|
||||
curl -fsSL https://raw.githubusercontent.com/pschmitt/ci-setup-docker-buildx/master/setup.sh | bash
|
||||
./buildx.sh
|
||||
./.github/workflows/build.sh
|
||||
|
||||
Reference in New Issue
Block a user