60 lines
1.8 KiB
Bash
Executable File
60 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
IMAGE="${CODIT_DEB_IMAGE:-debian:stable}"
|
|
##PLATFORM="linux/386"
|
|
|
|
ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)"
|
|
PKG_DIR="${ROOT_DIR}/packaging"
|
|
WORK_DIR="${PKG_DIR}/tmp/deb-work"
|
|
OUT_DIR="${PKG_DIR}/DEB"
|
|
|
|
REPOKIT_DIR="${CODIT_REPOKIT_DIR:-${ROOT_DIR}/../repokit}"
|
|
REPOKIT_URL="${CODIT_REPOKIT_URL:-https://code.miflux.com/hyung-hwan/repokit}"
|
|
|
|
printf '%s\n' "Building frontend natively..."
|
|
cd "${ROOT_DIR}/frontend"
|
|
npm ci
|
|
npm run build
|
|
|
|
rm -rf "${WORK_DIR}"
|
|
mkdir -p "${WORK_DIR}" "${OUT_DIR}"
|
|
|
|
printf '%s\n' "Preparing Codit source tree for Debian package build..."
|
|
rsync -a --delete \
|
|
--exclude .git \
|
|
--exclude frontend/node_modules \
|
|
--exclude backend/codit-data \
|
|
--exclude backend/codit-data.bak \
|
|
--exclude backend/codit-server \
|
|
--exclude backend/codit-server.debug \
|
|
--exclude backend/codit-data-browser \
|
|
--exclude packaging/RPM \
|
|
--exclude packaging/DEB \
|
|
--exclude packaging/tmp \
|
|
"${ROOT_DIR}/" "${WORK_DIR}/codit/"
|
|
|
|
if [ -d "${REPOKIT_DIR}/.git" ] || [ -f "${REPOKIT_DIR}/go.mod" ]; then
|
|
printf '%s\n' "Copying repokit from ${REPOKIT_DIR}..."
|
|
rsync -a --delete --exclude .git "${REPOKIT_DIR}/" "${WORK_DIR}/repokit/"
|
|
else
|
|
printf '%s\n' "Cloning repokit from ${REPOKIT_URL}..."
|
|
git clone "${REPOKIT_URL}" "${WORK_DIR}/repokit"
|
|
rm -rf "${WORK_DIR}/repokit/.git"
|
|
fi
|
|
|
|
cp -a "${WORK_DIR}/codit/packaging/debian" "${WORK_DIR}/codit/debian"
|
|
|
|
docker run --rm \
|
|
-v "${WORK_DIR}:/work" \
|
|
-v "${OUT_DIR}:/out" \
|
|
"${IMAGE}" \
|
|
/bin/sh -ec '
|
|
mkdir -p /work
|
|
apt-get update
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential debhelper devscripts golang-go ca-certificates
|
|
dpkg-buildpackage -us -uc -b
|
|
mkdir -p /out
|
|
cp -a /work/*.deb /work/*.buildinfo /work/*.changes /out/ 2>/dev/null || true
|
|
'
|