Jenkins builds from apps.json, pushes to Forgejo registry, and archives Coolify image tags; compose installs all apps on first site creation.
35 lines
1 KiB
Bash
Executable file
35 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# shellcheck source=/dev/null
|
|
source .ci-bin/ci-env.sh
|
|
|
|
FRAPPE_BRANCH="${FRAPPE_BRANCH:-version-16}"
|
|
REGISTRY_IMAGE="${REGISTRY_IMAGE:-git.aexoradao.com/epistemophiliac/erpnext}"
|
|
GIT_SHA="$(git rev-parse --short HEAD)"
|
|
IMAGE_TAG="${IMAGE_TAG:-main-${GIT_SHA}}"
|
|
CACHE_BUST="$(sha256sum apps.json | awk '{print $1}')"
|
|
|
|
export DOCKER_BUILDKIT=1
|
|
|
|
echo "=== Building ${REGISTRY_IMAGE}:${IMAGE_TAG} ==="
|
|
echo "FRAPPE_BRANCH=${FRAPPE_BRANCH}"
|
|
echo "apps.json sha256=${CACHE_BUST}"
|
|
|
|
$DOCKER build \
|
|
--build-arg="FRAPPE_BRANCH=${FRAPPE_BRANCH}" \
|
|
--build-arg="CACHE_BUST=${CACHE_BUST}" \
|
|
--secret=id=apps_json,src=apps.json \
|
|
--tag="${REGISTRY_IMAGE}:${IMAGE_TAG}" \
|
|
--tag="${REGISTRY_IMAGE}:main" \
|
|
--file=images/layered/Containerfile .
|
|
|
|
mkdir -p dist
|
|
echo "${REGISTRY_IMAGE}:${IMAGE_TAG}" > dist/image-reference.txt
|
|
cat > dist/coolify-image.env <<EOF
|
|
CUSTOM_IMAGE=${REGISTRY_IMAGE}
|
|
CUSTOM_TAG=${IMAGE_TAG}
|
|
PULL_POLICY=always
|
|
EOF
|
|
|
|
echo "Built ${REGISTRY_IMAGE}:${IMAGE_TAG} and ${REGISTRY_IMAGE}:main"
|