Files
IronFox/scripts/ci-compress.sh
celenity 31cfc61fa2 feat: Set env vars for additional utilities + do not use the system PATH (in favor of our own custom PATH)
This should improve security (by ensuring we always specify the full paths to executables, and preventing use of unintended/undesired system executables), control (by allowing users to specify where these executables should be located), and consistency/reproducability

Signed-off-by: celenity <celenity@celenity.dev>
2026-07-17 02:46:08 +00:00

58 lines
1.5 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}"
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 readonly 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