From 5edc8442a4bc7b68e9b974de4bc0ff8e42ec6ed6 Mon Sep 17 00:00:00 2001 From: mkruskal-google <62662355+mkruskal-google@users.noreply.github.com> Date: Tue, 5 Apr 2022 12:05:32 -0700 Subject: [PATCH] Merge pull request #9727 from mlocati/build-packaged-php-extension Fix building packaged PHP extension (cherry picked from commit 7f9901c5f640fe0fbcd5dbdd303a269908fb3b62) --- .github/workflows/php-ext.yml | 43 +++++++++++++++++++++++++++++++ php/ext/google/protobuf/config.m4 | 1 + 2 files changed, 44 insertions(+) create mode 100644 .github/workflows/php-ext.yml diff --git a/.github/workflows/php-ext.yml b/.github/workflows/php-ext.yml new file mode 100644 index 000000000000..f24f6bf62b0d --- /dev/null +++ b/.github/workflows/php-ext.yml @@ -0,0 +1,43 @@ +name: PHP extension + +on: + - push + - pull_request + +jobs: + build-php: + name: Build PHP extension + runs-on: ubuntu-latest + container: ${{ matrix.php-image }} + strategy: + matrix: + php-image: + - php:7.4-cli + - php:8.1-cli + steps: + - name: Install git + run: | + apt-get update -q + apt-get install -qy --no-install-recommends git + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Prepare source code + run: | + rm -rf "$GITHUB_WORKSPACE/php/ext/google/protobuf/third_party" + cp -r "$GITHUB_WORKSPACE/third_party" "$GITHUB_WORKSPACE/php/ext/google/protobuf" + cp "$GITHUB_WORKSPACE/LICENSE" "$GITHUB_WORKSPACE/php/ext/google/protobuf" + - name: Create package + run: | + cd /tmp + rm -rf protobuf-*.tgz + pecl package "$GITHUB_WORKSPACE/php/ext/google/protobuf/package.xml" + - name: Compile extension + run: | + cd /tmp + MAKE="make -j$(nproc)" pecl install protobuf-*.tgz + - name: Enable extension + run: docker-php-ext-enable protobuf + - name: Inspect extension + run: php --ri protobuf diff --git a/php/ext/google/protobuf/config.m4 b/php/ext/google/protobuf/config.m4 index 74cae3c7ef8d..01bedb8a2039 100644 --- a/php/ext/google/protobuf/config.m4 +++ b/php/ext/google/protobuf/config.m4 @@ -6,5 +6,6 @@ if test "$PHP_PROTOBUF" != "no"; then protobuf, arena.c array.c convert.c def.c map.c message.c names.c php-upb.c protobuf.c third_party/utf8_range/naive.c third_party/utf8_range/range2-neon.c third_party/utf8_range/range2-sse.c, $ext_shared, , -std=gnu99) + PHP_ADD_BUILD_DIR($ext_builddir/third_party/utf8_range) fi