name: Python Tests

on:
  push:
    branches:
      - main
      - '[0-9]+.x'
  pull_request:
    branches:
      - main
      - '[0-9]+.x'
  workflow_dispatch:

jobs:
  build_wheels:
    name: Build Wheels
    runs-on: ubuntu-latest
    if: ${{ github.event.pull_request.head.repo.full_name == 'protocolbuffers/upb' }}
    env:
      DOCKER_IMAGE: gcr.io/protobuf-build/bazel/linux@sha256:9dba7773926bb6dce839de098948055c9e80260d7470a7fefb94b6a4fed363ba

    steps:
      - uses: actions/checkout@v2
      - name: Set up Cloud SDK
        uses: google-github-actions/auth@v0
        with:
          credentials_json: ${{ secrets.GOOGLE_CREDENTIALS }}
          export_environment_variables: true
      - name: Use gcloud CLI
        run: gcloud info
      - name: Configure Docker
        run: gcloud auth configure-docker
      - name: Pull Docker Image
        run: docker pull $DOCKER_IMAGE
      - name: Build Wheels
        run: cd ${{ github.workspace }} && docker run -e GOOGLE_APPLICATION_CREDENTIALS=/workspace/$(basename $GOOGLE_APPLICATION_CREDENTIALS) -v$PWD:/workspace $DOCKER_IMAGE build $BAZEL_CACHE --crosstool_top=@com_google_protobuf//toolchain:clang_suite --symlink_prefix=/ -c dbg python/dist python/dist:test_wheel
      - name: Move Wheels
        run: mkdir wheels && find _build/out -name 'protobuf*.whl' -exec mv '{}' wheels ';'
      - uses: actions/upload-artifact@v3
        with:
          name: python-wheels
          path: wheels/

  test_wheels:
    name: Test Wheels
    needs: build_wheels
    strategy:
      fail-fast: false   # Don't cancel all jobs if one fails.
      matrix:
        include:
          # Linux and Mac use the limited API, so all Python versions will use a single wheel.
          # As a result we can just test the oldest and newest supported Python versions and assume
          # this gives us sufficient test coverage.
          - { os: ubuntu-18.04, python-version: "3.7", architecture: x64 }
          - { os: macos-11, python-version: "3.7", architecture: x64 }
          - { os: ubuntu-20.04, python-version: "3.10", architecture: x64 }
          - { os: macos-12, python-version: "3.10", architecture: x64 }
          # Windows uses the full API up until Python 3.10, so each of these
          # jobs tests a distinct binary wheel.
          - { os: windows-2019, python-version: "3.7", architecture: x86 }
          - { os: windows-2019, python-version: "3.8", architecture: x86 }
          - { os: windows-2019, python-version: "3.9", architecture: x86 }
          - { os: windows-2019, python-version: "3.10", architecture: x86 }
          - { os: windows-2019, python-version: "3.7", architecture: x64 }
          - { os: windows-2019, python-version: "3.8", architecture: x64 }
          - { os: windows-2019, python-version: "3.9", architecture: x64 }
          - { os: windows-2019, python-version: "3.10", architecture: x64 }
    runs-on: ${{ matrix.os }}
    defaults:
      run:
        shell: bash
    steps:
      - name: Download Wheels
        uses: actions/download-artifact@v3
        with:
          name: python-wheels
          path: wheels
      - uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
          architecture: ${{ matrix.architecture }}
      - name: Setup Python venv
        run: |
          python -m pip install --upgrade pip
          python -m venv env
          # Windows uses 'Scripts' instead of 'bin'
          source env/bin/activate || source env/Scripts/activate
          echo "VIRTUAL ENV:" $VIRTUAL_ENV
      - name: Install tzdata
        run: pip install tzdata
        # Only needed on Windows, Linux ships with tzdata.
        if: ${{ contains(matrix.os, 'windows') }}
      - name: Install numpy
        run: pip install numpy
      - name: Install Protobuf Wheels
        run: pip install -vvv --no-index --find-links wheels protobuf protobuftests
      - name: Test that module is importable
        run: python -v -c 'from google._upb import _message; assert "google._upb._message.MessageMeta" in str(_message.MessageMeta)'
        if: ${{ !matrix.pure_python }}
      - name: Run the unit tests
        run: |
          TESTS=$(pip show -f protobuftests | grep pb_unit_tests.*py$ | sed 's,/,.,g' | sed 's,\\,.,g' | sed -E 's,.py$,,g')
          for test in $TESTS; do
            python -m unittest -v $test
          done

  test_pure_python_wheels:
    name: Test Pure Python Wheels
    needs: build_wheels
    strategy:
      fail-fast: false   # Don't cancel all jobs if one fails.
      matrix:
        python-version: ["3.7", "3.10"]
    runs-on: ubuntu-latest

    steps:
      - name: Download Wheels
        uses: actions/download-artifact@v3
        with:
          name: python-wheels
          path: wheels
      - name: Delete Binary Wheels
        run: find wheels -type f | grep -v none-any | xargs rm
      - uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
      - name: Setup Python venv
        run: |
          python -m pip install --upgrade pip
          python -m venv env
          source env/bin/activate
          echo "VIRTUAL ENV:" $VIRTUAL_ENV
      - name: Install numpy
        run: pip install numpy
      - name: Install Protobuf Wheels
        run: pip install -vvv --no-index --find-links wheels protobuf protobuftests
      - name: Run the unit tests
        run: |
          TESTS=$(pip show -f protobuftests | grep _test.py | sed 's,/,.,g' | sed -E 's,.py$,,g')
          for test in $TESTS; do
            python -m unittest -v $test
          done
