mirror of
https://github.com/php-win-ext/php-windows-builder.git
synced 2026-03-24 00:52:06 +01:00
Split pecl builds to a separate workflow
GitHub Actions only allows 10 inputs in a workflow dispatch event. So we split the extension workflow into 2
This commit is contained in:
36
.github/workflows/extension.yml
vendored
36
.github/workflows/extension.yml
vendored
@@ -37,14 +37,6 @@ on:
|
||||
build-directory:
|
||||
description: 'Directory to build the extension in'
|
||||
required: false
|
||||
artifact-naming-scheme:
|
||||
description: 'Naming schema for the artifacts, pie or pecl'
|
||||
required: false
|
||||
default: 'pie'
|
||||
release-pecl:
|
||||
description: 'Upload to PECL GitHub Release'
|
||||
required: false
|
||||
default: 'false'
|
||||
jobs:
|
||||
get-extension-matrix:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -75,7 +67,7 @@ jobs:
|
||||
- name: Build the extension
|
||||
uses: ./extension
|
||||
with:
|
||||
artifact-naming-scheme: ${{ inputs.artifact-naming-scheme }}
|
||||
artifact-naming-scheme: pie
|
||||
extension-url: ${{ inputs.extension-url }}
|
||||
extension-ref: ${{ inputs.extension-ref }}
|
||||
php-version: ${{ matrix.php-version }}
|
||||
@@ -96,29 +88,3 @@ jobs:
|
||||
with:
|
||||
name: artifacts
|
||||
delete-merged: true
|
||||
|
||||
pecl-release:
|
||||
if: ${{ inputs.release-pecl }} == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
needs: artifacts
|
||||
steps:
|
||||
- name: Get artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: artifacts
|
||||
path: artifacts
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
ls -l artifacts
|
||||
extension=$(basename "${{ inputs.extension-url }}")
|
||||
mkdir -p /tmp/$extension/${{ inputs.extension-ref }}/
|
||||
cp -a artifacts/* /tmp/$extension/${{ inputs.extension-ref }}/
|
||||
cd /tmp || exit 1
|
||||
zip -r $extension-${{ inputs.extension-ref }}.zip $extension
|
||||
if ! gh release view pecl -R ${{ github.repository }}; then
|
||||
gh release create pecl $extension-${{ inputs.extension-ref }}.zip -t pecl -n pecl -R ${{ github.repository }}
|
||||
else
|
||||
gh release upload pecl $extension-${{ inputs.extension-ref }}.zip -R ${{ github.repository }} --clobber
|
||||
fi
|
||||
|
||||
115
.github/workflows/pecl.yml
vendored
Normal file
115
.github/workflows/pecl.yml
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
name: Build PHP Extension From PECL
|
||||
run-name: Build PHP Extension ${{ inputs.extension-url }}, ${{ inputs.extension-ref }}
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
extension-url:
|
||||
description: 'Extension URL'
|
||||
required: true
|
||||
extension-ref:
|
||||
description: 'Extension ref'
|
||||
required: true
|
||||
php-version-list:
|
||||
description: 'PHP versions to build'
|
||||
required: false
|
||||
arch-list:
|
||||
description: 'Architectures to build'
|
||||
required: false
|
||||
default: 'x64, x86'
|
||||
ts-list:
|
||||
description: 'Thread safety to build'
|
||||
required: false
|
||||
default: 'nts, ts'
|
||||
args:
|
||||
description: 'Configure arguments'
|
||||
required: false
|
||||
libs:
|
||||
description: 'Libraries'
|
||||
required: false
|
||||
run-tests:
|
||||
description: 'Run tests after building the extension'
|
||||
required: false
|
||||
default: 'false'
|
||||
test-runner:
|
||||
description: 'Test runner to use'
|
||||
required: false
|
||||
default: 'run-tests.php'
|
||||
build-directory:
|
||||
description: 'Directory to build the extension in'
|
||||
required: false
|
||||
jobs:
|
||||
get-extension-matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.extension-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Get the extension matrix
|
||||
id: extension-matrix
|
||||
uses: ./extension-matrix
|
||||
with:
|
||||
extension-url: ${{ inputs.extension-url }}
|
||||
extension-ref: ${{ inputs.extension-ref }}
|
||||
php-version-list: ${{ inputs.php-version-list }}
|
||||
arch-list: ${{ inputs.arch-list }}
|
||||
ts-list: ${{ inputs.ts-list }}
|
||||
|
||||
extension:
|
||||
needs: get-extension-matrix
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{fromJson(needs.get-extension-matrix.outputs.matrix)}}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Build the extension
|
||||
uses: ./extension
|
||||
with:
|
||||
artifact-naming-scheme: 'pecl'
|
||||
extension-url: ${{ inputs.extension-url }}
|
||||
extension-ref: ${{ inputs.extension-ref }}
|
||||
php-version: ${{ matrix.php-version }}
|
||||
arch: ${{ matrix.arch }}
|
||||
ts: ${{ matrix.ts }}
|
||||
args: ${{ inputs.args }}
|
||||
libs: ${{ inputs.libs }}
|
||||
build-directory: ${{ inputs.build-directory }}
|
||||
run-tests: ${{ inputs.run-tests }}
|
||||
test-runner: ${{ inputs.test-runner }}
|
||||
|
||||
artifacts:
|
||||
runs-on: ubuntu-latest
|
||||
needs: extension
|
||||
steps:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact/merge@v4
|
||||
with:
|
||||
name: artifacts
|
||||
delete-merged: true
|
||||
|
||||
pecl-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: artifacts
|
||||
steps:
|
||||
- name: Get artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: artifacts
|
||||
path: artifacts
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
ls -l artifacts
|
||||
extension=$(basename "${{ inputs.extension-url }}")
|
||||
mkdir -p /tmp/$extension/${{ inputs.extension-ref }}/
|
||||
cp -a artifacts/* /tmp/$extension/${{ inputs.extension-ref }}/
|
||||
cd /tmp || exit 1
|
||||
zip -r $extension-${{ inputs.extension-ref }}.zip $extension
|
||||
if ! gh release view pecl -R ${{ github.repository }}; then
|
||||
gh release create pecl $extension-${{ inputs.extension-ref }}.zip -t pecl -n pecl -R ${{ github.repository }}
|
||||
else
|
||||
gh release upload pecl $extension-${{ inputs.extension-ref }}.zip -R ${{ github.repository }} --clobber
|
||||
fi
|
||||
Reference in New Issue
Block a user