update ci
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Create a Gitea release for a tag and upload everything in out/.
|
||||
# Mirrors the repo's existing Gitea-API release convention.
|
||||
#
|
||||
# Config via env (or a local .env next to this script):
|
||||
# GITEA_SERVER_URL, GITEA_REPOSITORY, GITEA_TOKEN
|
||||
# Tag: passed as $1 (in CI: gitea.ref_name), else derived from the current commit.
|
||||
#
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Optional: load credentials from a local .env for manual runs.
|
||||
[ -f .env ] && source ./.env
|
||||
|
||||
: "${GITEA_SERVER_URL:?}"
|
||||
: "${GITEA_REPOSITORY:?}"
|
||||
: "${GITEA_TOKEN:?}"
|
||||
|
||||
TAG="${1:-$(git tag --points-at HEAD | head -n1)}"
|
||||
[ -n "$TAG" ] || { echo "No tag (pass as arg, or run on a tagged commit)"; exit 1; }
|
||||
|
||||
OUT_DIR="$(pwd)/out"
|
||||
API="${GITEA_SERVER_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases"
|
||||
|
||||
echo "==> Creating release $TAG"
|
||||
RESP=$(curl -s -X POST "$API" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"tag_name\": \"${TAG}\", \"name\": \"HTTP Toolkit ${TAG}\", \"body\": \"Self-hosted single-file build.\"}")
|
||||
|
||||
RID=$(echo "$RESP" | jq -r '.id')
|
||||
if [ "$RID" = "null" ] || [ -z "$RID" ]; then
|
||||
echo "!! Failed to create release:"; echo "$RESP"; exit 1
|
||||
fi
|
||||
echo "==> Release id $RID"
|
||||
|
||||
shopt -s nullglob
|
||||
for f in "$OUT_DIR"/*; do
|
||||
[ -f "$f" ] || continue
|
||||
name=$(basename "$f")
|
||||
echo "==> Uploading $name"
|
||||
curl -s -X POST "${API}/${RID}/assets?name=${name}" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "Content-Type: application/octet-stream" \
|
||||
--data-binary "@${f}" > /dev/null
|
||||
done
|
||||
echo "==> Release complete."
|
||||
Reference in New Issue
Block a user