mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-03 23:05:41 +08:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36b4ef306e | ||
|
|
4bd3a2ae25 | ||
|
|
dd647c53ec | ||
|
|
0c0d16bbb3 | ||
|
|
c665a18b79 | ||
|
|
16d448b97c | ||
|
|
27ccc1189f | ||
|
|
eecebbcd4d | ||
|
|
2ca5ad075b | ||
|
|
20dad4cdb3 | ||
|
|
a3e0ad6b9f |
131
.github/workflows/build-linux-arm.yml
vendored
131
.github/workflows/build-linux-arm.yml
vendored
@@ -1,131 +0,0 @@
|
|||||||
name: CI on arm linux
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
operating-system:
|
|
||||||
required: true
|
|
||||||
description: Compile target arch (Linux only)
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- aarch64
|
|
||||||
version:
|
|
||||||
required: true
|
|
||||||
description: php version to compile
|
|
||||||
default: '8.3'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- '8.4'
|
|
||||||
- '8.3'
|
|
||||||
- '8.2'
|
|
||||||
- '8.1'
|
|
||||||
- '8.0'
|
|
||||||
- '7.4'
|
|
||||||
build-cli:
|
|
||||||
description: build cli binary
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
build-micro:
|
|
||||||
description: build phpmicro binary
|
|
||||||
type: boolean
|
|
||||||
build-fpm:
|
|
||||||
description: build fpm binary
|
|
||||||
type: boolean
|
|
||||||
extensions:
|
|
||||||
description: extensions to compile (comma separated)
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
prefer-pre-built:
|
|
||||||
description: prefer pre-built binaries (reduce build time)
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
debug:
|
|
||||||
description: enable debug logs
|
|
||||||
type: boolean
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: build ${{ inputs.version }} on ${{ inputs.operating-system }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Cache composer dependencies
|
|
||||||
- id: cache-composer-deps
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: vendor
|
|
||||||
key: composer-dependencies
|
|
||||||
|
|
||||||
# If there's no Composer cache, install dependencies
|
|
||||||
- if: steps.cache-composer-deps.outputs.cache-hit != 'true'
|
|
||||||
run: composer update --no-dev --classmap-authoritative
|
|
||||||
|
|
||||||
- name: Generate hashed key for download cache
|
|
||||||
run: |
|
|
||||||
INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}')
|
|
||||||
echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# Cache downloaded source
|
|
||||||
- id: cache-download
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: downloads
|
|
||||||
key: php-${{ env.INPUT_HASH }}
|
|
||||||
|
|
||||||
# With or without debug
|
|
||||||
- if: inputs.debug == true
|
|
||||||
run: echo "SPC_BUILD_DEBUG=--debug" >> $GITHUB_ENV
|
|
||||||
- if: inputs.prefer-pre-built == true
|
|
||||||
run: echo "SPC_PRE_BUILT=--prefer-pre-built" >> $env:GITHUB_ENV
|
|
||||||
|
|
||||||
# With target select: cli, micro or both
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
run: echo "SPC_BUILD_CLI=--build-cli" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
run: echo "SPC_BUILD_MICRO=--build-micro" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
run: echo "SPC_BUILD_FPM=--build-fpm" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# If there's no dependencies cache, fetch sources, with or without debug
|
|
||||||
- if: steps.cache-download.outputs.cache-hit != 'true'
|
|
||||||
run: SPC_USE_ARCH=${{ inputs.operating-system }} ./bin/spc-alpine-docker download --with-php=${{ inputs.version }} --for-extensions=${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_PRE_BUILT }}
|
|
||||||
|
|
||||||
# Run build command
|
|
||||||
- run: SPC_USE_ARCH=${{ inputs.operating-system }} ./bin/spc-alpine-docker build ${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_BUILD_CLI }} ${{ env.SPC_BUILD_MICRO }} ${{ env.SPC_BUILD_FPM }}
|
|
||||||
|
|
||||||
# Upload cli executable
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-${{ inputs.version }}-linux-${{ inputs.operating-system }}
|
|
||||||
path: buildroot/bin/php
|
|
||||||
|
|
||||||
# Upload micro self-extracted executable
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: micro-${{ inputs.version }}-linux-${{ inputs.operating-system }}
|
|
||||||
path: buildroot/bin/micro.sfx
|
|
||||||
|
|
||||||
# Upload fpm executable
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-fpm-${{ inputs.version }}-linux-${{ inputs.operating-system }}
|
|
||||||
path: buildroot/bin/php-fpm
|
|
||||||
|
|
||||||
# Upload extensions metadata
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: license-files
|
|
||||||
path: buildroot/license/
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-meta
|
|
||||||
path: |
|
|
||||||
buildroot/build-extensions.json
|
|
||||||
buildroot/build-libraries.json
|
|
||||||
126
.github/workflows/build-linux-x86_64.yml
vendored
126
.github/workflows/build-linux-x86_64.yml
vendored
@@ -1,126 +0,0 @@
|
|||||||
name: CI on x86_64 linux
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
version:
|
|
||||||
required: true
|
|
||||||
description: php version to compile
|
|
||||||
default: '8.3'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- '8.4'
|
|
||||||
- '8.3'
|
|
||||||
- '8.2'
|
|
||||||
- '8.1'
|
|
||||||
- '8.0'
|
|
||||||
- '7.4'
|
|
||||||
build-cli:
|
|
||||||
description: build cli binary
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
build-micro:
|
|
||||||
description: build phpmicro binary
|
|
||||||
type: boolean
|
|
||||||
build-fpm:
|
|
||||||
description: build fpm binary
|
|
||||||
type: boolean
|
|
||||||
extensions:
|
|
||||||
description: extensions to compile (comma separated)
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
prefer-pre-built:
|
|
||||||
description: prefer pre-built binaries (reduce build time)
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
debug:
|
|
||||||
description: enable debug logs
|
|
||||||
type: boolean
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: build ${{ inputs.version }} on Linux x86_64
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Cache composer dependencies
|
|
||||||
- id: cache-composer-deps
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: vendor
|
|
||||||
key: composer-dependencies
|
|
||||||
|
|
||||||
# If there's no Composer cache, install dependencies
|
|
||||||
- if: steps.cache-composer-deps.outputs.cache-hit != 'true'
|
|
||||||
run: composer update --no-dev --classmap-authoritative
|
|
||||||
|
|
||||||
- name: Generate hashed key for download cache
|
|
||||||
run: |
|
|
||||||
INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}')
|
|
||||||
echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# Cache downloaded source
|
|
||||||
- id: cache-download
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: downloads
|
|
||||||
key: php-${{ env.INPUT_HASH }}
|
|
||||||
|
|
||||||
# With or without debug
|
|
||||||
- if: inputs.debug == true
|
|
||||||
run: echo "SPC_BUILD_DEBUG=--debug" >> $GITHUB_ENV
|
|
||||||
- if: inputs.prefer-pre-built == true
|
|
||||||
run: echo "SPC_PRE_BUILT=--prefer-pre-built" >> $env:GITHUB_ENV
|
|
||||||
|
|
||||||
# With target select: cli, micro or both
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
run: echo "SPC_BUILD_CLI=--build-cli" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
run: echo "SPC_BUILD_MICRO=--build-micro" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
run: echo "SPC_BUILD_FPM=--build-fpm" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# If there's no dependencies cache, fetch sources, with or without debug
|
|
||||||
- if: steps.cache-download.outputs.cache-hit != 'true'
|
|
||||||
run: CACHE_API_EXEC=yes ./bin/spc-alpine-docker download --with-php=${{ inputs.version }} --for-extensions=${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_PRE_BUILT }}
|
|
||||||
|
|
||||||
# Run build command
|
|
||||||
- run: ./bin/spc-alpine-docker build ${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_BUILD_CLI }} ${{ env.SPC_BUILD_MICRO }} ${{ env.SPC_BUILD_FPM }}
|
|
||||||
|
|
||||||
# Upload cli executable
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/php
|
|
||||||
|
|
||||||
# Upload micro self-extracted executable
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: micro-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/micro.sfx
|
|
||||||
|
|
||||||
# Upload fpm executable
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-fpm-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/php-fpm
|
|
||||||
|
|
||||||
# Upload extensions metadata
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: license-files
|
|
||||||
path: buildroot/license/
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-meta
|
|
||||||
path: |
|
|
||||||
buildroot/build-extensions.json
|
|
||||||
buildroot/build-libraries.json
|
|
||||||
|
|
||||||
140
.github/workflows/build-macos-aarch64.yml
vendored
140
.github/workflows/build-macos-aarch64.yml
vendored
@@ -1,140 +0,0 @@
|
|||||||
name: CI on arm64 macOS
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
version:
|
|
||||||
required: true
|
|
||||||
description: php version to compile
|
|
||||||
default: '8.3'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- '8.4'
|
|
||||||
- '8.3'
|
|
||||||
- '8.2'
|
|
||||||
- '8.1'
|
|
||||||
- '8.0'
|
|
||||||
- '7.4'
|
|
||||||
build-cli:
|
|
||||||
description: build cli binary
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
build-micro:
|
|
||||||
description: build phpmicro binary
|
|
||||||
type: boolean
|
|
||||||
build-fpm:
|
|
||||||
description: build fpm binary
|
|
||||||
type: boolean
|
|
||||||
extensions:
|
|
||||||
description: extensions to compile (comma separated)
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
prefer-pre-built:
|
|
||||||
description: prefer pre-built binaries (reduce build time)
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
debug:
|
|
||||||
description: enable debug logs
|
|
||||||
type: boolean
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: build ${{ inputs.version }} on macOS arm64
|
|
||||||
runs-on: macos-14
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Install macOS missing packages and mark os suffix
|
|
||||||
- run: |
|
|
||||||
brew install automake gzip
|
|
||||||
echo "SPC_BUILD_OS=macos" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
|
|
||||||
- name: "Setup PHP"
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: 8.1
|
|
||||||
tools: pecl, composer
|
|
||||||
extensions: curl, openssl, mbstring, tokenizer
|
|
||||||
ini-values: memory_limit=-1
|
|
||||||
|
|
||||||
|
|
||||||
# Cache composer dependencies
|
|
||||||
- id: cache-composer-deps
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: vendor
|
|
||||||
key: composer-dependencies
|
|
||||||
|
|
||||||
# If there's no Composer cache, install dependencies
|
|
||||||
- if: steps.cache-composer-deps.outputs.cache-hit != 'true'
|
|
||||||
run: composer update --no-dev --classmap-authoritative
|
|
||||||
|
|
||||||
- name: Generate hashed key for download cache
|
|
||||||
run: |
|
|
||||||
INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}')
|
|
||||||
echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# Cache downloaded source
|
|
||||||
- id: cache-download
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: downloads
|
|
||||||
key: php-${{ env.INPUT_HASH }}
|
|
||||||
|
|
||||||
# With or without debug
|
|
||||||
- if: inputs.debug == true
|
|
||||||
run: echo "SPC_BUILD_DEBUG=--debug" >> $GITHUB_ENV
|
|
||||||
- if: inputs.prefer-pre-built == true
|
|
||||||
run: echo "SPC_PRE_BUILT=--prefer-pre-built" >> $env:GITHUB_ENV
|
|
||||||
|
|
||||||
# With target select: cli, micro or both
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
run: echo "SPC_BUILD_CLI=--build-cli" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
run: echo "SPC_BUILD_MICRO=--build-micro" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
run: echo "SPC_BUILD_FPM=--build-fpm" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# If there's no dependencies cache, fetch sources, with or without debug
|
|
||||||
- if: steps.cache-download.outputs.cache-hit != 'true'
|
|
||||||
run: ./bin/spc download --with-php=${{ inputs.version }} --for-extensions=${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_PRE_BUILT }}
|
|
||||||
|
|
||||||
# Run build command
|
|
||||||
- run: ./bin/spc build ${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_BUILD_CLI }} ${{ env.SPC_BUILD_MICRO }} ${{ env.SPC_BUILD_FPM }}
|
|
||||||
|
|
||||||
# Upload cli executable
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/php
|
|
||||||
|
|
||||||
# Upload micro self-extracted executable
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: micro-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/micro.sfx
|
|
||||||
|
|
||||||
# Upload fpm executable
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-fpm-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/php-fpm
|
|
||||||
|
|
||||||
# Upload extensions metadata
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: license-files
|
|
||||||
path: buildroot/license/
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-meta
|
|
||||||
path: |
|
|
||||||
buildroot/build-extensions.json
|
|
||||||
buildroot/build-libraries.json
|
|
||||||
142
.github/workflows/build-macos-x86_64.yml
vendored
142
.github/workflows/build-macos-x86_64.yml
vendored
@@ -1,142 +0,0 @@
|
|||||||
name: CI on x86_64 macOS
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
version:
|
|
||||||
required: true
|
|
||||||
description: php version to compile
|
|
||||||
default: '8.3'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- '8.4'
|
|
||||||
- '8.3'
|
|
||||||
- '8.2'
|
|
||||||
- '8.1'
|
|
||||||
build-cli:
|
|
||||||
description: build cli binary
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
build-micro:
|
|
||||||
description: build phpmicro binary
|
|
||||||
type: boolean
|
|
||||||
build-fpm:
|
|
||||||
description: build fpm binary
|
|
||||||
type: boolean
|
|
||||||
extensions:
|
|
||||||
description: extensions to compile (comma separated)
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
prefer-pre-built:
|
|
||||||
description: prefer pre-built binaries (reduce build time)
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
debug:
|
|
||||||
description: enable debug logs
|
|
||||||
type: boolean
|
|
||||||
no-strip:
|
|
||||||
description: keep debug symbols for debugging
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: build ${{ inputs.version }} on macOS x86_64
|
|
||||||
runs-on: macos-13
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Install macOS missing packages and mark os suffix
|
|
||||||
- run: |
|
|
||||||
brew install automake gzip
|
|
||||||
echo "SPC_BUILD_OS=macos" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: "Setup PHP"
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: 8.1
|
|
||||||
tools: pecl, composer
|
|
||||||
extensions: curl, openssl, mbstring, tokenizer
|
|
||||||
ini-values: memory_limit=-1
|
|
||||||
|
|
||||||
# Cache composer dependencies
|
|
||||||
- id: cache-composer-deps
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: vendor
|
|
||||||
key: composer-dependencies
|
|
||||||
|
|
||||||
# If there's no Composer cache, install dependencies
|
|
||||||
- if: steps.cache-composer-deps.outputs.cache-hit != 'true'
|
|
||||||
run: composer update --no-dev --classmap-authoritative
|
|
||||||
|
|
||||||
- name: Generate hashed key for download cache
|
|
||||||
run: |
|
|
||||||
INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}')
|
|
||||||
echo "INPUT_HASH=${INPUT_HASH}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# Cache downloaded source
|
|
||||||
- id: cache-download
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: downloads
|
|
||||||
key: php-${{ inputs.version }}-macos-x86_64
|
|
||||||
|
|
||||||
# With or without debug
|
|
||||||
- if: inputs.debug == true
|
|
||||||
run: echo "SPC_BUILD_DEBUG=--debug" >> $GITHUB_ENV
|
|
||||||
- if: inputs.prefer-pre-built == true
|
|
||||||
run: echo "SPC_PRE_BUILT=--prefer-pre-built" >> $env:GITHUB_ENV
|
|
||||||
- if: inputs.no-strip == true
|
|
||||||
run: echo "SPC_NO_STRIP=--no-strip" >> $env:GITHUB_ENV
|
|
||||||
|
|
||||||
# With target select: cli, micro or both
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
run: echo "SPC_BUILD_CLI=--build-cli" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
run: echo "SPC_BUILD_MICRO=--build-micro" >> $GITHUB_ENV
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
run: echo "SPC_BUILD_FPM=--build-fpm" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
# If there's no dependencies cache, fetch sources, with or without debug
|
|
||||||
- run: ./bin/spc download --with-php=${{ inputs.version }} --for-extensions=${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_PRE_BUILT }} --ignore-cache-sources=php-src
|
|
||||||
|
|
||||||
# Run build command
|
|
||||||
- run: ./bin/spc build ${{ inputs.extensions }} ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_NO_STRIP }} ${{ env.SPC_BUILD_CLI }} ${{ env.SPC_BUILD_MICRO }} ${{ env.SPC_BUILD_FPM }}
|
|
||||||
|
|
||||||
# Upload cli executable
|
|
||||||
- if: ${{ inputs.build-cli == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/php
|
|
||||||
|
|
||||||
# Upload micro self-extracted executable
|
|
||||||
- if: ${{ inputs.build-micro == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: micro-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/micro.sfx
|
|
||||||
|
|
||||||
# Upload fpm executable
|
|
||||||
- if: ${{ inputs.build-fpm == true }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: php-fpm-${{ inputs.version }}-${{ env.SPC_BUILD_OS }}
|
|
||||||
path: buildroot/bin/php-fpm
|
|
||||||
|
|
||||||
# Upload extensions metadata
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: license-files
|
|
||||||
path: buildroot/license/
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-meta
|
|
||||||
path: |
|
|
||||||
buildroot/build-extensions.json
|
|
||||||
buildroot/build-libraries.json
|
|
||||||
|
|
||||||
190
.github/workflows/build-unix.yml
vendored
Normal file
190
.github/workflows/build-unix.yml
vendored
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
name: "CI on Unix"
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
os:
|
||||||
|
required: true
|
||||||
|
description: Build target OS
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- 'linux-x86_64'
|
||||||
|
- 'linux-aarch64'
|
||||||
|
- 'macos-x86_64'
|
||||||
|
- 'macos-aarch64'
|
||||||
|
php-version:
|
||||||
|
required: true
|
||||||
|
description: PHP version to compile
|
||||||
|
default: '8.3'
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- '8.4'
|
||||||
|
- '8.3'
|
||||||
|
- '8.2'
|
||||||
|
- '8.1'
|
||||||
|
- '8.0'
|
||||||
|
extensions:
|
||||||
|
description: Extensions to build (comma separated)
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
extra-libs:
|
||||||
|
description: Extra libraries to build (optional, comma separated)
|
||||||
|
type: string
|
||||||
|
build-cli:
|
||||||
|
description: Build cli binary
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
build-micro:
|
||||||
|
description: Build phpmicro binary
|
||||||
|
type: boolean
|
||||||
|
build-fpm:
|
||||||
|
description: Build fpm binary
|
||||||
|
type: boolean
|
||||||
|
prefer-pre-built:
|
||||||
|
description: Prefer pre-built binaries (reduce build time)
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
debug:
|
||||||
|
description: Show full build logs
|
||||||
|
type: boolean
|
||||||
|
no-strip:
|
||||||
|
description: Keep debug symbols for debugging
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
define-build:
|
||||||
|
name: "Define Build Scripts"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
run: ${{ steps.gendef.outputs.run }}
|
||||||
|
download: ${{ steps.gendef.outputs.download }}
|
||||||
|
build: ${{ steps.gendef.outputs.build }}
|
||||||
|
steps:
|
||||||
|
- name: "Checkout"
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: "Define"
|
||||||
|
id: gendef
|
||||||
|
run: |
|
||||||
|
case "${{ inputs.os }}" in
|
||||||
|
linux-x86_64)
|
||||||
|
DOWN_CMD="./bin/spc-alpine-docker download"
|
||||||
|
BUILD_CMD="./bin/spc-alpine-docker build"
|
||||||
|
RUNS_ON="ubuntu-latest"
|
||||||
|
;;
|
||||||
|
linux-aarch64)
|
||||||
|
DOWN_CMD="SPC_USE_ARCH=aarch64 ./bin/spc-alpine-docker download"
|
||||||
|
BUILD_CMD="SPC_USE_ARCH=aarch64 ./bin/spc-alpine-docker build"
|
||||||
|
RUNS_ON="ubuntu-latest"
|
||||||
|
;;
|
||||||
|
macos-x86_64)
|
||||||
|
DOWN_CMD="composer update --no-dev --classmap-authoritative && ./bin/spc doctor --auto-fix && ./bin/spc download"
|
||||||
|
BUILD_CMD="./bin/spc build"
|
||||||
|
RUNS_ON="macos-13"
|
||||||
|
;;
|
||||||
|
macos-aarch64)
|
||||||
|
DOWN_CMD="composer update --no-dev --classmap-authoritative && ./bin/spc doctor --auto-fix && ./bin/spc download"
|
||||||
|
BUILD_CMD="./bin/spc build"
|
||||||
|
RUNS_ON="macos-14"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
DOWN_CMD="$DOWN_CMD --with-php=${{ inputs.php-version }} --for-extensions=${{ inputs.extensions }} --ignore-cache-sources=php-src"
|
||||||
|
BUILD_CMD="$BUILD_CMD ${{ inputs.extensions }}"
|
||||||
|
if [ -n "${{ inputs.extra-libs }}" ]; then
|
||||||
|
DOWN_CMD="$DOWN_CMD --for-libs=${{ inputs.extra-libs }}"
|
||||||
|
BUILD_CMD="$BUILD_CMD --with-libs=${{ inputs.extra-libs }}"
|
||||||
|
fi
|
||||||
|
if [ ${{ inputs.debug }} == true ]; then
|
||||||
|
DOWN_CMD="$DOWN_CMD --debug"
|
||||||
|
BUILD_CMD="$BUILD_CMD --debug"
|
||||||
|
fi
|
||||||
|
if [ ${{ inputs.prefer-pre-built }} == true ]; then
|
||||||
|
DOWN_CMD="$DOWN_CMD --prefer-pre-built"
|
||||||
|
fi
|
||||||
|
if [ ${{ inputs.build-cli }} == true ]; then
|
||||||
|
BUILD_CMD="$BUILD_CMD --build-cli"
|
||||||
|
fi
|
||||||
|
if [ ${{ inputs.build-micro }} == true ]; then
|
||||||
|
BUILD_CMD="$BUILD_CMD --build-micro"
|
||||||
|
fi
|
||||||
|
if [ ${{ inputs.build-fpm }} == true ]; then
|
||||||
|
BUILD_CMD="$BUILD_CMD --build-fpm"
|
||||||
|
fi
|
||||||
|
echo 'download='"$DOWN_CMD" >> "$GITHUB_OUTPUT"
|
||||||
|
echo 'build='"$BUILD_CMD" >> "$GITHUB_OUTPUT"
|
||||||
|
echo 'run='"$RUNS_ON" >> "$GITHUB_OUTPUT"
|
||||||
|
build:
|
||||||
|
name: "Build ${{ inputs.version }} on ${{ inputs.os }}"
|
||||||
|
runs-on: ${{ needs.define-build.outputs.run }}
|
||||||
|
needs: define-build
|
||||||
|
timeout-minutes: 240
|
||||||
|
steps:
|
||||||
|
- name: "Checkout"
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: "Setup PHP"
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ inputs.php-version }}
|
||||||
|
tools: pecl, composer
|
||||||
|
extensions: curl, openssl, mbstring
|
||||||
|
ini-values: memory_limit=-1
|
||||||
|
env:
|
||||||
|
phpts: nts
|
||||||
|
|
||||||
|
# Cache downloaded source
|
||||||
|
- id: cache-download
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: downloads
|
||||||
|
key: php-dependencies-${{ inputs.os }}
|
||||||
|
|
||||||
|
- name: "Download sources"
|
||||||
|
run: ${{ needs.define-build.outputs.download }}
|
||||||
|
- name: "Build PHP"
|
||||||
|
run: ${{ needs.define-build.outputs.build }}
|
||||||
|
#- name: Setup tmate session
|
||||||
|
# if: ${{ failure() }}
|
||||||
|
# uses: mxschmitt/action-tmate@v3
|
||||||
|
|
||||||
|
# Upload cli executable
|
||||||
|
- if: ${{ inputs.build-cli == true }}
|
||||||
|
name: "Upload PHP cli SAPI"
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: php-cli-${{ inputs.php-version }}-${{ inputs.os }}
|
||||||
|
path: buildroot/bin/php
|
||||||
|
|
||||||
|
# Upload micro self-extracted executable
|
||||||
|
- if: ${{ inputs.build-micro == true }}
|
||||||
|
name: "Upload PHP micro SAPI"
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: php-micro-${{ inputs.php-version }}-${{ inputs.os }}
|
||||||
|
path: buildroot/bin/micro.sfx
|
||||||
|
|
||||||
|
# Upload fpm executable
|
||||||
|
- if: ${{ inputs.build-fpm == true }}
|
||||||
|
name: "Upload PHP fpm SAPI"
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: php-fpm-${{ inputs.php-version }}-${{ inputs.os }}
|
||||||
|
path: buildroot/bin/php-fpm
|
||||||
|
|
||||||
|
# Upload extensions metadata
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
name: "Upload License Files"
|
||||||
|
with:
|
||||||
|
name: license-files
|
||||||
|
path: buildroot/license/
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
name: "Upload Build Metadata"
|
||||||
|
with:
|
||||||
|
name: build-meta
|
||||||
|
path: |
|
||||||
|
buildroot/build-extensions.json
|
||||||
|
buildroot/build-libraries.json
|
||||||
1
.github/workflows/build-windows-x86_64.yml
vendored
1
.github/workflows/build-windows-x86_64.yml
vendored
@@ -14,7 +14,6 @@ on:
|
|||||||
- '8.2'
|
- '8.2'
|
||||||
- '8.1'
|
- '8.1'
|
||||||
- '8.0'
|
- '8.0'
|
||||||
- '7.4'
|
|
||||||
build-cli:
|
build-cli:
|
||||||
description: build cli binary
|
description: build cli binary
|
||||||
default: true
|
default: true
|
||||||
|
|||||||
@@ -17,6 +17,10 @@
|
|||||||
"type": "external",
|
"type": "external",
|
||||||
"source": "apcu"
|
"source": "apcu"
|
||||||
},
|
},
|
||||||
|
"ast": {
|
||||||
|
"type": "external",
|
||||||
|
"source": "ast"
|
||||||
|
},
|
||||||
"bcmath": {
|
"bcmath": {
|
||||||
"type": "builtin"
|
"type": "builtin"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -425,6 +425,10 @@
|
|||||||
"source": "libtiff",
|
"source": "libtiff",
|
||||||
"static-libs-unix": [
|
"static-libs-unix": [
|
||||||
"libtiff.a"
|
"libtiff.a"
|
||||||
|
],
|
||||||
|
"lib-depends": [
|
||||||
|
"zlib",
|
||||||
|
"libjpeg"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"libuuid": {
|
"libuuid": {
|
||||||
|
|||||||
@@ -26,6 +26,16 @@
|
|||||||
"path": "LICENSE"
|
"path": "LICENSE"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ast": {
|
||||||
|
"type": "url",
|
||||||
|
"url": "https://pecl.php.net/get/ast",
|
||||||
|
"path": "php-src/ext/ast",
|
||||||
|
"filename": "ast.tgz",
|
||||||
|
"license": {
|
||||||
|
"type": "file",
|
||||||
|
"path": "LICENSE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"brotli": {
|
"brotli": {
|
||||||
"type": "ghtar",
|
"type": "ghtar",
|
||||||
"repo": "google/brotli",
|
"repo": "google/brotli",
|
||||||
|
|||||||
@@ -225,11 +225,11 @@ const isSupported = (extName, os) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const availablePhpVersions = [
|
const availablePhpVersions = [
|
||||||
'7.4',
|
|
||||||
'8.0',
|
'8.0',
|
||||||
'8.1',
|
'8.1',
|
||||||
'8.2',
|
'8.2',
|
||||||
'8.3',
|
'8.3',
|
||||||
|
'8.4',
|
||||||
];
|
];
|
||||||
|
|
||||||
const I18N = {
|
const I18N = {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ use Symfony\Component\Console\Application;
|
|||||||
*/
|
*/
|
||||||
final class ConsoleApplication extends Application
|
final class ConsoleApplication extends Application
|
||||||
{
|
{
|
||||||
public const VERSION = '2.4.3';
|
public const VERSION = '2.4.4';
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,13 +21,16 @@ class SystemUtil
|
|||||||
switch (true) {
|
switch (true) {
|
||||||
case file_exists('/etc/centos-release'):
|
case file_exists('/etc/centos-release'):
|
||||||
$lines = file('/etc/centos-release');
|
$lines = file('/etc/centos-release');
|
||||||
|
$centos = true;
|
||||||
goto rh;
|
goto rh;
|
||||||
case file_exists('/etc/redhat-release'):
|
case file_exists('/etc/redhat-release'):
|
||||||
$lines = file('/etc/redhat-release');
|
$lines = file('/etc/redhat-release');
|
||||||
|
$centos = false;
|
||||||
rh:
|
rh:
|
||||||
foreach ($lines as $line) {
|
foreach ($lines as $line) {
|
||||||
if (preg_match('/release\s+(\d*(\.\d+)*)/', $line, $matches)) {
|
if (preg_match('/release\s+(\d*(\.\d+)*)/', $line, $matches)) {
|
||||||
$ret['dist'] = 'redhat';
|
/* @phpstan-ignore-next-line */
|
||||||
|
$ret['dist'] = $centos ? 'centos' : 'redhat';
|
||||||
$ret['ver'] = $matches[1];
|
$ret['ver'] = $matches[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -171,6 +174,8 @@ class SystemUtil
|
|||||||
'debian', 'ubuntu', 'Deepin',
|
'debian', 'ubuntu', 'Deepin',
|
||||||
// rhel-like
|
// rhel-like
|
||||||
'redhat',
|
'redhat',
|
||||||
|
// centos
|
||||||
|
'centos',
|
||||||
// alpine
|
// alpine
|
||||||
'alpine',
|
'alpine',
|
||||||
// arch
|
// arch
|
||||||
|
|||||||
@@ -15,10 +15,18 @@ trait libtiff
|
|||||||
*/
|
*/
|
||||||
protected function build(): void
|
protected function build(): void
|
||||||
{
|
{
|
||||||
|
// zlib
|
||||||
|
$extra_libs = '--enable-zlib --with-zlib-include-dir=' . BUILD_ROOT_PATH . '/include --with-zlib-lib-dir=' . BUILD_ROOT_PATH . '/lib';
|
||||||
|
// libjpeg
|
||||||
|
$extra_libs .= ' --enable-jpeg --disable-old-jpeg --disable-jpeg12 --with-jpeg-include-dir=' . BUILD_ROOT_PATH . '/include --with-jpeg-lib-dir=' . BUILD_ROOT_PATH . '/lib';
|
||||||
|
// We disabled lzma, zstd, webp, libdeflate by default to reduce the size of the binary
|
||||||
|
$extra_libs .= ' --disable-lzma --disable-zstd --disable-webp --disable-libdeflate';
|
||||||
|
|
||||||
$shell = shell()->cd($this->source_dir)
|
$shell = shell()->cd($this->source_dir)
|
||||||
->exec(
|
->exec(
|
||||||
'./configure ' .
|
'./configure ' .
|
||||||
'--enable-static --disable-shared ' .
|
'--enable-static --disable-shared ' .
|
||||||
|
"{$extra_libs} " .
|
||||||
'--disable-cxx ' .
|
'--disable-cxx ' .
|
||||||
'--prefix='
|
'--prefix='
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class LinuxToolCheckList
|
|||||||
|
|
||||||
$required = match ($distro['dist']) {
|
$required = match ($distro['dist']) {
|
||||||
'alpine' => self::TOOLS_ALPINE,
|
'alpine' => self::TOOLS_ALPINE,
|
||||||
'redhat' => self::TOOLS_RHEL,
|
'redhat', 'centos' => self::TOOLS_RHEL,
|
||||||
'arch' => self::TOOLS_ARCH,
|
'arch' => self::TOOLS_ARCH,
|
||||||
default => self::TOOLS_DEBIAN,
|
default => self::TOOLS_DEBIAN,
|
||||||
};
|
};
|
||||||
@@ -72,6 +72,7 @@ class LinuxToolCheckList
|
|||||||
'ubuntu',
|
'ubuntu',
|
||||||
'alpine',
|
'alpine',
|
||||||
'redhat',
|
'redhat',
|
||||||
|
'centos',
|
||||||
'Deepin',
|
'Deepin',
|
||||||
'arch',
|
'arch',
|
||||||
'debian' => CheckResult::fail(implode(', ', $missing) . ' not installed on your system', 'install-linux-tools', [$distro, $missing]),
|
'debian' => CheckResult::fail(implode(', ', $missing) . ' not installed on your system', 'install-linux-tools', [$distro, $missing]),
|
||||||
@@ -121,13 +122,14 @@ class LinuxToolCheckList
|
|||||||
'ubuntu', 'debian', 'Deepin' => 'apt-get install -y',
|
'ubuntu', 'debian', 'Deepin' => 'apt-get install -y',
|
||||||
'alpine' => 'apk add',
|
'alpine' => 'apk add',
|
||||||
'redhat' => 'dnf install -y',
|
'redhat' => 'dnf install -y',
|
||||||
|
'centos' => 'yum install -y',
|
||||||
'arch' => 'pacman -S --noconfirm',
|
'arch' => 'pacman -S --noconfirm',
|
||||||
default => throw new RuntimeException('Current linux distro does not have an auto-install script for musl packages yet.'),
|
default => throw new RuntimeException('Current linux distro does not have an auto-install script for musl packages yet.'),
|
||||||
};
|
};
|
||||||
$prefix = '';
|
$prefix = '';
|
||||||
if (get_current_user() !== 'root') {
|
if (($user = exec('whoami')) !== 'root') {
|
||||||
$prefix = 'sudo ';
|
$prefix = 'sudo ';
|
||||||
logger()->warning('Current user is not root, using sudo for running command');
|
logger()->warning('Current user (' . $user . ') is not root, using sudo for running command');
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$is_debian = in_array($distro['dist'], ['debian', 'ubuntu', 'Deepin']);
|
$is_debian = in_array($distro['dist'], ['debian', 'ubuntu', 'Deepin']);
|
||||||
|
|||||||
5
src/globals/ext-tests/ast.php
Normal file
5
src/globals/ext-tests/ast.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
assert(function_exists('ast\parse_code'));
|
||||||
@@ -13,8 +13,6 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
// test php version
|
// test php version
|
||||||
$test_php_version = [
|
$test_php_version = [
|
||||||
'8.1',
|
|
||||||
'8.2',
|
|
||||||
'8.3',
|
'8.3',
|
||||||
'8.4',
|
'8.4',
|
||||||
];
|
];
|
||||||
@@ -22,7 +20,7 @@ $test_php_version = [
|
|||||||
// test os (macos-13, macos-14, ubuntu-latest, windows-latest are available)
|
// test os (macos-13, macos-14, ubuntu-latest, windows-latest are available)
|
||||||
$test_os = [
|
$test_os = [
|
||||||
'macos-14',
|
'macos-14',
|
||||||
// 'macos-13',
|
'macos-13',
|
||||||
'ubuntu-latest',
|
'ubuntu-latest',
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -39,8 +37,8 @@ $prefer_pre_built = false;
|
|||||||
|
|
||||||
// If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`).
|
// If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`).
|
||||||
$extensions = match (PHP_OS_FAMILY) {
|
$extensions = match (PHP_OS_FAMILY) {
|
||||||
'Linux', 'Darwin' => 'openssl',
|
'Linux', 'Darwin' => 'imagick',
|
||||||
'Windows' => 'openssl',
|
'Windows' => 'ast',
|
||||||
};
|
};
|
||||||
|
|
||||||
// If you want to test lib-suggests feature with extension, add them below (comma separated, example `libwebp,libavif`).
|
// If you want to test lib-suggests feature with extension, add them below (comma separated, example `libwebp,libavif`).
|
||||||
|
|||||||
Reference in New Issue
Block a user