From 85c28aff5c9156fcdfc2bc49d2e8e3cf135077be Mon Sep 17 00:00:00 2001 From: Matti Airas Date: Fri, 21 Nov 2025 23:02:28 +0200 Subject: [PATCH] fix(ci): attach assets during draft creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - main.yml: Attach .deb to draft stable release during creation - release.yml: Add asset verification step before dispatching This ensures assets are always present when a release is published. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/main.yml | 11 +++---- .github/workflows/release.yml | 55 +++++++++++++++++++++++++---------- 2 files changed, 46 insertions(+), 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3964e39..eef88a4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -118,12 +118,13 @@ jobs: # Generate release notes for draft .github/scripts/generate-release-notes.sh "${VERSION}" "${VERSION}" draft - echo "📋 Creating draft release v${VERSION}" + echo "📋 Creating draft release v${VERSION} with .deb package" gh release create "v${VERSION}" \ --draft \ --title "v${VERSION}" \ - --notes-file release_notes.md - echo "✅ Draft release created successfully" + --notes-file release_notes.md \ + *.deb + echo "✅ Draft release created successfully with .deb attached" fi env: GH_TOKEN: ${{ github.token }} @@ -153,6 +154,6 @@ jobs: echo "Release tag: v${TAG_VERSION}" echo "Release URL: https://github.com/${{ github.repository }}/releases/tag/v${TAG_VERSION}" echo "" - echo "✅ Pre-release created" - echo "✅ Draft release created" + echo "✅ Pre-release created with .deb package" + echo "✅ Draft release created with .deb attached" echo "✅ Dispatched to apt.hatlabs.fi unstable channel" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 04d3a08..53a56ca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,21 +12,46 @@ env: APT_COMPONENT: ${{ vars.APT_COMPONENT || 'hatlabs' }} jobs: - trigger-packaging: + dispatch-to-apt: runs-on: ubuntu-latest - # Only handle stable releases - pre-releases are handled by auto-prerelease.yml + # Only handle stable releases - pre-releases are handled by main.yml if: ${{ github.event.release.prerelease == false }} steps: - - name: Trigger APT repository - uses: peter-evans/repository-dispatch@v4 - with: - token: ${{ secrets.REPO_DISPATCH_PAT }} - repository: hatlabs/apt.hatlabs.fi - event-type: package-updated - client-payload: | - { - "repository": "${{ github.repository }}", - "distro": "${{ env.APT_DISTRO }}", - "channel": "stable", - "component": "${{ env.APT_COMPONENT }}" - } + - name: Verify release has assets + run: | + STABLE_TAG="${{ github.event.release.tag_name }}" + ASSET_COUNT=$(gh release view "$STABLE_TAG" --repo ${{ github.repository }} --json assets --jq '.assets | length') + + if [ "$ASSET_COUNT" -eq 0 ]; then + echo "❌ Error: Release has no assets attached" + echo "The .deb package should have been attached when the draft was created" + exit 1 + fi + + echo "✅ Release has $ASSET_COUNT asset(s)" + env: + GH_TOKEN: ${{ github.token }} + + - name: Trigger APT repository + uses: peter-evans/repository-dispatch@v4 + with: + token: ${{ secrets.REPO_DISPATCH_PAT }} + repository: hatlabs/apt.hatlabs.fi + event-type: package-updated + client-payload: | + { + "repository": "${{ github.repository }}", + "distro": "${{ env.APT_DISTRO }}", + "channel": "stable", + "component": "${{ env.APT_COMPONENT }}" + } + + - name: Report success + run: | + STABLE_TAG="${{ github.event.release.tag_name }}" + + echo "=== Stable Release Published ===" + echo "Stable tag: $STABLE_TAG" + echo "Release URL: https://github.com/${{ github.repository }}/releases/tag/$STABLE_TAG" + echo "" + echo "✅ Dispatched to apt.hatlabs.fi stable channel"