fix: pipeline version v6

This commit is contained in:
dave 2025-04-04 16:06:00 +03:00
parent 0d03ee61e2
commit 5fb117340a

@ -26,6 +26,22 @@ jobs:
VERSION="0.1.1"
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Publishing version: $VERSION"
- name: Create and push Git tag
run: |
# Configure Git credentials
git config --global user.name "Gitea Actions"
git config --global user.email "actions@gitea.com"
# Create tag if it doesn't exist
if ! git tag | grep -q "v${VERSION}"; then
echo "Creating tag v${VERSION}..."
git tag -a "v${VERSION}" -m "Release version ${VERSION}"
git push origin "v${VERSION}"
echo "✅ Tag v${VERSION} created and pushed"
else
echo "✅ Tag v${VERSION} already exists"
fi
- name: Prepare release directory
run: mkdir -p ./release
@ -184,4 +200,75 @@ jobs:
if: ${{ success() }}
run: |
echo "🎉 Voca ${VERSION} published to Zapstore!"
echo "🔗 https://zapstore.dev/app/voca"
echo "🔗 https://zapstore.dev/app/voca"
- name: Create Gitea Release
run: |
# Ensure tag exists
echo "Creating Gitea release for tag v${VERSION}..."
# Extract release notes from CHANGELOG.md or create default notes
RELEASE_NOTES="Automated release for v${VERSION}. See CHANGELOG.md for details."
if [ -f "CHANGELOG.md" ]; then
echo "Extracting release notes from CHANGELOG.md..."
# Try to extract relevant section for this version
VERSION_NOTES=$(sed -n "/## v${VERSION}/,/## v/p" CHANGELOG.md | sed '/## v[0-9]/d')
if [ ! -z "$VERSION_NOTES" ]; then
RELEASE_NOTES="$VERSION_NOTES"
fi
fi
echo "Using release notes: $RELEASE_NOTES"
# Create JSON payload for release creation
PAYLOAD=$(cat <<EOF
{
"tag_name": "v${VERSION}",
"name": "v${VERSION}",
"body": "$RELEASE_NOTES",
"draft": false,
"prerelease": false
}
EOF
)
# Create the release via Gitea API
REPO_OWNER="voca"
REPO_NAME="voca"
API_URL="https://git.nostrdev.com/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/releases"
HTTP_RESPONSE=$(curl -s -w "%{http_code}" \
-X POST "$API_URL" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
-d "$PAYLOAD")
HTTP_BODY=${HTTP_RESPONSE:0:${#HTTP_RESPONSE}-3}
HTTP_STATUS=${HTTP_RESPONSE:${#HTTP_RESPONSE}-3}
if [ "$HTTP_STATUS" = "201" ] || [ "$HTTP_STATUS" = "200" ]; then
echo "✅ Gitea release created successfully!"
# Extract release ID for uploading assets
RELEASE_ID=$(echo "$HTTP_BODY" | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2)
# Upload APK as release asset
APK_NAME="voca-${VERSION}.apk"
if [ -f "./release/${APK_NAME}" ]; then
echo "Uploading APK to release..."
UPLOAD_URL="https://git.nostrdev.com/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/releases/${RELEASE_ID}/assets"
curl -X POST "$UPLOAD_URL" \
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
-H "Content-Type: application/octet-stream" \
-F "attachment=@./release/${APK_NAME}" \
-F "name=${APK_NAME}"
echo "✅ APK uploaded to Gitea release"
else
echo "❌ APK file not found for upload"
fi
else
echo "❌ Failed to create Gitea release. Status: $HTTP_STATUS, Response: $HTTP_BODY"
echo "API URL: $API_URL"
fi