From 8414f48106d2f6d06019b1c539bb4ab68ca81010 Mon Sep 17 00:00:00 2001 From: god Date: Sat, 4 Jul 2026 10:00:57 +0800 Subject: [PATCH] patch system: gitea-pages serving, MANIFEST_URL updated --- .gitea/workflows/deploy_patch.yml | 142 +++++++----------------------- tools/generate_version_json.py | 2 +- 2 files changed, 34 insertions(+), 110 deletions(-) diff --git a/.gitea/workflows/deploy_patch.yml b/.gitea/workflows/deploy_patch.yml index 3244a19..4b8b4ba 100644 --- a/.gitea/workflows/deploy_patch.yml +++ b/.gitea/workflows/deploy_patch.yml @@ -13,137 +13,61 @@ on: type: string jobs: - build-patch: - name: Build Patch + build-and-deploy: + name: Build & Deploy Patch runs-on: ubuntu-latest - timeout-minutes: 45 - env: - ACTIONS_STEP_DEBUG: true + timeout-minutes: 30 steps: - - name: Uji Koneksi Jaringan & SSH - run: | - echo "Test Ping ke IP Tailscale Gitea..." - ping -c 3 100.79.174.108 || echo "PING GAGAL: Runner tidak bisa akses jaringan Tailscale." - - echo "Test Koneksi Port SSH..." - nc -zv 100.79.174.108 222 || echo "PORT GAGAL: Port 222 tertutup dari dalam runner." - - - name: Setup SSH config for Gitea - run: | - mkdir -p ~/.ssh - echo -e "Host git.klud.top\n HostName 100.79.174.108\n Port 222\n StrictHostKeyChecking no" > ~/.ssh/config - chmod 600 ~/.ssh/config - - git config --global url."ssh://git@100.79.174.108:222/".insteadOf "git@git.klud.top:" - git config --global url."ssh://git@100.79.174.108:222/".insteadOf "https://git.klud.top/" - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ssh-key: ${{ secrets.TEKTON_SSH_KEY }} - ssh-strict: false + env: + GITEA_TOKEN: ${{ secrets.TEKTON_RELEASE_TOKEN }} + run: | + git clone http://god:$GITEA_TOKEN@52.74.133.55:3000/danchie/tekton.git . + git config user.name "god" + git config user.email "god@noreply.git.klud.top" - name: Setup Godot run: | - if [ -f /cache/Godot_v4.6-stable_linux.x86_64.zip ]; then - cp -a /cache/Godot_v4.6-stable_linux.x86_64.zip godot.zip - else - wget -q https://github.com/godotengine/godot-builds/releases/download/4.6-stable/Godot_v4.6-stable_linux.x86_64.zip -O godot.zip - fi - unzip -q godot.zip - mv Godot_v4.6-stable_linux.x86_64 /usr/local/bin/godot + wget -q https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_linux.x86_64.zip -O /tmp/godot.zip + unzip -q /tmp/godot.zip -d /tmp/godot + mv /tmp/godot/Godot_v4.7-stable_linux.x86_64 /usr/local/bin/godot chmod +x /usr/local/bin/godot - name: Install export templates run: | - mkdir -v -p ~/.local/share/godot/export_templates/4.6.stable - if [ -f /cache/Godot_v4.6-stable_export_templates.tpz ]; then - cp -a /cache/Godot_v4.6-stable_export_templates.tpz /tmp/godot-templates.tpz - else - wget -nv https://github.com/godotengine/godot-builds/releases/download/4.6-stable/Godot_v4.6-stable_export_templates.tpz -O /tmp/godot-templates.tpz - fi + wget -nv https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_export_templates.tpz -O /tmp/godot-templates.tpz unzip -o -q /tmp/godot-templates.tpz -d /tmp/godot-templates + mkdir -p ~/.local/share/godot/export_templates/4.7.stable if [ -d /tmp/godot-templates/templates ]; then - cp -a /tmp/godot-templates/templates/* ~/.local/share/godot/export_templates/4.6.stable/ + mv /tmp/godot-templates/templates/* ~/.local/share/godot/export_templates/4.7.stable/ else - cp -a /tmp/godot-templates/* ~/.local/share/godot/export_templates/4.6.stable/ + mv /tmp/godot-templates/* ~/.local/share/godot/export_templates/4.7.stable/ fi - - name: Run patch build script + - name: Generate version.json & bump version env: PATCH_VERSION: ${{ github.event.inputs.version }} PATCH_NOTES: ${{ github.event.inputs.notes }} run: | - python3 patch_version.py "$PATCH_VERSION" "$PATCH_NOTES" + python3 tools/generate_version_json.py --skip-changelog - - name: Export Windows patch + - name: Export patch PCK run: | - mkdir -p build - godot --headless --export-release "Windows Desktop" build/tekton_armageddon_patch_windows.exe + godot --headless --export-pack "Windows Desktop" build/patch.pck 2>&1 | tail -5 - - name: Export Linux patch - run: | - mkdir -p build - godot --headless --export-release "Linux/X11" build/tekton_armageddon_patch_linux.x86_64 - - - name: Upload patch artifacts - uses: actions/upload-artifact@v4 - with: - name: tekton-patch-${{ github.event.inputs.version }} - path: | - build/tekton_armageddon_patch_windows.exe - build/tekton_armageddon_patch_linux.x86_64 - retention-days: 30 - - deploy-patch: - name: Deploy Patch - runs-on: ubuntu-latest - timeout-minutes: 15 - needs: build-patch - permissions: - contents: write - steps: - - name: Download patch artifacts - uses: actions/download-artifact@v4 - with: - name: tekton-patch-${{ github.event.inputs.version }} - path: artifacts/patch - - - name: Get or create Gitea patch release - id: gitea_release + - name: Push to patches branch env: GITEA_TOKEN: ${{ secrets.TEKTON_RELEASE_TOKEN }} - TAG_NAME: patch-${{ github.event.inputs.version }} - RELEASE_NAME: "Patch ${{ github.event.inputs.version }}" - RELEASE_NOTES: ${{ github.event.inputs.notes }} run: | - API="https://git.klud.top/api/v1/repos/danchie/tekton/releases" - RELEASE_JSON=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$API/tags/$TAG_NAME") - RELEASE_ID=$(echo "$RELEASE_JSON" | python3 -c "import json,sys; print(json.load(sys.stdin).get('id',''))" 2>/dev/null) - if [ -z "$RELEASE_ID" ]; then - PAYLOAD=$(python3 -c "import json, os; print(json.dumps({'tag_name': os.environ['TAG_NAME'], 'name': os.environ['RELEASE_NAME'], 'body': os.environ['RELEASE_NOTES'], 'prerelease': True}))") - RELEASE_JSON=$(curl -s -X POST \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: application/json" \ - -d "$PAYLOAD" \ - "$API") - RELEASE_ID=$(echo "$RELEASE_JSON" | python3 -c "import json,sys; print(json.load(sys.stdin)['id'])") - fi - echo "release_id=$RELEASE_ID" >> "$GITHUB_OUTPUT" - - - name: Upload Windows patch asset - run: | - curl -X POST \ - -H "Authorization: token ${{ secrets.TEKTON_RELEASE_TOKEN }}" \ - -H "Content-Type: multipart/form-data" \ - -F "attachment=@artifacts/patch/tekton_armageddon_patch_windows.exe" \ - "https://git.klud.top/api/v1/repos/danchie/tekton/releases/${{ steps.gitea_release.outputs.release_id }}/assets" - - - name: Upload Linux patch asset - run: | - curl -X POST \ - -H "Authorization: token ${{ secrets.TEKTON_RELEASE_TOKEN }}" \ - -H "Content-Type: multipart/form-data" \ - -F "attachment=@artifacts/patch/tekton_armageddon_patch_linux.x86_64" \ - "https://git.klud.top/api/v1/repos/danchie/tekton/releases/${{ steps.gitea_release.outputs.release_id }}/assets" \ No newline at end of file + mkdir -p patch-deploy + cp build/patch.pck patch-deploy/ + cp assets/data/version.json patch-deploy/ + cd patch-deploy + git init + git config user.name "god" + git config user.email "god@noreply.git.klud.top" + git remote add origin http://god:$GITEA_TOKEN@52.74.133.55:3000/danchie/tekton.git + git checkout -b patches + git add . + git commit -m "patch ${{ github.event.inputs.version }}" + git push -f origin patches diff --git a/tools/generate_version_json.py b/tools/generate_version_json.py index 9745336..3d579c2 100644 --- a/tools/generate_version_json.py +++ b/tools/generate_version_json.py @@ -26,7 +26,7 @@ PROJECT_GODOT = "project.godot" CHANGELOG_DRAFT = "CHANGELOG_DRAFT.md" VERSION_JSON = "assets/data/version.json" EXPORT_PRESETS = "export_presets.cfg" -MANIFEST_URL = "https://raw.githubusercontent.com/adtpdn/tekton-updates/main/latest/patch.pck" +MANIFEST_URL = "http://git.klud.top:8000/danchie/tekton/patch.pck" # ─── Parse command line arguments ───────────────────────────────────────────── parser = argparse.ArgumentParser(description="Generate version.json and update version numbers")