From a3452f2a1446d5ceaf62cb27eae1c2d4af44a278 Mon Sep 17 00:00:00 2001 From: Chris Huber Date: Sat, 16 May 2026 09:04:38 -0400 Subject: [PATCH] ci: move release-asset build to release.published trigger Same fix as Extra-Chill/data-machine: the gate needs.homeboy.outputs.released == 'true' was relying on an output the homeboy-action ci.yml reusable workflow does not expose, so the ZIP build never fired. Moves the asset build to its own workflow file triggered on release.published. The release tag flows through github.event.release.tag_name without depending on the CI workflow's outputs. Adds a workflow_dispatch input for backfilling existing release tags. --- .github/workflows/homeboy.yml | 48 --------------------- .github/workflows/release-asset.yml | 67 +++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/release-asset.yml diff --git a/.github/workflows/homeboy.yml b/.github/workflows/homeboy.yml index b715164..44e4439 100644 --- a/.github/workflows/homeboy.yml +++ b/.github/workflows/homeboy.yml @@ -25,51 +25,3 @@ jobs: expected-commands: audit,lint,test autofix: 'false' secrets: inherit - - build-release-asset: - if: needs.homeboy.outputs.released == 'true' - needs: [homeboy] - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ needs.homeboy.outputs.release-tag }} - - - uses: shivammathur/setup-php@v2 - with: - php-version: '8.3' - tools: composer:v2 - - - run: composer install --no-dev --optimize-autoloader --prefer-dist --no-interaction - - - name: Build plugin ZIP - run: | - mkdir -p dist/data-machine-code - rsync -a ./ dist/data-machine-code/ \ - --exclude='.git' \ - --exclude='.github' \ - --exclude='.claude' \ - --exclude='.datamachine' \ - --exclude='AGENTS.md' \ - --exclude='dist' \ - --exclude='docs' \ - --exclude='node_modules' \ - --exclude='tests' \ - --exclude='*.zip' \ - --exclude='*.tar.gz' \ - --exclude='*.log' \ - --exclude='*.tmp' \ - --exclude='*.temp' \ - --exclude='*.cache' \ - --exclude='*.bak' \ - --exclude='*.backup' \ - --exclude='phpstan-baseline.neon' \ - --exclude='phpunit.xml*' - cd dist - zip -r data-machine-code.zip data-machine-code - - - run: gh release upload "${{ needs.homeboy.outputs.release-tag }}" dist/data-machine-code.zip --clobber - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-asset.yml b/.github/workflows/release-asset.yml new file mode 100644 index 0000000..9aa53f6 --- /dev/null +++ b/.github/workflows/release-asset.yml @@ -0,0 +1,67 @@ +name: Release asset + +on: + release: + types: [published] + workflow_dispatch: + inputs: + tag: + description: 'Existing release tag to (re)build and upload an asset for.' + required: true + +permissions: + contents: write + +jobs: + build-release-asset: + runs-on: ubuntu-latest + steps: + - name: Resolve release tag + id: tag + run: | + if [ -n "${{ github.event.release.tag_name }}" ]; then + echo "tag=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT" + else + echo "tag=${{ github.event.inputs.tag }}" >> "$GITHUB_OUTPUT" + fi + + - uses: actions/checkout@v4 + with: + ref: ${{ steps.tag.outputs.tag }} + + - uses: shivammathur/setup-php@v2 + with: + php-version: '8.3' + tools: composer:v2 + + - run: composer install --no-dev --optimize-autoloader --prefer-dist --no-interaction + + - name: Build plugin ZIP + run: | + mkdir -p dist/data-machine-code + rsync -a ./ dist/data-machine-code/ \ + --exclude='.git' \ + --exclude='.github' \ + --exclude='.claude' \ + --exclude='.datamachine' \ + --exclude='AGENTS.md' \ + --exclude='dist' \ + --exclude='docs' \ + --exclude='node_modules' \ + --exclude='tests' \ + --exclude='*.zip' \ + --exclude='*.tar.gz' \ + --exclude='*.log' \ + --exclude='*.tmp' \ + --exclude='*.temp' \ + --exclude='*.cache' \ + --exclude='*.bak' \ + --exclude='*.backup' \ + --exclude='phpstan-baseline.neon' \ + --exclude='phpunit.xml*' + cd dist + zip -r data-machine-code.zip data-machine-code + + - run: gh release upload "${{ steps.tag.outputs.tag }}" dist/data-machine-code.zip --clobber + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}