From e5fb692dfc8ef411c5a07f7a68a9b0aad31c851e Mon Sep 17 00:00:00 2001 From: Elmar Kresse Date: Tue, 20 Jan 2026 01:23:36 +0100 Subject: [PATCH] ci: Add Gitea workflow to build, package, upload to Gitea Packages, and create a release for the Firefox extension. --- .gitea/workflows/build.yaml | 39 ++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index ffbb623..8ef566e 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -38,7 +38,7 @@ jobs: mkdir -p build # Package the extension as XPI (which is just a ZIP file) - zip -r build/container-bookmarks-${{ steps.version.outputs.version }}.xpi \ + zip -r build/firefox-containerbookmarks-${{ steps.version.outputs.version }}.xpi \ manifest.json \ background.js \ icons/ \ @@ -51,20 +51,33 @@ jobs: -x ".gitea/*" # Also create a ZIP for convenience - cp build/container-bookmarks-${{ steps.version.outputs.version }}.xpi \ - build/container-bookmarks-${{ steps.version.outputs.version }}.zip + cp build/firefox-containerbookmarks-${{ steps.version.outputs.version }}.xpi \ + build/firefox-containerbookmarks-${{ steps.version.outputs.version }}.zip - name: Upload to Gitea Packages run: | - echo "Server URL: ${GITHUB_SERVER_URL}" - echo "Repository Owner: ${GITHUB_REPOSITORY_OWNER}" - echo "Repository: ${GITHUB_REPOSITORY}" - PACKAGE_URL="${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/container-bookmarks/${{ steps.version.outputs.version }}/container-bookmarks-${{ steps.version.outputs.version }}.xpi" - echo "Package URL: ${PACKAGE_URL}" - curl --fail -v \ + VERSION="${{ steps.version.outputs.version }}" + PACKAGE_URL="${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/firefox-containerbookmarks/${VERSION}/firefox-containerbookmarks-${VERSION}.xpi" + + # Try to upload, if 409 (already exists) try to delete and re-upload + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: token ${{ secrets.ACCESS_TOKEN }}" \ - --upload-file "build/container-bookmarks-${{ steps.version.outputs.version }}.xpi" \ - "${PACKAGE_URL}" + --upload-file "build/firefox-containerbookmarks-${VERSION}.xpi" \ + "${PACKAGE_URL}") + + if [ "$HTTP_CODE" = "409" ]; then + echo "Package already exists, deleting and re-uploading..." + curl -X DELETE -H "Authorization: token ${{ secrets.ACCESS_TOKEN }}" "${PACKAGE_URL}" + curl --fail \ + -H "Authorization: token ${{ secrets.ACCESS_TOKEN }}" \ + --upload-file "build/firefox-containerbookmarks-${VERSION}.xpi" \ + "${PACKAGE_URL}" + elif [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "200" ]; then + echo "Upload failed with HTTP code: $HTTP_CODE" + exit 1 + fi + + echo "✅ Package uploaded successfully: ${PACKAGE_URL}" release: runs-on: docker @@ -88,8 +101,8 @@ jobs: - name: Download from Gitea Packages run: | mkdir -p build - curl --fail -o "build/container-bookmarks-${{ steps.version.outputs.version }}.xpi" \ - "${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/container-bookmarks/${{ steps.version.outputs.version }}/container-bookmarks-${{ steps.version.outputs.version }}.xpi" + curl --fail -o "build/firefox-containerbookmarks-${{ steps.version.outputs.version }}.xpi" \ + "${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/firefox-containerbookmarks/${{ steps.version.outputs.version }}/firefox-containerbookmarks-${{ steps.version.outputs.version }}.xpi" - name: Create Release uses: softprops/action-gh-release@v1