Your Name 1ac00e83f8
Some checks failed
dropshell-build / build (push) Has been cancelled
'Generic Commit'
2025-06-14 22:07:46 +12:00

59 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
#make canonical
ROOT_DIR="$(cd "${SCRIPT_DIR}/../" &> /dev/null && pwd)"
export CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}"
# Function to build a project
build_project() {
local project="$1"
local platform="${2:-}"
local build_cmd
local tag
local output_dir
if [ -n "${platform}" ]; then
build_cmd=(docker buildx build "--platform" "${platform}")
local tag_suffix="${platform##*/}" # Extract arch from platform (e.g., linux/arm64 -> arm64)
tag="gitea.jde.nz/public/${project}-build-${tag_suffix}:test"
output_dir="${SCRIPT_DIR}/output/${tag_suffix}"
else
build_cmd=(docker build)
tag="gitea.jde.nz/public/${project}-build:test"
output_dir="${SCRIPT_DIR}/output/native"
fi
mkdir -p "${output_dir}"
"${build_cmd[@]}" \
-t "${tag}" \
-f "${SCRIPT_DIR}/Dockerfile.test-build" \
--build-arg PROJECT="${project}" \
--build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
--output "${output_dir}" \
"${SCRIPT_DIR}/${project}"
}
# Clean and prepare output directory
rm -rf "${SCRIPT_DIR}/output"
mkdir -p "${SCRIPT_DIR}/output"
# Build all projects
echo "Building ipdemo..."
build_project "ipdemo"
echo "Building ipdemo for aarch64..."
build_project "ipdemo" "linux/arm64"
echo "Building test_libs..."
build_project "test_libs"