From 699622753f7b41f058dffa0983379b7ab44eafb6 Mon Sep 17 00:00:00 2001 From: logikonline Date: Sat, 17 Jan 2026 18:53:31 -0500 Subject: [PATCH] fix: wait for release assets before triggering vault rebuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Poll the release API until all server binaries are uploaded before triggering the vault plugin rebuild. This ensures the vault builds against the fully-released server version. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .gitea/workflows/trigger-vault-rebuild.yml | 38 +++++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/trigger-vault-rebuild.yml b/.gitea/workflows/trigger-vault-rebuild.yml index f08dc1db79..1e280369fb 100644 --- a/.gitea/workflows/trigger-vault-rebuild.yml +++ b/.gitea/workflows/trigger-vault-rebuild.yml @@ -1,10 +1,9 @@ name: Trigger Vault Plugin Rebuild on: - workflow_run: - workflows: ["Build and Release"] - types: - - completed + push: + tags: + - 'v*' env: VAULT_REPO: gitcaddy/gitcaddy-vault @@ -13,16 +12,37 @@ jobs: trigger-vault: name: Trigger Vault Rebuild runs-on: linux-latest - if: >- - github.event.workflow_run.conclusion == 'success' && - startsWith(github.event.workflow_run.head_branch, 'v') steps: + - name: Wait for release assets + run: | + TAG="${{ github.ref_name }}" + echo "Waiting for server $TAG release to have all assets..." + + # Wait up to 20 minutes for 10 assets (5 binaries + 5 checksums) + for i in $(seq 1 40); do + ASSETS=$(curl -sf \ + -H "Authorization: token ${{ secrets.VAULT_DISPATCH_TOKEN }}" \ + "https://direct.git.marketally.com/api/v1/repos/${{ github.repository }}/releases/tags/$TAG" \ + | grep -o '"name":' | wc -l || echo "0") + + echo "Attempt $i: Found $ASSETS assets" + + if [ "$ASSETS" -ge 10 ]; then + echo "Release has all assets, proceeding..." + exit 0 + fi + + sleep 30 + done + + echo "Timeout waiting for release assets" + exit 1 + - name: Trigger vault rebuild run: | - TAG="${{ github.event.workflow_run.head_branch }}" + TAG="${{ github.ref_name }}" echo "Triggering vault rebuild for server $TAG" - # Use workflow_dispatch API RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \ -H "Authorization: token ${{ secrets.VAULT_DISPATCH_TOKEN }}" \ -H "Content-Type: application/json" \