mirror of
https://github.com/Icinga/docker-icingaweb2.git
synced 2025-10-23 04:50:59 +02:00
This commit introduces an explicit build mode in get-mods.sh that determines how the versions of external modules are selected. Possible modes are: - release: chooses latest release for each module - snapshot: uses a snapshot/development version for each module (if available) In action.bash, the mode is automatically set based on the GITHUB_REF variable. For tags starting with "v" (i.e. version tags like v2.9.0) it is release, other tag names are not supported. For branches it is snapshot.
89 lines
1.8 KiB
Bash
Executable File
89 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Icinga Web 2 Docker image | (c) 2020 Icinga GmbH | GPLv2+
|
|
set -exo pipefail
|
|
|
|
usage() {
|
|
cat >&2 <<EOF
|
|
Usage: get-mods.sh <release|snapshot>
|
|
|
|
release: download the latest release version of all external modules
|
|
snapshot: download a snapshot/development version of all external modules
|
|
EOF
|
|
exit 1
|
|
}
|
|
|
|
get_tag () {
|
|
if git -C dockerweb2-temp tag |grep -qvFe -; then # ex. RCs
|
|
git -C dockerweb2-temp tag --sort=-version:refname |grep -vFe - |head -n 1
|
|
else
|
|
git -C dockerweb2-temp tag --sort=-version:refname |grep -Fe - |head -n 1
|
|
fi
|
|
}
|
|
|
|
get_special () {
|
|
if [ ! -e "$2" ]; then
|
|
rm -rf dockerweb2-temp
|
|
git clone --bare "https://github.com/Icinga/${1}.git" dockerweb2-temp
|
|
|
|
case "$MODE" in
|
|
release)
|
|
REF="$(get_tag)"
|
|
;;
|
|
snapshot)
|
|
case "$2" in
|
|
icingaweb2/modules/incubator)
|
|
# "HINT: Do NOT install the GIT master, it will not work!"
|
|
# https://github.com/Icinga/icingaweb2-module-incubator/blob/master/README.md
|
|
REF="$(get_tag)"
|
|
;;
|
|
icinga-php/*)
|
|
# Special branch that contains vendored dependencies missing in HEAD
|
|
REF=snapshot/nightly
|
|
;;
|
|
*)
|
|
REF=HEAD
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
git -C dockerweb2-temp archive "--prefix=${2}/" "$REF" |tar -x
|
|
rm -rf dockerweb2-temp
|
|
fi
|
|
}
|
|
|
|
get_lib () {
|
|
get_special "icinga-php-$1" "icinga-php/$2"
|
|
}
|
|
|
|
get_altname () {
|
|
get_special "$1" "icingaweb2/modules/$2"
|
|
}
|
|
|
|
get_mod () {
|
|
get_altname "icingaweb2-module-$1" "$1"
|
|
}
|
|
|
|
MODE="$1"
|
|
case "$MODE" in
|
|
release|snapshot) ;;
|
|
*) usage ;;
|
|
esac
|
|
|
|
get_lib library ipl
|
|
get_lib thirdparty vendor
|
|
get_mod audit
|
|
get_mod aws
|
|
get_mod businessprocess
|
|
get_mod cube
|
|
get_mod director
|
|
get_mod fileshipper
|
|
get_mod graphite
|
|
get_altname icingadb-web icingadb
|
|
get_mod idoreports
|
|
get_mod incubator
|
|
get_mod pdfexport
|
|
get_mod reporting
|
|
get_mod vspheredb
|
|
get_mod x509
|