This commit is contained in:
58
tests/build.sh
Executable file
58
tests/build.sh
Executable file
@ -0,0 +1,58 @@
|
||||
#!/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"
|
||||
|
Reference in New Issue
Block a user