name: Build PHP on: push: branches: [ master ] paths: - ".github/workflows/**.yml" - "docker/**" jobs: integration: name: Build PHP ${{ matrix.php-versions }} for ${{ matrix.arch }} runs-on: ubuntu-latest strategy: matrix: php-versions: [ "7.2.34", "7.3.33", "7.4.29", "8.0.19", "8.1.6" ] arch: [ "x86_64", "aarch64", "armv7l" ] steps: - uses: actions/checkout@v2 - name: Check Dockerfile to ${{ matrix.arch }} run: | cd docker/ if [[ "${{ matrix.arch }}" != "x86_64" ]]; then if [[ "${{ matrix.arch }}" = "armv7l" ]]; then sed -ie 's/alpine:latest/multiarch\/alpine:armv7-edge/g' Dockerfile else sed -ie 's/alpine:latest/multiarch\/alpine:${{ matrix.arch }}-edge/g' Dockerfile fi docker run --rm --privileged multiarch/qemu-user-static:register --reset fi - name: Build PHP ${{ matrix.php-versions }} for ${{ matrix.arch }} run: cd docker/ && docker build . --file Dockerfile --tag static-php --build-arg USE_BACKUP_ADDRESS=yes --build-arg COMPILE_PHP_VERSION=${{ matrix.php-versions }} - name: Build micro PHP distribution ${{ matrix.php-versions }} for ${{ matrix.arch }} run: | if [[ "${{ matrix.arch }}" = "x86_64" ]]; then MAIN_VERSION=$(echo "${{ matrix.php-versions }}" | awk -F. '{print $1}') if [[ "$MAIN_VERSION" = "8" ]]; then cd docker/ && docker build . --file Dockerfile --tag static-micro --build-arg USE_BACKUP_ADDRESS=yes --build-arg COMPILE_PHP_VERSION=${{ matrix.php-versions }} --build-arg COMPILE_MICRO=yes fi fi - name: Push PHP ${{ matrix.php-versions }} to dist run: | mkdir dist && docker run --rm -v $(pwd)/dist:/dist/ static-php cp php-dist/bin/php /dist/ cd dist && tar -zcvf "php-${{ matrix.php-versions }}-static-bin-${{ matrix.arch }}.tar.gz" ./php && rm ./php && cd .. if [[ "${{ matrix.arch }}" = "x86_64" ]]; then MAIN_VERSION=$(echo "${{ matrix.php-versions }}" | awk -F. '{print $1}') if [[ "$MAIN_VERSION" = "8" ]]; then docker run --rm -v $(pwd)/dist:/dist static-micro cp /app/source/php-"${{ matrix.php-versions }}"/sapi/micro/micro.sfx /dist/ cd dist && tar -zcvf "micro-${{ matrix.php-versions }}-${{ matrix.arch }}.tar.gz" ./micro.sfx && rm ./micro.sfx && cd .. fi fi - name: Deploy to Zhamao Server 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 }} - name: Remove dist directory run: | rm -rf dist/ docker images | grep -v REPOSITORY | awk '{print $3}' | xargs docker rmi --force