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" \