2022-06-11 01:37:04 +08:00

70 lines
2.7 KiB
YAML

name: Build PHP
on:
push:
branches: [ master ]
paths:
- ".github/workflows/**.yml"
- "docker/**"
jobs:
x86_64-step-1:
name: x86_64 Step 1
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build Docker container for preparing PHP compile environment
run: cd docker/ && docker build . --tag static-php --build-arg USE_BACKUP_ADDRESS=yes
aarch64-step-1:
name: aarch64 Step 1
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check Dockerfile to aarch64
run: cd docker/ && sed -ie 's/alpine:latest/multiarch\/alpine:aarch64-edge/g' Dockerfile
- name: Build Docker container for preparing PHP compile environment
run: cd docker/ && docker build . --tag static-php --build-arg USE_BACKUP_ADDRESS=yes
armv7l-step-1:
name: armv7l Step 1
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check Dockerfile to armv7l
run: cd docker/ && sed -ie 's/alpine:latest/multiarch\/alpine:armv7-edge/g' Dockerfile
- name: Build Docker container for preparing PHP compile environment
run: cd docker/ && docker build . --tag static-php --build-arg USE_BACKUP_ADDRESS=yes
integration:
name: Build PHP ${{ matrix.php-versions }} for ${{ matrix.arch }}
runs-on: ubuntu-latest
needs: ${{ matrix.arch }}-step-1
strategy:
matrix:
php-versions: [ "7.2.34", "7.3.33", "7.4.30", "8.0.20", "8.1.7" ]
arch: [ "x86_64", "aarch64", "armv7l" ]
steps:
- name: Build micro and PHP distribution ${{ matrix.php-versions }} for ${{ matrix.arch }}
run: |
mkdir ./dist && \
docker run --rm -v $(pwd)/dist:/dist/ static-php build-php original ${{ matrix.php-versions }} all /dist/
- name: Pack PHP ${{ matrix.php-versions }} to archive
run: |
cd dist
tar -zcvf "php-${{ matrix.php-versions }}-static-bin-${{ matrix.arch }}.tar.gz" ./php && rm ./php
if [ -f "./micro.sfx" ]; then
tar -zcvf "php-${{ matrix.php-versions }}-${{ matrix.arch }}.tar.gz" ./micro.sfx && rm ./micro.sfx
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