Files
simple-object-server/publish.sh
Your Name 7aa040be98
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 57s
Build-Test-Publish / build (linux/arm64) (push) Successful in 1m19s
Build-Test-Publish / create-manifest (push) Successful in 13s
'Generic Commit'
2025-06-15 15:51:41 +12:00

57 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
ARCH=$(uname -m)
TEMP_DIR="${SCRIPT_DIR}/temp"
SOS="${TEMP_DIR}/sos"
echo "Publishing simple-object-server to gitea.jde.nz/public/simple-object-server:latest"
function die() {
title "error: $1"
exit 1
}
[[ -n $SOS_WRITE_TOKEN ]] || die "SOS_WRITE_TOKEN not specified"
# clear output dir
rm -rf "${SCRIPT_DIR}/output"
mkdir -p "${SCRIPT_DIR}/output"
# build release version
export CMAKE_BUILD_TYPE="Release"
export PROJECT="simple-object-server"
docker build \
-t "${PROJECT}-build" \
-f "${SCRIPT_DIR}/Dockerfile.dropshell-build" \
--build-arg PROJECT="${PROJECT}" \
--build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
--output "${SCRIPT_DIR}/output" \
"${SCRIPT_DIR}"
[ -f ${SCRIPT_DIR}/output/simple-object-server ] || die "Build failed."
# download the sos binary
mkdir -p "${TEMP_DIR}"
trap 'rm -rf "${TEMP_DIR}"' EXIT
curl -L -o "${SOS}" "https://getbin.xyz/sos"
chmod +x "${SOS}"
# upload arch-specific binary
"${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/output/${PROJECT}" "${PROJECT}:latest-${ARCH}"
# upload generic install script (ok if multiple times as we iterate through arch's)
"${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/install.sh" "simple-object-server-install:latest"
# create and upload the arch-specific docker image
IMAGE_NAME="gitea.jde.nz/public/simple-object-server:latest-${ARCH}"
docker build \
-f "${SCRIPT_DIR}/Dockerfile.sos" \
-t "${IMAGE_NAME}" \
"${SCRIPT_DIR}"
docker push "${IMAGE_NAME}"