Laminar/cfg/jobs/forgejo.run

59 lines
1.8 KiB
Bash
Executable file

#!/bin/env bash
# Upstream doc: https://forgejo.org/docs/latest/admin/installation-binary/
set -euxo pipefail
IMAGE="ubuntu/24.04"
DIST="${IMAGE%%/*}"
VER="${IMAGE#*/}"
VER="${VER%/*}"
VER="${VER//./-}"
UPSTREAM_VER="9.0.1"
UPSTREAM_VER_DASH="${UPSTREAM_VER//./-}"
UPSTREAM_NAME="forgejo"
SERIAL="1benoitjpnet"
CNAME="$UPSTREAM_NAME-$UPSTREAM_VER_DASH-$SERIAL-$DIST-$VER"
ALIAS="$UPSTREAM_NAME-$UPSTREAM_VER-$SERIAL"
cd "$WORKSPACE"
incus launch images:$IMAGE "$CNAME" --quiet
wait_network "$CNAME"
# Forgejo
incus exec "$CNAME" -- mkdir /etc/esh
incus exec "$CNAME" -- apt update
incus exec "$CNAME" -- apt upgrade -y
incus exec "$CNAME" -- apt install -y --no-install-recommends wget git git-lfs redis-server
incus exec "$CNAME" -- \
wget --quiet \
https://codeberg.org/forgejo/forgejo/releases/download/v${UPSTREAM_VER}/forgejo-${UPSTREAM_VER}-linux-amd64 \
-O /usr/local/bin/forgejo
incus exec "$CNAME" -- chmod +x /usr/local/bin/forgejo
incus exec "$CNAME" -- \
adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
incus exec "$CNAME" -- mkdir /var/lib/forgejo
incus exec "$CNAME" -- chown git:git /var/lib/forgejo
incus exec "$CNAME" -- chmod 750 /var/lib/forgejo
incus exec "$CNAME" -- mkdir /etc/forgejo
incus exec "$CNAME" -- chown root:git /etc/forgejo
incus exec "$CNAME" -- chmod 770 /etc/forgejo
incus exec "$CNAME" -- \
wget --quiet \
-O /etc/systemd/system/forgejo.service \
https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service
#incus file push setup.sh $CNAME/usr/local/bin/
laminarc run incus_publish \
CNAME="$CNAME" \
UPSTREAM_NAME=$UPSTREAM_NAME \
UPSTREAM_VER=$UPSTREAM_VER \
IMAGE=$IMAGE \
SERIAL=$SERIAL \
ALIAS=$ALIAS