-
Notifications
You must be signed in to change notification settings - Fork 40
103 lines (100 loc) · 3.08 KB
/
extension.yml
File metadata and controls
103 lines (100 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Caution: This workflow is internal to the php-windows-builder repository.
# Do not copy this workflow to your repository.
# Instead, refer to the workflows in the examples/ directory.
name: Build PHP Extension
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:
type: choice
options: ['x64', 'x86', 'x64,x86']
description: 'Architectures to build'
required: false
default: 'x64,x86'
ts-list:
type: choice
options: ['nts', 'ts', 'nts,ts']
description: 'Thread safety to build'
required: false
default: 'nts,ts'
args:
description: 'Configure arguments'
required: false
libs:
description: 'Libraries'
required: false
run-tests:
type: choice
options: ['true', 'false']
description: 'Run tests after building the extension'
required: false
default: 'false'
test-runner:
description: 'Test runner to use'
required: false
default: 'run-tests.php'
test-opcache-mode:
type: choice
options: ['on', 'off', 'both']
description: 'Test opcache mode'
required: false
default: 'off'
jobs:
get-extension-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.extension-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v5
- 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@v5
- name: Build the extension
uses: ./extension
with:
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 }}
run-tests: ${{ inputs.run-tests }}
test-runner: ${{ inputs.test-runner }}
test-opcache-mode: ${{ inputs.test-opcache-mode }}
build-directory: C:\build
artifacts:
runs-on: ubuntu-latest
needs: extension
steps:
- name: Upload artifacts
uses: actions/upload-artifact/merge@v5
with:
name: artifacts
delete-merged: true