chromium/third_party/protobuf/.github/workflows/php-ext.yml

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 update -q
          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