diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index a21301e38f4..15be182e862 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -7,10 +7,19 @@ on: jobs: integration-test-python: - runs-on: ubuntu-latest - container: python:3.7 + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: [ 3.7, 3.8, 3.9 ] + os: [ ubuntu-latest, macOS-latest ] steps: - uses: actions/checkout@v2 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@master with: diff --git a/.github/workflows/pr_integration_tests.yml b/.github/workflows/pr_integration_tests.yml index 66fc6eb6430..cab2d212def 100644 --- a/.github/workflows/pr_integration_tests.yml +++ b/.github/workflows/pr_integration_tests.yml @@ -12,8 +12,12 @@ jobs: # all jobs MUST have this if check for 'ok-to-test' or 'approved' for security purposes. if: (github.event.action == 'labeled' && (github.event.label.name == 'approved' || github.event.label.name == 'ok-to-test')) || (github.event.action != 'labeled' && (contains(github.event.pull_request.labels.*.name, 'ok-to-test') || contains(github.event.pull_request.labels.*.name, 'approved'))) - runs-on: ubuntu-latest - container: python:3.7 + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: [ 3.7, 3.8, 3.9 ] + os: [ ubuntu-latest, macOS-latest ] services: redis: image: redis @@ -30,6 +34,11 @@ jobs: # code from the PR. ref: refs/pull/${{ github.event.pull_request.number }}/merge submodules: recursive + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@master with: diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 0b65101fca3..afa1b5043c9 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -1,13 +1,21 @@ name: unit-tests on: [push, pull_request] - jobs: unit-test-python: - runs-on: ubuntu-latest - container: python:3.7 + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: [ 3.7, 3.8, 3.9 ] + os: [ ubuntu-latest, macOS-latest] steps: - uses: actions/checkout@v2 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 - name: Install dependencies run: make install-python-ci-dependencies - name: Test Python diff --git a/sdk/python/setup.py b/sdk/python/setup.py index 34a51d3a296..dd600c826db 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -43,15 +43,14 @@ "fastavro>=0.22.11,<0.23", "google-api-core>=1.23.0", "googleapis-common-protos==1.52.*", - "grpcio>=1.32.0", + "grpcio>=1.34.0", "Jinja2>=2.0.0", "jsonschema", "mmh3", - "numpy<1.20.0", - "pandas~=1.0.0", + "pandas>=1.0.0", "pandavro==1.5.*", "protobuf>=3.10", - "pyarrow==2.0.0", + "pyarrow>=2.0.0", "pydantic>=1.0.0", "PyYAML==5.3.*", "tabulate==0.8.*", @@ -72,8 +71,8 @@ "flake8", "black==19.10b0", "isort>=5", - "grpcio-tools>=1.32.0", - "grpcio-testing>=1.32.0", + "grpcio-tools==1.34.0", + "grpcio-testing==1.34.0", "mock==2.0.0", "moto", "mypy==0.790", @@ -205,7 +204,7 @@ def run(self): ], entry_points={"console_scripts": ["feast=feast.cli:cli"]}, use_scm_version={"root": "../..", "relative_to": __file__, "tag_regex": TAG_REGEX}, - setup_requires=["setuptools_scm", "grpcio", "grpcio-tools>=1.32.0", "mypy-protobuf", "sphinx"], + setup_requires=["setuptools_scm", "grpcio", "grpcio-tools==1.34.0", "mypy-protobuf", "sphinx"], package_data={ "": [ "protos/feast/**/*.proto",