mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +08:00
112 lines
3.2 KiB
YAML
112 lines
3.2 KiB
YAML
name: Tests for PHP Pack Lib
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
paths:
|
|
- 'src/**'
|
|
- 'config/**'
|
|
- '.github/workflows/tests.yml'
|
|
- 'bin/**'
|
|
- 'composer.json'
|
|
- 'box.json'
|
|
- '.php-cs-fixer.php'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
jobs:
|
|
build:
|
|
name: "Pack Lib Test (${{ matrix.lib }} for ${{ matrix.runner }})"
|
|
runs-on: ${{ matrix.runner }}
|
|
timeout-minutes: 120
|
|
strategy:
|
|
matrix:
|
|
runner:
|
|
- ubuntu-latest
|
|
- macos-13
|
|
- windows-latest
|
|
- macos-14
|
|
lib:
|
|
- zlib
|
|
- pkg-config
|
|
- bzip2
|
|
- gmp
|
|
exclude:
|
|
- { runner: "windows-latest", lib: "pkg-config" }
|
|
- { runner: "windows-latest", lib: "gmp" }
|
|
fail-fast: false
|
|
steps:
|
|
- name: "Process env string"
|
|
shell: bash
|
|
run: |
|
|
case "${{ matrix.runner }}" in
|
|
ubuntu-latest)
|
|
echo "OS=linux" >> $env:GITHUB_ENV
|
|
echo "ARCH=x86_64" >> $env:GITHUB_ENV
|
|
;;
|
|
windows-latest)
|
|
echo "OS=windows" >> $env:GITHUB_ENV
|
|
echo "ARCH=x86_64" >> $env:GITHUB_ENV
|
|
;;
|
|
macos-13)
|
|
echo "OS=darwin" >> $env:GITHUB_ENV
|
|
echo "ARCH=x86_64" >> $env:GITHUB_ENV
|
|
;;
|
|
macos-14)
|
|
echo "OS=darwin" >> $env:GITHUB_ENV
|
|
echo "ARCH=aarch64" >> $env:GITHUB_ENV
|
|
;;
|
|
esac
|
|
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v4
|
|
|
|
- name: "Setup PHP"
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.2
|
|
tools: pecl, composer
|
|
extensions: curl, openssl, mbstring
|
|
ini-values: memory_limit=-1
|
|
|
|
- name: "Cache composer packages"
|
|
id: composer-cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: vendor
|
|
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-php
|
|
|
|
# Cache downloaded source
|
|
- id: cache-download
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: downloads
|
|
key: pack-lib-dependencies
|
|
|
|
- name: "Install Dependencies"
|
|
run: composer update -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
|
|
|
|
- run: bin/spc doctor --auto-fix
|
|
|
|
- run: bin/spc download --for-libs="${{ matrix.lib }}" --debug --retry=5 --shallow-clone
|
|
|
|
- name: "Download pre-built pkg-config for *nix if possible"
|
|
if: (env.OS == 'linux' || env.OS == 'darwin') && matrix.lib != 'pkg-config'
|
|
run: |
|
|
bin/spc download --for-libs="pkg-config" --debug --retry=5 --shallow-clone --prefer-pre-built
|
|
bin/spc build:libs pkg-config --debug
|
|
|
|
- if: env.OS != 'windows' || matrix.lib != 'pkg-config'
|
|
run: bin/spc dev:pack-lib --debug ${{ matrix.lib }}
|
|
|
|
- name: "Upload packed lib (${{ matrix.lib }} for ${{ env.OS }}-${{ env.ARCH }})"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
path: dist/${{ matrix.lib }}-${{ env.ARCH }}-${{ env.OS }}.txz
|
|
name: ${{ matrix.lib }}-${{ env.ARCH }}-${{ env.OS }} |