Files
IronFox/scripts/ci-compress.sh
T
celenity 57061ca247 feat: overhaul/refine scripts
Notably, this adds checks to ensure necessary executables and environment variables are available and set-up properly, adds new utilities files for certain functionality (to avoid redundancy/duplication)

Signed-off-by: celenity <celenity@celenity.dev>
2026-08-31 03:02:23 +00:00

63 lines
1.6 KiB
Bash

#!/bin/bash
## This script is expected to be executed in a CI environment, or possibly in our Docker image instance
## DO NOT execute this manually!
set -euo pipefail
# Set-up our environment
source $(dirname $0)/env.sh || exit 1
# Include utilities
source "${IRONFOX_UTILS}" || exit 1
# Set verbosity
set_verbosity
if [[ "${IRONFOX_CI}" != 1 ]]; then
echo_red_text "ERROR: '$0' should only be called from CI!"
exit 1
fi
readonly artifact_name="$1"
readonly artifact_archive="${artifact_name}.tar.xz"
readonly artifact_path="${IRONFOX_ARTIFACTS}/${artifact_archive}"
function ironfox_package_artifacts() {
# For debugging purposes
echo "Listing available artifacts"
"${IRONFOX_FIND}" "${IRONFOX_ARTIFACTS}"
local -r includes=$(echo "${IRONFOX_ARTIFACT_INCLUDES}" | tr ";" "\n")
local paths=()
for include in ${includes}; do
local path="${IRONFOX_ARTIFACTS}/${include}"
if [[ -e "${path}" ]]; then
echo "Including ${path}"
paths+=("${include}")
else
echo_red_text "Warning: ${path} does not exist!"
fi
done
if [[ ${#paths[@]} -eq 0 ]]; then
echo_red_text "No valid artifact paths found. Creating empty artifact."
"${IRONFOX_TOUCH}" "${artifact_path}"
return
fi
"${IRONFOX_MKDIR}" -p "${IRONFOX_ARTIFACTS}"
"${IRONFOX_TAR}" cvJf "${artifact_path}" -C "${IRONFOX_ARTIFACTS}" "${paths[@]}"
}
if [[ -z "${IRONFOX_ARTIFACT_INCLUDES+x}" ]]; then
echo_red_text "IRONFOX_ARTIFACT_INCLUDES has not been specified. Creating empty artifact."
"${IRONFOX_TOUCH}" "${artifact_path}"
else
ironfox_package_artifacts
fi
if [ "${IRONFOX_CI_BUILD_FAILED}" == 1 ]; then
exit 1
fi