diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 5e93997..63f3a00 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -45,6 +45,23 @@ jobs: echo "✅ Tag $TAG does not exist yet" fi + - name: Remove old packages from existing draft + if: steps.check-tag.outputs.exists == 'false' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + TAG="v${{ needs.build-and-test.outputs.version }}" + # Check if draft release already exists + if gh release view "$TAG" &>/dev/null; then + echo "🗑️ Removing old NuGet packages from existing draft..." + gh release view "$TAG" --json assets -q '.assets[] | select(.name | endswith(".nupkg")) | "\(.id) \(.name)"' | while read -r asset_id asset_name; do + echo "Deleting old package: $asset_name (ID: $asset_id)" + gh api --method DELETE "/repos/${{ github.repository }}/releases/assets/$asset_id" || echo "Failed to delete $asset_name" + done + else + echo "No existing draft release found" + fi + - name: Create/Update Draft Release if: steps.check-tag.outputs.exists == 'false' uses: release-drafter/release-drafter@v6 @@ -64,16 +81,9 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | TAG="v${{ needs.build-and-test.outputs.version }}" - # Wait a moment for the release to be created + # Wait a moment for the release to be created/updated sleep 2 - # Remove old NuGet packages from the draft release - echo "🗑️ Removing old NuGet packages..." - gh release view "$TAG" --json assets -q '.assets[] | select(.name | endswith(".nupkg")) | "\(.id) \(.name)"' | while read -r asset_id asset_name; do - echo "Deleting old package: $asset_name (ID: $asset_id)" - gh api --method DELETE "/repos/${{ github.repository }}/releases/assets/$asset_id" || echo "Failed to delete $asset_name" - done - # Upload new artifacts to the draft release echo "📦 Uploading new NuGet packages..." for file in ./artifacts/*.nupkg; do