-
Notifications
You must be signed in to change notification settings - Fork 23
151 lines (138 loc) · 3.76 KB
/
build.yml
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Build, test, release
on:
push:
pull_request:
branches: [ main ]
defaults:
run:
working-directory: ext
jobs:
linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['8.0', '8.1', '8.2', '8.3']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: Build
run: |
phpize
./configure
make
- name: Test
env:
TEST_PHP_ARGS: "-q" #do not try to submit failures
run: make test TESTS=--show-diff
macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
php: [ '8.0', '8.1', '8.2', '8.3' ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: build
run: |
phpize
./configure
make
- name: test
env:
TEST_PHP_ARGS: "-q" #do not try to submit failures
run: make test TESTS=--show-diff
pecl-package:
runs-on: ubuntu-latest
container:
image: php:8.3-cli
steps:
- uses: actions/checkout@v4
- name: Package and copy
run: |
mkdir binaries
pear package-validate
pear package
cp opentelemetry-*.tgz binaries/
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: opentelemetry-pecl
path: ext/binaries/*.tgz
if-no-files-found: error
windows:
runs-on: windows-2022
continue-on-error: false
strategy:
fail-fast: false
matrix:
php: ['8.0', '8.1', '8.2', '8.3']
ts: ['ts', 'nts']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install PHP ${{ matrix.php }}-${{ matrix.ts }}
id: setup-php-sdk
uses: php/[email protected]
with:
version: ${{ matrix.php }}
arch: x64
ts: ${{ matrix.ts }}
- name: Install dependencies
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
toolset: ${{ steps.setup-php-sdk.outputs.toolset }}
- name: Build
run: |
phpize
./configure --enable-opentelemetry --with-prefix=${{ steps.setup-php-sdk.outputs.prefix }}
nmake
- name: Test
env:
TEST_PHP_ARGS: "-q"
run: nmake test TESTS=--show-diff
- name: Copy binaries
env:
BUILD_NAME: "opentelemetry-${{matrix.php}}-windows-x64-${{matrix.ts}}"
run: |
md binaries\$BUILD_NAME
$file = Get-ChildItem -Path x64 -Recurse -Filter php_opentelemetry.dll
Copy-Item -Path $file.FullName -Destination binaries\$BUILD_NAME
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: opentelemetry-${{matrix.php}}-windows-x64-${{matrix.ts}}
path: ext\x64\**\php_opentelemetry.dll
if-no-files-found: error
release-if-tag:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs: [linux, pecl-package, windows]
continue-on-error: false
steps:
- name: Checkout
uses: actions/checkout@v3
- name: download-artifacts
uses: actions/download-artifact@v4
with:
path: ext/artifacts
- name: zip
run: |
cd artifacts
find . -maxdepth 1 -type d -exec zip -jr {}.zip {} \;
- name: Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
draft: true
files: "ext/artifacts/*.zip"