diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +4 diff --git a/publish.sh b/publish.sh old mode 100644 new mode 100755 index 1d3b722..9ffe979 --- a/publish.sh +++ b/publish.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -e # Publishes bb64 (both arm64 and amd64) to the Gitea Releases page for the repository. @@ -10,4 +11,73 @@ # Prints a message to the user. +# Increment version +if [ ! -f VERSION ]; then + echo 1 > VERSION +else + v=$(cat VERSION) + v=$((v+1)) + echo $v > VERSION +fi +VERSION=$(cat VERSION) +TAG="v$VERSION" + +# Build binaries +./build.sh + +# Find repo info from .git/config +REPO_URL=$(git config --get remote.origin.url) +if [[ ! $REPO_URL =~ gitea ]]; then + echo "Remote origin is not a Gitea repository: $REPO_URL" >&2 + exit 1 +fi +# Extract base URL, owner, and repo +# Example: https://gitea.example.com/username/reponame.git +BASE_URL=$(echo "$REPO_URL" | sed -E 's#(https?://[^/]+)/.*#\1#') +OWNER=$(echo "$REPO_URL" | sed -E 's#.*/([^/]+)/[^/]+(\.git)?$#\1#') +REPO=$(echo "$REPO_URL" | sed -E 's#.*/([^/]+)(\.git)?$#\1#') + +API_URL="$BASE_URL/api/v1/repos/$OWNER/$REPO" + +# Check for GITEA_TOKEN +if [ -z "$GITEA_TOKEN_DEPLOY" ]; then + echo "GITEA_TOKEN_DEPLOY environment variable not set!" >&2 + exit 1 +fi + +# Create release +RELEASE_DATA=$(cat <&2 + exit 1 +fi + +# Upload binaries +for BIN in bb64 bb64.arm64; do + if [ -f "$BIN" ]; then + curl -s -X POST "$API_URL/releases/$RELEASE_ID/assets?name=$BIN" \ + -H "Content-Type: application/octet-stream" \ + -H "Authorization: token $GITEA_TOKEN_DEPLOY" \ + --data-binary @"$BIN" + echo "Uploaded $BIN to release $TAG." + fi +done + +echo "Published bb64 version $VERSION to $REPO_URL (tag $TAG) with binaries." +