| 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 python3 | |
| run: | | |
| apt-get update -q | |
| apt-get install -qy python3 | |
| - name: Install bazel | |
| run: | | |
| apt-get install -qy wget | |
| mkdir $HOME/bin | |
| wget -O $HOME/bin/bazel https://github.com/bazelbuild/bazel/releases/download/5.3.2/bazel-5.3.2-linux-x86_64 | |
| chmod a+x $HOME/bin/bazel | |
| - name: Install git | |
| run: | | |
| apt-get install -qy --no-install-recommends git | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: recursive | |
| - name: Create package | |
| run: | | |
| cd $GITHUB_WORKSPACE | |
| rm -rf bazel-bin/php/protobuf-*.tgz | |
| $HOME/bin/bazel build php:release | |
| - name: Compile extension | |
| run: | | |
| cd /tmp | |
| MAKE="make -j$(nproc)" pecl install $GITHUB_WORKSPACE/bazel-bin/php/protobuf-*.tgz | |
| - name: Enable extension | |
| run: docker-php-ext-enable protobuf | |
| - name: Inspect extension | |
| run: php --ri protobuf |