From 6408e0c923c6fb465da436f15be77d4036021b71 Mon Sep 17 00:00:00 2001 From: Ivan Carlos de Almeida Date: Sun, 21 Dec 2025 21:01:44 -0300 Subject: [PATCH] update release_build to greate zip file on releases --- .gitea/workflows/release_build.yml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/release_build.yml b/.gitea/workflows/release_build.yml index 6a6ca31..4aab442 100644 --- a/.gitea/workflows/release_build.yml +++ b/.gitea/workflows/release_build.yml @@ -6,7 +6,7 @@ on: - main workflow_dispatch: schedule: - - cron: '28 5 * * *' + - cron: "28 5 * * *" # workflow_run support in Gitea can be tricky, keeping it but might need adjustment workflow_run: workflows: ["Sync Repo"] @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest container: image: catthehacker/ubuntu:act-latest - + permissions: contents: write packages: write @@ -139,7 +139,7 @@ jobs: LATEST_RELEASE_TAG=$(curl -sL -H "Accept: application/json" \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ "${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/latest" | jq -r .tag_name) - + if [ -z "$LATEST_RELEASE_TAG" ] || [ "$LATEST_RELEASE_TAG" = "null" ]; then LATEST_RELEASE_TAG="v1.0.0" fi @@ -245,7 +245,7 @@ jobs: AUTHOR="Ivan Carlos" VERSION_FILE="manifest.json" UPSTREAM_SHA="${{ steps.check_upstream.outputs.upstream_sha }}" - + if [ -f "$VERSION_FILE" ]; then jq --arg v "$VERSION" \ --arg a "$AUTHOR" \ @@ -265,6 +265,11 @@ jobs: git commit -m "Update manifest version to ${{ steps.version.outputs.VERSION }} [▶️]" || echo "Nothing to commit" git push origin main + - name: 🛠 Install zip + if: steps.check_commits.outputs.commit_count != '0' + run: | + apt-get update && apt-get install -y zip + - name: 📦 Create ZIP package (excluding certain files) if: steps.check_commits.outputs.commit_count != '0' run: | @@ -279,11 +284,11 @@ jobs: run: | TAG_NAME="v${{ steps.version.outputs.VERSION }}" RELEASE_NAME="${{ steps.version.outputs.REPO_NAME }} v${{ steps.version.outputs.VERSION }}" - + # Construct Markdown body safely using env var # We use printf to avoid interpreting backslashes in the file list BODY=$(printf "### Changelog\nFiles changed in this release:\n%s" "$CHANGELOG_LIST") - + # Create JSON payload using jq jq -n \ --arg tag_name "$TAG_NAME" \ @@ -299,13 +304,13 @@ jobs: -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Content-Type: application/json" \ -d @release_payload.json > api_response.json - + echo "DEBUG: API Response:" cat api_response.json || true - + RELEASE_ID=$(jq -r .id api_response.json) echo "RELEASE_ID=$RELEASE_ID" >> "$GITHUB_OUTPUT" - + if [ "$RELEASE_ID" == "null" ] || [ -z "$RELEASE_ID" ]; then echo "Failed to create release. Response content:" cat api_response.json @@ -318,7 +323,7 @@ jobs: RELEASE_ID="${{ steps.create_release.outputs.RELEASE_ID }}" ZIP_NAME="${{ steps.version.outputs.ZIP_NAME }}" FILE_PATH="./$ZIP_NAME" - + curl -s -X POST "${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/$RELEASE_ID/assets" \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Content-Type: application/zip" \ @@ -329,8 +334,8 @@ jobs: - name: Clone Upstream Code (if needed) if: steps.check_commits.outputs.commit_count != '0' && (steps.check_upstream.outputs.upstream_needs_update == 'true' || steps.check_upstream.outputs.repo_url != '') run: | - rm -rf upstream_src - git clone --depth 1 --branch ${{ steps.check_upstream.outputs.repo_branch }} ${{ steps.check_upstream.outputs.repo_url }} upstream_src + rm -rf upstream_src + git clone --depth 1 --branch ${{ steps.check_upstream.outputs.repo_branch }} ${{ steps.check_upstream.outputs.repo_url }} upstream_src - name: 🔍 Check if Dockerfile exists if: steps.check_commits.outputs.commit_count != '0' || steps.check_upstream.outputs.upstream_needs_update == 'true'