Jaypore CI

> Jaypore CI: Minimal, Offline, Local CI system.
Log | Files | Refs | README

build_website.sh (1710B)


      1 #!/usr/bin/env bash
      2 set -euo pipefail
      3 
      4 : "${DOCKER_BUILDKIT:=1}"
      5 
      6 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
      7 REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
      8 PUBLIC_DIR="${REPO_ROOT}/www_jci/public"
      9 RELEASES_DIR="${PUBLIC_DIR}/releases"
     10 
     11 IMAGE_NAME="jci-stagit"
     12 CONTAINER_NAME="jci-stagit-builder"
     13 
     14 # Ensure releases directory exists
     15 mkdir -p "${RELEASES_DIR}"
     16 
     17 # Build docker image with stagit (using inline Dockerfile via here-doc)
     18 if ! docker image inspect "${IMAGE_NAME}">/dev/null 2>&1; then
     19   tmp_dir="$(mktemp -d)"
     20   mkdir -p "${tmp_dir}/repo" "${tmp_dir}/public_assets"
     21   cp -R "${REPO_ROOT}"/.[!.]* "${tmp_dir}/repo" 2>/dev/null || true
     22   cp -R "${REPO_ROOT}"/* "${tmp_dir}/repo"
     23   cp "${PUBLIC_DIR}/assets/logo.png" "${tmp_dir}/public_assets/logo.png"
     24   cp "${REPO_ROOT}/www_jci/Dockerfile" "${tmp_dir}/Dockerfile"
     25   docker build -t "${IMAGE_NAME}" "${tmp_dir}"
     26   rm -rf "${tmp_dir}"
     27 fi
     28 
     29 # Prepare context for stagit run
     30 BUILD_CONTEXT="$(mktemp -d)"
     31 mkdir -p "${BUILD_CONTEXT}/repo" "${BUILD_CONTEXT}/public_assets"
     32 cp -a "${REPO_ROOT}/." "${BUILD_CONTEXT}/repo"
     33 cp "${PUBLIC_DIR}/assets/logo.png" "${BUILD_CONTEXT}/public_assets/logo.png"
     34 if [ -f "${REPO_ROOT}/ui/src/libs/git.style.css" ]; then
     35   cp "${REPO_ROOT}/ui/src/libs/git.style.css" "${BUILD_CONTEXT}/stagit_style.css"
     36 else
     37   cat <<'EOF' > "${BUILD_CONTEXT}/stagit_style.css"
     38 :root {font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;}
     39 EOF
     40 fi
     41 
     42 docker run --rm \
     43   -v "${BUILD_CONTEXT}/repo:/tmp/repo" \
     44   -v "${PUBLIC_DIR}/assets/logo.png:/data/www_jci/public/assets/logo.png" \
     45   -v "${RELEASES_DIR}:/gitrepo" \
     46   "${IMAGE_NAME}"
     47 
     48 rm -rf "${BUILD_CONTEXT}"
     49 
     50 echo "Releases site generated at ${RELEASES_DIR}"