diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6b3415040..ac170ea93 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -115,9 +115,50 @@ jobs: }) return data.id - build-client: + pack-vendor: needs: [ check-version, create-release ] if: needs.check-version.outputs.should_release == 'true' + permissions: + contents: write + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + extensions: mbstring, intl, gd, xml, zip, swoole + tools: composer:v2 + + - name: Install Dependencies + run: composer install --no-dev --optimize-autoloader + + - name: Create Vendor Archive + run: tar -czf vendor.tar.gz vendor/ + + - name: Upload Vendor Archive + uses: actions/github-script@v7 + env: + RELEASE_ID: ${{ needs.create-release.outputs.release_id }} + with: + script: | + const fs = require('fs'); + + const data = await fs.promises.readFile('vendor.tar.gz'); + + await github.rest.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: process.env.RELEASE_ID, + name: 'vendor.tar.gz', + data: data + }); + + build-client: + needs: [ check-version, create-release, pack-vendor ] + if: needs.check-version.outputs.should_release == 'true' permissions: contents: write strategy: @@ -230,42 +271,8 @@ jobs: run: | ./cmd electron win - build-vendor: - needs: [ check-version, create-release, build-client ] - if: needs.check-version.outputs.should_release == 'true' - permissions: - contents: write - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Install Dependencies - run: ./cmd install - - - name: Create Vendor Archive - run: tar -czf vendor.tar.gz vendor/ - - - name: Upload Vendor Archive - uses: actions/github-script@v7 - env: - RELEASE_ID: ${{ needs.create-release.outputs.release_id }} - with: - script: | - const fs = require('fs'); - - const data = await fs.promises.readFile('vendor.tar.gz'); - - await github.rest.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: process.env.RELEASE_ID, - name: 'vendor.tar.gz', - data: data - }); - publish-release: - needs: [ check-version, create-release, build-client, build-vendor ] + needs: [ check-version, create-release, pack-vendor, build-client ] if: needs.check-version.outputs.should_release == 'true' && github.ref == 'refs/heads/pro' permissions: contents: write