This commit is contained in:
Jean Staffe
2026-07-09 15:56:19 +00:00
parent 9fb1114ecc
commit b09ca30506
3 changed files with 103 additions and 36 deletions
Regular → Executable
+21 -20
View File
@@ -1,31 +1,32 @@
#!/usr/bin/env bash
set -euo pipefail
VERSION="${1:-latest}"
CADDY_VERSION="${1:-latest}"
# Build
./build.sh "$VERSION"
mkdir -p dist
# Récupère le nom de l'archive générée
ASSET="$(ls -t caddy-*-linux-amd64.tar.gz | head -n1)"
ARGS=()
while read -r module; do
[[ -z "$module" || "$module" =~ ^# ]] && continue
ARGS+=(--with "$module")
done < modules.txt
# Déduit la version depuis le nom du fichier
TAG="$(basename "$ASSET" | sed -E 's/^caddy-(.*)-linux-amd64\.tar\.gz$/\1/')"
if [[ "$CADDY_VERSION" == "latest" ]]; then
xcaddy build \
"${ARGS[@]}" \
--output dist/caddy
else
xcaddy build "$CADDY_VERSION" \
"${ARGS[@]}" \
--output dist/caddy
fi
echo "Publishing $TAG"
REAL_VERSION="$(dist/caddy version | awk '{print $1}')"
git tag -f "$TAG"
git push origin "$TAG" --force
ARCHIVE="caddy-${REAL_VERSION}-linux-amd64.tar.gz"
# Supprime la release si elle existe (ignore les erreurs)
tea release delete "$TAG" >/dev/null 2>&1 || true
# Crée la nouvelle release
tea release create \
--tag "$TAG" \
--title "$TAG" \
--note "Custom Caddy build with modules from modules.txt" \
--asset "$ASSET"
tar -C dist -czf "$ARCHIVE" caddy
echo
echo "✅ Release publiée : $TAG"
echo "Version : $REAL_VERSION"
echo "Archive : $ARCHIVE"
+37 -16
View File
@@ -1,35 +1,56 @@
#!/usr/bin/env bash
set -euo pipefail
echo "==> Installation des dépendances"
GITEA_HOST="git.jst.ovh"
GITEA_URL="https://${GITEA_HOST}"
echo "==> Installation des dépendances"
sudo apt update
sudo apt install -y \
git \
curl \
jq \
tar \
build-essential \
golang-go
git \
curl \
jq \
tar \
build-essential \
golang-go
echo "==> Installation de xcaddy"
export GOPATH="${HOME}/go"
export PATH="${PATH}:${GOPATH}/bin"
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
if ! command -v xcaddy >/dev/null 2>&1; then
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
fi
if ! grep -q 'HOME/go/bin' "${HOME}/.bashrc"; then
echo 'export PATH="$PATH:$HOME/go/bin"' >> "${HOME}/.bashrc"
echo 'export PATH="$PATH:$HOME/go/bin"' >> "${HOME}/.bashrc"
fi
echo "==> Installation de tea"
if ! command -v tea >/dev/null 2>&1; then
TMP_TEA="$(mktemp)"
curl -fsSL "https://dl.gitea.com/tea/main/tea-main-linux-amd64" -o "$TMP_TEA"
chmod +x "$TMP_TEA"
sudo mv "$TMP_TEA" /usr/local/bin/tea
fi
echo "==> Vérification de la connexion tea à ${GITEA_HOST}"
if tea login list 2>/dev/null | grep -q "${GITEA_HOST}"; then
echo "Connexion tea existante pour ${GITEA_HOST}"
else
echo "Aucune connexion tea trouvée pour ${GITEA_HOST}"
echo "Création d'une connexion tea..."
tea login add \
--name jst \
--url "${GITEA_URL}"
fi
echo
echo "Versions installées :"
echo "Versions :"
go version
"${HOME}/go/bin/xcaddy" version
xcaddy version
tea --version
echo
echo "✅ Environnement prêt."
echo "Recharge ton shell ou exécute :"
echo
echo 'export PATH="$PATH:$HOME/go/bin"'
echo "✅ Init terminé."
+45
View File
@@ -0,0 +1,45 @@
#!/usr/bin/env bash
set -euo pipefail
VERSION="${1:-latest}"
# Compile le binaire
./build.sh "$VERSION"
# Récupère l'archive générée
ASSET="$(ls -t caddy-*-linux-amd64.tar.gz | head -n1)"
# Déduit le tag depuis le nom de l'archive
TAG="$(basename "$ASSET" | sed -E 's/^caddy-(.*)-linux-amd64\.tar\.gz$/\1/')"
echo "Publishing release ${TAG}"
# Met à jour le tag Git
git tag -f "$TAG"
git push origin "$TAG" --force
# Supprime la release existante (si présente)
tea release delete "$TAG" >/dev/null 2>&1 || true
# Génère automatiquement la description
NOTES=$(
cat <<EOF
Custom Caddy build
Build date: $(date -u +"%Y-%m-%d %H:%M UTC")
## Included modules
$(sed '/^\s*#/d;/^\s*$/d;s/^/- /' modules.txt)
EOF
)
# Crée la release
tea release create \
--tag "$TAG" \
--title "$TAG" \
--note "$NOTES" \
--asset "$ASSET"
echo
echo "✅ Release publiée : ${TAG}"