Files
IronFox/scripts/ci-compress.sh
T
celenity 221059475c feat: Clean-up/re-organize CI (notably, CI now uses its own dedicated separate scripts for jobs, to improve control and portability, and also quality as they are subject to our linting)
This also reduces reliance on GitLab-specific CI env vars/functionality in general, and adds logic to ensure our CI scripts are only called from CI (translation: when `IRONFOX_CI` is set to `1`), as well as ensures external CI env vars are properly set

Signed-off-by: celenity <celenity@celenity.dev>
2026-08-13 05:31:04 +00:00

70 lines
1.7 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
if [[ -z "${IRONFOX_CI+x}" ]]; then
export IRONFOX_CI=1
fi
source $(dirname $0)/env.sh
# Include utilities
source "${IRONFOX_UTILS}"
# Set verbosity
if [[ "${IRONFOX_VERBOSE}" == 1 ]]; then
set -x
else
set +x
fi
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