docker-icingaweb2/action.bash
2023-01-24 11:26:29 +01:00

60 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Icinga Web 2 Docker image | (c) 2020 Icinga GmbH | GPLv2+
set -exo pipefail
TARGET=icinga/icingaweb2
mkimg () {
test -n "$TAG"
test -n "$MODE"
node /actions/checkout/dist/index.js |grep -vFe ::add-matcher::
git archive --prefix=icingaweb2/ HEAD |tar -x
/get-mods.sh "$MODE"
/composer.bash
cp -r /entrypoint /php.ini .
docker build -f /Dockerfile -t "${TARGET}:$TAG" .
STATE_isPost=1 node /actions/checkout/dist/index.js
}
push () {
test -n "$TAG"
if [ "$(tr -d '\n' <<<"$DOCKER_HUB_PASSWORD" |wc -c)" -gt 0 ]; then
docker login -u icingaadmin --password-stdin <<<"$DOCKER_HUB_PASSWORD"
docker push "${TARGET}:$TAG"
docker logout
fi
}
case "$GITHUB_EVENT_NAME" in
workflow_dispatch|schedule|release)
case "$GITHUB_REF" in
refs/tags/v*)
MODE=release
TAG=${GITHUB_REF#refs/tags/v}
;;
refs/heads/*)
MODE=snapshot
TAG=${GITHUB_REF#refs/heads/}
# Remove everything up to the first slash to remove prefixes like "feature/"
TAG=${TAG#*/}
;;
*)
echo "Unknown ref: $GITHUB_REF" >&2
false
;;
esac
mkimg
push
;;
*)
echo "Unknown event: $GITHUB_EVENT_NAME" >&2
false
;;
esac