|
65 | 65 | path: | |
66 | 66 | build/couchbase-php-client-*/**/* |
67 | 67 |
|
68 | | - build_alpine: |
| 68 | + build_alpine_3_19: |
69 | 69 | needs: source |
70 | | - name: alpine |
| 70 | + name: alpine_3_19 |
71 | 71 | runs-on: ubuntu-22.04 |
72 | 72 | container: |
73 | 73 | image: alpine:3.19 |
@@ -150,10 +150,10 @@ jobs: |
150 | 150 | path: | |
151 | 151 | couchbase-*-linux-musl-x86_64*.tgz |
152 | 152 |
|
153 | | - mock_alpine: |
| 153 | + mock_alpine_3_19: |
154 | 154 | needs: |
155 | 155 | - source |
156 | | - - build_alpine |
| 156 | + - build_alpine_3_19 |
157 | 157 | runs-on: ubuntu-22.04 |
158 | 158 | container: |
159 | 159 | image: alpine:3.19 |
@@ -211,6 +211,148 @@ jobs: |
211 | 211 | tar xf couchbase-*-linux-musl-x86_64.tgz |
212 | 212 | ruby ./bin/test.rb |
213 | 213 |
|
| 214 | + build_alpine: |
| 215 | + needs: source |
| 216 | + name: alpine |
| 217 | + runs-on: ubuntu-22.04 |
| 218 | + container: |
| 219 | + image: alpine:3.21 |
| 220 | + strategy: |
| 221 | + fail-fast: false |
| 222 | + matrix: |
| 223 | + php: |
| 224 | + - '84' |
| 225 | + abi: |
| 226 | + - default |
| 227 | + - locked |
| 228 | + steps: |
| 229 | + - name: Install build environment |
| 230 | + run: | |
| 231 | + apk update |
| 232 | + apk add --no-cache \ |
| 233 | + bash \ |
| 234 | + build-base \ |
| 235 | + ccache \ |
| 236 | + cmake \ |
| 237 | + curl \ |
| 238 | + g++ \ |
| 239 | + gcc \ |
| 240 | + git \ |
| 241 | + linux-headers \ |
| 242 | + make \ |
| 243 | + ninja-build \ |
| 244 | + php${{ matrix.php }}-dev \ |
| 245 | + php${{ matrix.php }}-pear \ |
| 246 | + openssl \ |
| 247 | + openssl-dev \ |
| 248 | + readline-dev \ |
| 249 | + ruby \ |
| 250 | + tar \ |
| 251 | + xz \ |
| 252 | + yaml-dev \ |
| 253 | + zlib-dev |
| 254 | + - uses: actions/download-artifact@v4 |
| 255 | + with: |
| 256 | + name: couchbase-${{ needs.source.outputs.extension_version }} |
| 257 | + - uses: actions/download-artifact@v4 |
| 258 | + with: |
| 259 | + name: scripts-${{ needs.source.outputs.extension_version }} |
| 260 | + - uses: hendrikmuhs/[email protected] |
| 261 | + with: |
| 262 | + max-size: 2G |
| 263 | + key: ${{ github.job }}-${{ matrix.php }} |
| 264 | + - name: Build |
| 265 | + run: | |
| 266 | + pecl${{ matrix.php }} bundle couchbase-${{ needs.source.outputs.extension_version }}.tgz |
| 267 | + if [ "${{ matrix.abi }}" = "locked" ] |
| 268 | + then |
| 269 | + export CB_ABI_VERSION=${{ needs.source.outputs.abi_version }} |
| 270 | + fi |
| 271 | + ( |
| 272 | + cd couchbase |
| 273 | + phpize${{ matrix.php }} |
| 274 | + ./configure --enable-couchbase --with-php-config=$(which php-config${{ matrix.php }}) |
| 275 | + mkdir target |
| 276 | + make INSTALL_ROOT="$(realpath target)" install |
| 277 | + ) |
| 278 | + PHP_VERSION_SHORT=${{ matrix.php }} |
| 279 | + PHP_VERSION="${PHP_VERSION_SHORT:0:1}.${PHP_VERSION_SHORT:1}" |
| 280 | + echo "PHP_VERSION=$PHP_VERSION" >> $GITHUB_ENV |
| 281 | + DIST_NAME=couchbase-${{ needs.source.outputs.extension_version }}-php${PHP_VERSION}-nts-linux-musl-x86_64${{ matrix.abi == 'locked' && '-abi' || '' }} |
| 282 | + mkdir ${DIST_NAME} |
| 283 | + cp -av couchbase/LICENSE 90-couchbase.ini couchbase/Couchbase couchbase/GPBMetadata ${DIST_NAME}/ |
| 284 | + find couchbase/target -name couchbase.so -exec cp -v {} ${DIST_NAME}/ \; |
| 285 | + strip --strip-all ${DIST_NAME}/couchbase.so |
| 286 | + if [ "${{ matrix.abi }}" = "locked" ] |
| 287 | + then |
| 288 | + mv ${DIST_NAME}/couchbase.so ${DIST_NAME}/couchbase_${CB_ABI_VERSION}.so |
| 289 | + fi |
| 290 | + tar cv ${DIST_NAME}/ | gzip -9 > ${DIST_NAME}.tgz |
| 291 | + - uses: actions/upload-artifact@v4 |
| 292 | + with: |
| 293 | + name: couchbase-${{ needs.source.outputs.extension_version }}-php${{ matrix.php }}-nts-linux-musl-x86_64${{ matrix.abi == 'locked' && '-abi' || '' }} |
| 294 | + path: | |
| 295 | + couchbase-*-linux-musl-x86_64*.tgz |
| 296 | +
|
| 297 | + mock_alpine: |
| 298 | + needs: |
| 299 | + - source |
| 300 | + - build_alpine |
| 301 | + runs-on: ubuntu-22.04 |
| 302 | + container: |
| 303 | + image: alpine:3.21 |
| 304 | + strategy: |
| 305 | + fail-fast: false |
| 306 | + matrix: |
| 307 | + php: |
| 308 | + - '84' |
| 309 | + steps: |
| 310 | + - name: Install test environment |
| 311 | + run: | |
| 312 | + apk update |
| 313 | + apk add --no-cache \ |
| 314 | + bash \ |
| 315 | + curl \ |
| 316 | + git \ |
| 317 | + php${{ matrix.php }}-dev \ |
| 318 | + php${{ matrix.php }}-pear \ |
| 319 | + php${{ matrix.php }}-dom \ |
| 320 | + php${{ matrix.php }}-intl \ |
| 321 | + php${{ matrix.php }}-mbstring \ |
| 322 | + php${{ matrix.php }}-pecl-pcov \ |
| 323 | + php${{ matrix.php }}-pecl-xdebug \ |
| 324 | + php${{ matrix.php }}-phar \ |
| 325 | + php${{ matrix.php }}-sockets \ |
| 326 | + php${{ matrix.php }}-tokenizer \ |
| 327 | + php${{ matrix.php }}-xml \ |
| 328 | + php${{ matrix.php }}-xmlwriter \ |
| 329 | + php${{ matrix.php }}-ctype \ |
| 330 | + openssl \ |
| 331 | + ruby \ |
| 332 | + tar \ |
| 333 | + xz \ |
| 334 | + yaml-dev \ |
| 335 | + zlib-dev |
| 336 | + - uses: actions/download-artifact@v4 |
| 337 | + with: |
| 338 | + name: couchbase-${{ needs.source.outputs.extension_version }} |
| 339 | + - uses: actions/download-artifact@v4 |
| 340 | + with: |
| 341 | + name: scripts-${{ needs.source.outputs.extension_version }} |
| 342 | + - uses: actions/download-artifact@v4 |
| 343 | + with: |
| 344 | + path: tests |
| 345 | + name: tests-${{ needs.source.outputs.extension_version }} |
| 346 | + - uses: actions/download-artifact@v4 |
| 347 | + with: |
| 348 | + name: couchbase-${{ needs.source.outputs.extension_version }}-php${{ matrix.php }}-nts-linux-musl-x86_64 |
| 349 | + - name: Test |
| 350 | + env: |
| 351 | + CB_PHP_NAME: php${{ matrix.php }} |
| 352 | + run: | |
| 353 | + tar xf couchbase-*-linux-musl-x86_64.tgz |
| 354 | + ruby ./bin/test.rb |
| 355 | +
|
214 | 356 | build_linux_x86_64: |
215 | 357 | needs: source |
216 | 358 | runs-on: ubuntu-20.04 |
|
0 commit comments