Update Gitea workflow
Some checks failed
Build Release Binaries / build-and-release (push) Failing after 5m43s

This commit is contained in:
Salastil
2025-11-23 04:47:19 -05:00
parent 653326177c
commit 0f7f0219aa

View File

@@ -1,11 +1,11 @@
name: Build Release Binaries
on:
release:
types: [published]
push:
tags:
- "v*"
release:
types: [published]
permissions:
contents: write
@@ -28,76 +28,64 @@ jobs:
go-version-file: go.mod
cache: true
- name: Build all platform binaries
- name: Build Puppeteer bundle
run: |
chmod +x scripts/build_node_modules.sh
scripts/build_node_modules.sh
- name: Build platform binaries
run: |
mkdir -p dist
build() {
GOOS=$1 GOARCH=$2 EXT=$3
OUT="${BINARY_NAME}${EXT}"
echo "Building $1 $2 => $OUT"
env GOOS=$1 GOARCH=$2 CGO_ENABLED=0 go build -o "dist/${OUT}" .
GOOS="$1"
GOARCH="$2"
EXT="$3"
OUT="streamed-tui_${GOOS}_${GOARCH}${EXT}"
echo "Building ${OUT}"
env GOOS=$GOOS GOARCH=$GOARCH CGO_ENABLED=0 go build -o dist/${OUT} .
}
build linux amd64 ""
build linux arm64 ""
build darwin amd64 ""
build darwin arm64 ""
build linux amd64 ""
build linux arm64 ""
build darwin amd64 ""
build darwin arm64 ""
- name: Package binaries
- name: Create source tarball
run: |
cd dist
mkdir -p dist
git archive --format=tar.gz -o dist/streamed-tui_${GITHUB_REF_NAME}_source.tar.gz HEAD
pack() {
NAME="$1"
EXT="$2"
if [[ "$EXT" == "zip" ]]; then
zip "${NAME}.zip" "${BINARY_NAME}${3}"
else
tar -czf "${NAME}.tar.gz" "${BINARY_NAME}${3}"
fi
}
pack streamed-tui_linux_amd64 tar.gz ""
pack streamed-tui_linux_arm64 tar.gz ""
pack streamed-tui_darwin_amd64 tar.gz ""
pack streamed-tui_darwin_arm64 tar.gz ""
- name: Create release in Gitea
id: create_release
- name: Ensure release exists (create if missing)
id: ensure_release
env:
GITEA_TOKEN: ${{ secrets.CI_TOKEN }}
TAG: ${{ github.ref_name }}
REPO: ${{ github.repository }}
API_BASE: ${{ env.API_BASE }}
run: |
if [ -z "$GITEA_TOKEN" ]; then
echo "ERROR: Missing CI_TOKEN secret"
exit 1
fi
echo "Checking if release exists: $TAG"
echo "Creating release for tag: $TAG"
EXISTING=$(curl -s -H "Authorization: token ${GITEA_TOKEN}" \
"${API_BASE}/repos/${REPO}/releases/tags/${TAG}")
RESPONSE=$(curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"tag_name\": \"${TAG}\",
\"name\": \"Release ${TAG}\",
\"body\": \"Automated release for ${TAG}\",
\"draft\": false,
\"prerelease\": false
}" \
"${API_BASE}/repos/${REPO}/releases")
echo "RESPONSE=$RESPONSE"
RELEASE_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | head -1 | grep -o '[0-9]*')
echo "Release ID: $RELEASE_ID"
RELEASE_ID=$(echo "$EXISTING" | grep -o '"id":[0-9]*' | head -1 | grep -o '[0-9]*' || true)
if [ -z "$RELEASE_ID" ]; then
echo "ERROR: Failed to extract release ID"
echo "Release does not exist — creating"
RESPONSE=$(curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"${TAG}\",\"name\":\"Release ${TAG}\",\"draft\":false}" \
"${API_BASE}/repos/${REPO}/releases")
RELEASE_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | head -1 | grep -o '[0-9]*')
else
echo "Release already exists: $RELEASE_ID"
fi
if [ -z "$RELEASE_ID" ]; then
echo "Failed to create or fetch release"
exit 1
fi
@@ -106,20 +94,21 @@ jobs:
- name: Upload release assets
env:
GITEA_TOKEN: ${{ secrets.CI_TOKEN }}
RELEASE_ID: ${{ steps.create_release.outputs.release_id }}
RELEASE_ID: ${{ steps.ensure_release.outputs.release_id }}
API_BASE: ${{ env.API_BASE }}
REPO: ${{ github.repository }}
run: |
echo "Uploading assets..."
cd dist
echo "Uploading assets to release ${RELEASE_ID}"
for file in *; do
echo "Uploading $file..."
for file in dist/*; do
name=$(basename "$file")
echo "Uploading $name..."
curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/octet-stream" \
--data-binary @"$file" \
"${API_BASE}/repos/${REPO}/releases/${RELEASE_ID}/assets?name=$file"
"${API_BASE}/repos/${REPO}/releases/${RELEASE_ID}/assets?name=${name}"
echo ""
done
echo "All assets uploaded."