-
Notifications
You must be signed in to change notification settings - Fork 25
147 lines (134 loc) · 3.69 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
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']
os: ['debian', 'alpine']
container:
image: ghcr.io/open-telemetry/opentelemetry-php-instrumentation/php:${{ matrix.php }}-${{ matrix.os }}-debug
steps:
- uses: actions/checkout@v4
- 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@v3
with:
name: opentelemetry-pecl
path: ext/binaries/*.tgz
if-no-files-found: error
windows:
runs-on: windows-2019
continue-on-error: false
strategy:
fail-fast: false
matrix:
php: ['8.0', '8.1', '8.2', '8.3']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install PHP ${{ matrix.php }}
id: setup-php-sdk
uses: php/[email protected]
with:
version: ${{ matrix.php }}
arch: x64
ts: nts
- 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-nts}}"
run: |
md binaries\$BUILD_NAME
copy x64\Release\php_opentelemetry.dll binaries\$BUILD_NAME\php_opentelemetry.dll
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: opentelemetry-${{matrix.php}}-windows-x64-nts
path: ext\x64\Release\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@v4
- name: mkdir
run: mkdir binaries
- name: download-artifacts
uses: actions/download-artifact@v3
with:
path: ext/binaries
- name: zip
run: find ./binaries/* -maxdepth 1 -type d -exec zip -jr {}.zip {} \;
- name: Release
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
draft: true
files: "**/binaries/*.zip"