'Generic Commit'
Some checks failed
Build-Test-Publish / build (push) Has been cancelled

This commit is contained in:
Your Name
2025-06-14 23:26:33 +12:00
parent 44c5aff7c7
commit e2883c45e0
3 changed files with 71 additions and 6 deletions

View File

@@ -7,7 +7,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
echo "Publishing simple-object-server to gitea.jde.nz/public/simple-object-server:latest"
PROJECT="simple-object-server"
[[ -n $SOS_WRITE_TOKEN ]] || die "SOS_WRITE_TOKEN not specified"
# FUNCTIONS
function title() {
@@ -28,9 +28,12 @@ function die() {
}
# Create buildx builder if it doesn't exist
docker buildx create --name ${PROJECT}-multiarch --use \
--driver-opt env.BUILDKIT_MAX_PARALLELISM=4 \
2>/dev/null || docker buildx use ${PROJECT}-multiarch
if ! docker buildx ls | grep -q "${PROJECT}-multiarch"; then
docker buildx create --name ${PROJECT}-multiarch --use \
--driver-opt env.BUILDKIT_MAX_PARALLELISM=4
else
docker buildx use ${PROJECT}-multiarch
fi
function build() {
local PLATFORM="$1"
@@ -47,6 +50,8 @@ function build() {
--build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
--output "${SCRIPT_DIR}/output/${OSARCH}" \
--platform "${PLATFORM}" \
--cache-from type=local,src=/tmp/.buildx-cache \
--cache-to type=local,dest=/tmp/.buildx-cache,mode=max \
"${SCRIPT_DIR}"
mv "${SCRIPT_DIR}/output/${OSARCH}/${PROJECT}" "${SCRIPT_DIR}/output/${PROJECT}-${OSARCH}"
@@ -57,9 +62,25 @@ CMAKE_BUILD_TYPE="Release"
rm -rf "${SCRIPT_DIR}/output"
mkdir -p "${SCRIPT_DIR}/output"
mkdir -p /tmp/.buildx-cache
build "linux/amd64"
build "linux/arm64"
# Temporarily disabled - Windows cross-compilation needs different approach
# build "windows/amd64"
[ -f "${SCRIPT_DIR}/output/${PROJECT}-linux-amd64" ] || die "${PROJECT}-linux-amd64 not found"
[ -f "${SCRIPT_DIR}/output/${PROJECT}-linux-arm64" ] || die "${PROJECT}-linux-arm64 not found"
# uplaod to getbin.xyz
# # download the sos binary
SOS="${SCRIPT_DIR}/temp/sos"
mkdir -p "${SCRIPT_DIR}/temp"
trap 'rm -rf "${SCRIPT_DIR}/temp"' EXIT
curl -L -o "${SOS}" "https://getbin.xyz/sos"
chmod +x "${SOS}"
"${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/output/${PROJECT}-linux-amd64" "${PROJECT}:amd64"
"${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/output/${PROJECT}-linux-arm64" "${PROJECT}:arm64"
"${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/install.sh" "simple-object-server-install:latest"