summaryrefslogtreecommitdiffstats
path: root/fluent-bit/packaging/test-release-packages.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/packaging/test-release-packages.sh')
-rwxr-xr-xfluent-bit/packaging/test-release-packages.sh91
1 files changed, 91 insertions, 0 deletions
diff --git a/fluent-bit/packaging/test-release-packages.sh b/fluent-bit/packaging/test-release-packages.sh
new file mode 100755
index 00000000..c72a3452
--- /dev/null
+++ b/fluent-bit/packaging/test-release-packages.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+set -eux
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# Verify package install for a release version
+
+if [[ -f "$SCRIPT_DIR/.env" ]]; then
+ # shellcheck disable=SC1091
+ source "$SCRIPT_DIR/.env"
+fi
+
+CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-docker}
+INSTALL_SCRIPT=${INSTALL_SCRIPT:-https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh}
+
+INSTALL_CMD="curl $INSTALL_SCRIPT|sh"
+EXTRA_MOUNTS=""
+if [[ -f "$INSTALL_SCRIPT" ]]; then
+ ABSOLUTE_PATH=$(realpath "$INSTALL_SCRIPT")
+ EXTRA_MOUNTS="-v $ABSOLUTE_PATH:/install.sh:ro"
+ INSTALL_CMD="/install.sh"
+fi
+
+# Optional check for specific version
+VERSION_TO_CHECK_FOR=${VERSION_TO_CHECK_FOR:-}
+function check_version() {
+ if [[ -n "$VERSION_TO_CHECK_FOR" ]]; then
+ local LOG_FILE=$1
+ if grep -q "No package ${FLUENT_BIT_INSTALL_PACKAGE_NAME:-fluent-bit}-$VERSION_TO_CHECK_FOR available" "$LOG_FILE"; then
+ echo "WARNING: Unable to install version: $VERSION_TO_CHECK_FOR"
+ exit 1
+ fi
+
+ if ! grep -q "$VERSION_TO_CHECK_FOR" "$LOG_FILE"; then
+ echo "WARNING: Not using expected version: $VERSION_TO_CHECK_FOR"
+ exit 1
+ fi
+ fi
+}
+
+APT_TARGETS=("ubuntu:18.04"
+ "ubuntu:20.04"
+ "ubuntu:22.04"
+ "debian:10"
+ "debian:11")
+
+YUM_TARGETS=("centos:7"
+ "rockylinux:8"
+ "quay.io/centos/centos:stream9"
+ "amazonlinux:2"
+ "amazonlinux:2023")
+
+for IMAGE in "${YUM_TARGETS[@]}"
+do
+ echo "Testing $IMAGE"
+ LOG_FILE=$(mktemp)
+
+ # We do want word splitting for EXTRA_MOUNTS
+ # shellcheck disable=SC2086
+ $CONTAINER_RUNTIME run --rm -t \
+ -e FLUENT_BIT_PACKAGES_URL="${FLUENT_BIT_PACKAGES_URL:-https://packages.fluentbit.io}" \
+ -e FLUENT_BIT_PACKAGES_KEY="${FLUENT_BIT_PACKAGES_KEY:-https://packages.fluentbit.io/fluentbit.key}" \
+ -e FLUENT_BIT_RELEASE_VERSION="${FLUENT_BIT_RELEASE_VERSION:-}" \
+ -e FLUENT_BIT_INSTALL_COMMAND_PREFIX="${FLUENT_BIT_INSTALL_COMMAND_PREFIX:-}" \
+ -e FLUENT_BIT_INSTALL_PACKAGE_NAME="${FLUENT_BIT_INSTALL_PACKAGE_NAME:-fluent-bit}" \
+ -e FLUENT_BIT_INSTALL_YUM_PARAMETERS="${FLUENT_BIT_INSTALL_YUM_PARAMETERS:-}" \
+ $EXTRA_MOUNTS \
+ "$IMAGE" \
+ sh -c "$INSTALL_CMD && /opt/fluent-bit/bin/fluent-bit --version" | tee "$LOG_FILE"
+ check_version "$LOG_FILE"
+ rm -f "$LOG_FILE"
+done
+
+for IMAGE in "${APT_TARGETS[@]}"
+do
+ echo "Testing $IMAGE"
+ LOG_FILE=$(mktemp)
+ # We do want word splitting for EXTRA_MOUNTS
+ # shellcheck disable=SC2086
+ $CONTAINER_RUNTIME run --rm -t \
+ -e FLUENT_BIT_PACKAGES_URL="${FLUENT_BIT_PACKAGES_URL:-https://packages.fluentbit.io}" \
+ -e FLUENT_BIT_PACKAGES_KEY="${FLUENT_BIT_PACKAGES_KEY:-https://packages.fluentbit.io/fluentbit.key}" \
+ -e FLUENT_BIT_RELEASE_VERSION="${FLUENT_BIT_RELEASE_VERSION:-}" \
+ -e FLUENT_BIT_INSTALL_COMMAND_PREFIX="${FLUENT_BIT_INSTALL_COMMAND_PREFIX:-}" \
+ -e FLUENT_BIT_INSTALL_PACKAGE_NAME="${FLUENT_BIT_INSTALL_PACKAGE_NAME:-fluent-bit}" \
+ -e FLUENT_BIT_INSTALL_APT_PARAMETERS="${FLUENT_BIT_INSTALL_APT_PARAMETERS:-}" \
+ $EXTRA_MOUNTS \
+ "$IMAGE" \
+ sh -c "apt-get update && apt-get install -y gpg curl;$INSTALL_CMD && /opt/fluent-bit/bin/fluent-bit --version" | tee "$LOG_FILE"
+ check_version "$LOG_FILE"
+ rm -f "$LOG_FILE"
+done