From f1b4bc3cb23c90c41cdf2d5dfec28ae0d133068b Mon Sep 17 00:00:00 2001 From: m4xx1m Date: Sat, 10 Oct 2026 16:52:00 +0300 Subject: [PATCH] Switch to standard akkuman/gitea-release-action@v1 and remove release.js --- .gitea/release.js | 94 ------------------------------------- .gitea/workflows/build.yaml | 12 ++--- 2 files changed, 5 insertions(+), 101 deletions(-) delete mode 100644 .gitea/release.js diff --git a/.gitea/release.js b/.gitea/release.js deleted file mode 100644 index 201b508..0000000 --- a/.gitea/release.js +++ /dev/null @@ -1,94 +0,0 @@ -const fs = require('fs'); - -async function main() { - const token = process.env.GITEA_TOKEN; - const url = process.env.GITEA_URL || 'http://gitea:3000'; - const repo = process.env.REPO; - const tag = process.env.TAG; - const filePath = 'dist/gq-to-org-redirector.zip'; - const fileName = 'gq-to-org-redirector.zip'; - - if (!token || !repo || !tag) { - throw new Error(`Missing required env vars: GITEA_TOKEN, REPO, TAG`); - } - - if (!fs.existsSync(filePath)) { - throw new Error(`File not found: ${filePath}`); - } - - const apiBase = `${url}/api/v1/repos/${repo}`; - const headers = { - 'Authorization': `token ${token}`, - 'Content-Type': 'application/json' - }; - - console.log(`Checking release for tag ${tag} at ${apiBase}...`); - - // 1. Get or create release - let release; - const getRes = await fetch(`${apiBase}/releases/tags/${encodeURIComponent(tag)}`, { headers }); - if (getRes.ok) { - release = await getRes.json(); - console.log(`Found existing release: ID ${release.id}`); - } else { - console.log(`Release not found. Creating release for tag ${tag}...`); - const createRes = await fetch(`${apiBase}/releases`, { - method: 'POST', - headers, - body: JSON.stringify({ - tag_name: tag, - name: `Release ${tag}`, - body: `Automated release of ${fileName} for ${tag}`, - draft: false, - prerelease: false - }) - }); - if (!createRes.ok) { - throw new Error(`Failed to create release: ${createRes.status} ${await createRes.text()}`); - } - release = await createRes.json(); - console.log(`Created release: ID ${release.id}`); - } - - // 2. Remove existing asset with same name if already uploaded - const assetsRes = await fetch(`${apiBase}/releases/${release.id}/assets`, { headers }); - if (assetsRes.ok) { - const assets = await assetsRes.json(); - for (const asset of assets) { - if (asset.name === fileName) { - console.log(`Deleting existing asset: ${asset.name} (ID: ${asset.id})`); - await fetch(`${apiBase}/releases/${release.id}/assets/${asset.id}`, { - method: 'DELETE', - headers - }); - } - } - } - - // 3. Upload new asset - console.log(`Uploading ${fileName} (${fs.statSync(filePath).size} bytes)...`); - const fileBuffer = fs.readFileSync(filePath); - const blob = new Blob([fileBuffer], { type: 'application/zip' }); - const formData = new FormData(); - formData.append('attachment', blob, fileName); - - const uploadRes = await fetch(`${apiBase}/releases/${release.id}/assets?name=${encodeURIComponent(fileName)}`, { - method: 'POST', - headers: { - 'Authorization': `token ${token}` - }, - body: formData - }); - - if (!uploadRes.ok) { - throw new Error(`Failed to upload asset: ${uploadRes.status} ${await uploadRes.text()}`); - } - - const uploaded = await uploadRes.json(); - console.log(`Release published successfully! Asset: ${uploaded.name} (Download URL: ${uploaded.browser_download_url})`); -} - -main().catch(err => { - console.error('Error during release publication:', err); - process.exit(1); -}); diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 431c4d3..64c332d 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -26,11 +26,9 @@ jobs: name: gq-to-org-redirector path: dist/gq-to-org-redirector.zip - - name: Publish to Gitea Releases + - name: Publish Release if: startsWith(github.ref, 'refs/tags/v') - env: - GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITEA_URL: http://gitea:3000 - REPO: ${{ github.repository }} - TAG: ${{ github.ref_name }} - run: node .gitea/release.js + uses: akkuman/gitea-release-action@v1 + with: + files: dist/gq-to-org-redirector.zip + name: Release ${{ github.ref_name }}