123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- name: Build SPC Binary
- on:
- push:
- branches: [ "main" ]
- release:
- types:
- - published
- workflow_dispatch:
- jobs:
- build-release-artifacts:
- name: "Build SPC Binary"
- runs-on: ubuntu-latest
- strategy:
- matrix:
- php-version:
- - "8.1"
- micro-version:
- - "8.1.26"
- operating-system:
- - "linux-x86_64"
- - "macos-x86_64"
- - "linux-aarch64"
- - "macos-aarch64"
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v4"
- - if: inputs.debug == true
- run: echo "SPC_BUILD_DEBUG=--debug" >> $GITHUB_ENV
- - name: "Install PHP for official runners"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: none
- tools: composer:v2
- php-version: "${{ matrix.php-version }}"
- ini-values: memory_limit=-1
- - name: "Get Composer Cache Directory"
- id: composer-cache
- run: |
- echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- - name: "Cache Composer dependencies"
- uses: "actions/cache@v3"
- with:
- path: "${{ steps.composer-cache.outputs.dir }}"
- key: "php-${{ matrix.php-version }}-locked-composer-${{ hashFiles('**/composer.lock') }}"
- restore-keys: |
- php-${{ matrix.php-version }}-locked-composer
- - name: "Install Locked Dependencies"
- run: "composer install --no-interaction --no-progress"
- - name: "Build PHAR File"
- run: "composer build:phar"
- - name: "Download minimal combination"
- run: |
- curl https://dl.static-php.dev/static-php-cli/minimal/php-${{ matrix.micro-version }}-micro-${{ matrix.operating-system }}.tar.gz -o tmp.tgz
- tar -zxvf tmp.tgz
- - name: "Generate Executable"
- run: |
- cat micro.sfx spc.phar > spc
- chmod +x spc
- - name: "Archive Executable"
- run: |
- tar -czf spc-${{ matrix.operating-system }}.tar.gz spc
- echo "filename=spc-${{ matrix.operating-system }}.tar.gz" >> $GITHUB_ENV
- echo "OS=${{ matrix.operating-system }}" >> $GITHUB_ENV
- if [ "${{ matrix.operating-system }}" == "linux-x86_64" ]; then
- ./spc dev:extensions
- fi
- - name: "Copy file"
- run: "mkdir dist/ && cp ${{ env.filename }} dist/ && cp spc dist/spc-$OS"
- - name: upload binaries to release
- uses: softprops/action-gh-release@v1
- if: ${{startsWith(github.ref, 'refs/tags/') }}
- with:
- files: ${{ env.filename }}
- - name: "Deploy to Self-Hosted Server"
- if: github.repository == 'crazywhalecc/static-php-cli'
- uses: easingthemes/ssh-deploy@main
- env:
- SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_SERVER_SECRET_KEY }}
- ARGS: "-rltgoDzvO"
- SOURCE: "dist/"
- REMOTE_HOST: ${{ secrets.DEPLOY_SERVER_HOST }}
- REMOTE_PORT: ${{ secrets.DEPLOY_SERVER_PORT }}
- REMOTE_USER: ${{ secrets.DEPLOY_SERVER_USER }}
- TARGET: ${{ secrets.DEPLOY_SERVER_TARGET_SPC_NIGHTLY }}
- - name: "Upload Artifact"
- uses: actions/upload-artifact@v3
- with:
- path: spc
- name: spc-${{ matrix.operating-system }}
|