@@ -25,12 +25,16 @@ jobs:
2525 run : echo '::set-output name=WAS_EDITED::'$(test -n "$(git log --format=%H --since='24 hours ago')" && echo 'true' || echo 'false')
2626
2727 integration-test-python :
28- # all jobs MUST have this if check for 'ok-to-test' or 'approved' or 'lgtm' for security purposes.
2928 needs : [check_date]
30- runs-on : ${{ env.OS }}
29+ runs-on : ${{ matrix.os }}
30+ strategy :
31+ fail-fast : false
32+ matrix :
33+ python-version : [ "3.8" ]
34+ os : [ ubuntu-latest ]
3135 env :
32- OS : " ubuntu-latest "
33- PYTHON : " 3.7 "
36+ OS : ${{ matrix.os }}
37+ PYTHON : ${{ matrix.python-version }}
3438 services :
3539 redis :
3640 image : redis
4145 --health-interval 10s
4246 --health-timeout 5s
4347 --health-retries 5
44- steps :
48+ steps :
4549 - uses : actions/checkout@v2
4650 with :
4751 # pull_request_target runs the workflow in the context of the base repo
@@ -53,13 +57,13 @@ jobs:
5357 uses : actions/setup-python@v2
5458 id : setup-python
5559 with :
56- python-version : ${{ env .PYTHON }}
60+ python-version : ${{ os .PYTHON }}
5761 architecture : x64
5862 - name : Setup Go
5963 id : setup-go
6064 uses : actions/setup-go@v2
6165 with :
62- go-version : 1.17.7
66+ go-version : 1.18.0
6367 - name : Set up gcloud SDK
6468 uses : google-github-actions/setup-gcloud@v0
6569 with :
7882 run : aws sts get-caller-identity
7983 - name : Upgrade pip version
8084 run : |
81- pip install --upgrade "pip>=21.3.1"
85+ pip install --upgrade "pip>=21.3.1,<22.1 "
8286 - name : Get pip cache dir
8387 id : pip-cache
8488 run : |
9599 ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-
96100 - name : Install pip-tools
97101 run : pip install pip-tools
102+ - name : Install apache-arrow on ubuntu
103+ if : matrix.os == 'ubuntu-latest'
104+ run : |
105+ sudo apt update
106+ sudo apt install -y -V ca-certificates lsb-release wget
107+ wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
108+ sudo apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
109+ sudo apt update
110+ sudo apt install -y -V libarrow-dev
111+ - name : Install apache-arrow on macos
112+ if : matrix.os == 'macOS-latest'
113+ run : brew install apache-arrow
98114 - name : Install dependencies
99115 run : make install-python-ci-dependencies
100116 - name : Setup Redis Cluster
@@ -104,11 +120,21 @@ jobs:
104120 - name : Test python
105121 if : ${{ always() }} # this will guarantee that step won't be canceled and resources won't leak
106122 env :
123+ FEAST_SERVER_DOCKER_IMAGE_TAG : ${{ needs.build-docker-image.outputs.DOCKER_IMAGE_TAG }}
107124 FEAST_USAGE : " False"
108125 IS_TEST : " True"
109126 SNOWFLAKE_CI_DEPLOYMENT : ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
110127 SNOWFLAKE_CI_USER : ${{ secrets.SNOWFLAKE_CI_USER }}
111128 SNOWFLAKE_CI_PASSWORD : ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
112129 SNOWFLAKE_CI_ROLE : ${{ secrets.SNOWFLAKE_CI_ROLE }}
113130 SNOWFLAKE_CI_WAREHOUSE : ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
114- run : pytest -n 8 --cov=./ --cov-report=xml --verbose --color=yes sdk/python/tests --integration --durations=5
131+ run : pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread
132+ - name : Upload coverage to Codecov
133+ uses : codecov/codecov-action@v1
134+ with :
135+ token : ${{ secrets.CODECOV_TOKEN }}
136+ files : ./coverage.xml
137+ flags : integrationtests
138+ env_vars : OS,PYTHON
139+ fail_ci_if_error : true
140+ verbose : true
0 commit comments