diff --git a/.github/workflows/homeboy.yml b/.github/workflows/homeboy.yml index 44e4439aa..d1989e2ae 100644 --- a/.github/workflows/homeboy.yml +++ b/.github/workflows/homeboy.yml @@ -25,3 +25,63 @@ 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 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: npm + + - run: composer install --no-dev --optimize-autoloader --prefer-dist --no-interaction + - run: npm ci + - run: npm run build + + - name: Build plugin ZIP + run: | + mkdir -p dist/data-machine + rsync -a ./ dist/data-machine/ \ + --exclude='.git' \ + --exclude='.github' \ + --exclude='.claude' \ + --exclude='.datamachine' \ + --exclude='AGENTS.md' \ + --exclude='dist' \ + --exclude='docs' \ + --exclude='node_modules' \ + --exclude='tests' \ + --exclude='.buildignore' \ + --exclude='*.zip' \ + --exclude='*.tar.gz' \ + --exclude='*.log' \ + --exclude='*.tmp' \ + --exclude='*.temp' \ + --exclude='*.cache' \ + --exclude='*.bak' \ + --exclude='*.backup' \ + --exclude='package-lock.json' \ + --exclude='package.json' \ + --exclude='webpack.config.js' \ + --exclude='jsconfig.json' \ + --exclude='phpstan-baseline.neon' \ + --exclude='phpunit.xml*' + cd dist + zip -r data-machine.zip data-machine + + - run: gh release upload "${{ needs.homeboy.outputs.release-tag }}" dist/data-machine.zip --clobber + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}