name: Python Tests

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
  workflow_dispatch:

jobs:
  build_wheels:
    name: Build Wheels
    runs-on: ubuntu-latest
    if: ${{ github.repository_owner == 'protocolbuffers' }}
    env:
      DOCKER_IMAGE: gcr.io/protobuf-build/bazel/linux@sha256:2bfd061284eff8234f2fcca16d71d43c69ccf3a22206628b54c204a6a9aac277
      BAZEL_CACHE: --remote_cache=https://storage.googleapis.com/protobuf-bazel-cache --google_default_credentials

    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-10.15, 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 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 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
