Skip to content

Commit 012f834

Browse files
chore: Drop 3.9 from master CI and add 3.12 (feast-dev#5373)
Signed-off-by: Francisco Javier Arceo <[email protected]>
1 parent 4777c03 commit 012f834

File tree

1 file changed

+130
-130
lines changed

1 file changed

+130
-130
lines changed

.github/workflows/master_only.yml

Lines changed: 130 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,130 @@
1-
name: integration-tests-and-build
2-
3-
on:
4-
push:
5-
branches:
6-
- master
7-
8-
jobs:
9-
integration-test-python:
10-
if: github.repository == 'feast-dev/feast'
11-
runs-on: ${{ matrix.os }}
12-
strategy:
13-
fail-fast: false
14-
matrix:
15-
python-version: ["3.9", "3.10", "3.11"]
16-
os: [ ubuntu-latest ]
17-
env:
18-
OS: ${{ matrix.os }}
19-
PYTHON: ${{ matrix.python-version }}
20-
services:
21-
redis:
22-
image: redis
23-
ports:
24-
- 6379:6379
25-
options: >-
26-
--health-cmd "redis-cli ping"
27-
--health-interval 10s
28-
--health-timeout 5s
29-
--health-retries 5
30-
steps:
31-
- uses: actions/checkout@v4
32-
- name: Setup Python
33-
id: setup-python
34-
uses: actions/setup-python@v5
35-
with:
36-
python-version: ${{ matrix.python-version }}
37-
architecture: x64
38-
- name: Authenticate to Google Cloud
39-
uses: 'google-github-actions/auth@v1'
40-
with:
41-
credentials_json: '${{ secrets.GCP_SA_KEY }}'
42-
- name: Set up gcloud SDK
43-
uses: google-github-actions/setup-gcloud@v1
44-
with:
45-
project_id: ${{ secrets.GCP_PROJECT_ID }}
46-
- name: Use gcloud CLI
47-
run: gcloud info
48-
- name: Set up AWS SDK
49-
uses: aws-actions/configure-aws-credentials@v1
50-
with:
51-
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
52-
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
53-
aws-region: us-west-2
54-
- name: Use AWS CLI
55-
run: aws sts get-caller-identity
56-
- name: Install the latest version of uv
57-
uses: astral-sh/setup-uv@v5
58-
with:
59-
enable-cache: true
60-
- name: Install dependencies
61-
run: make install-python-dependencies-ci
62-
- name: Setup Redis Cluster
63-
run: |
64-
docker pull vishnunair/docker-redis-cluster:latest
65-
docker run -d -p 6001:6379 -p 6002:6380 -p 6003:6381 -p 6004:6382 -p 6005:6383 -p 6006:6384 --name redis-cluster vishnunair/docker-redis-cluster
66-
- name: Test python and go
67-
env:
68-
SNOWFLAKE_CI_DEPLOYMENT: ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
69-
SNOWFLAKE_CI_USER: ${{ secrets.SNOWFLAKE_CI_USER }}
70-
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
71-
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
72-
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
73-
run: make test-python-integration
74-
- name: Benchmark python
75-
env:
76-
SNOWFLAKE_CI_DEPLOYMENT: ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
77-
SNOWFLAKE_CI_USER: ${{ secrets.SNOWFLAKE_CI_USER }}
78-
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
79-
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
80-
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
81-
run: pytest --verbose --color=yes sdk/python/tests --integration --benchmark --benchmark-autosave --benchmark-save-data --durations=5
82-
- name: Upload Benchmark Artifact to S3
83-
run: aws s3 cp --recursive .benchmarks s3://feast-ci-pytest-benchmark
84-
- name: Minimize uv cache
85-
run: uv cache prune --ci
86-
87-
build-all-docker-images:
88-
if: github.repository == 'feast-dev/feast'
89-
runs-on: ubuntu-latest
90-
strategy:
91-
matrix:
92-
component: [ feature-server-dev, feature-transformation-server, feast-operator ]
93-
env:
94-
REGISTRY: quay.io/feastdev-ci
95-
steps:
96-
- uses: actions/checkout@v4
97-
- name: Free Disk Space (Ubuntu)
98-
uses: jlumbroso/[email protected]
99-
with:
100-
android: true
101-
dotnet: true
102-
haskell: true
103-
large-packages: false
104-
docker-images: false
105-
swap-storage: false
106-
tool-cache: false
107-
- name: Set up QEMU
108-
uses: docker/setup-qemu-action@v3
109-
- name: Set up Docker Buildx
110-
uses: docker/setup-buildx-action@v3
111-
with:
112-
install: true
113-
- name: Login to Quay.io
114-
uses: docker/login-action@v3
115-
with:
116-
registry: quay.io
117-
username: ${{ secrets.QUAYIO_CI_USERNAME }}
118-
password: ${{ secrets.QUAYIO_CI_TOKEN }}
119-
- name: Build image
120-
run: |
121-
make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${GITHUB_SHA}
122-
- name: Push image
123-
run: |
124-
if [[ "${{ matrix.component }}" == "feature-server-dev" ]]; then
125-
docker tag ${REGISTRY}/feature-server:${GITHUB_SHA} ${REGISTRY}/feature-server:develop
126-
docker push ${REGISTRY}/feature-server --all-tags
127-
else
128-
docker tag ${REGISTRY}/${{ matrix.component }}:${GITHUB_SHA} ${REGISTRY}/${{ matrix.component }}:develop
129-
docker push ${REGISTRY}/${{ matrix.component }} --all-tags
130-
fi
1+
name: integration-tests-and-build
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
integration-test-python:
10+
if: github.repository == 'feast-dev/feast'
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
python-version: ["3.10", "3.11", "3.12"]
16+
os: [ ubuntu-latest ]
17+
env:
18+
OS: ${{ matrix.os }}
19+
PYTHON: ${{ matrix.python-version }}
20+
services:
21+
redis:
22+
image: redis
23+
ports:
24+
- 6379:6379
25+
options: >-
26+
--health-cmd "redis-cli ping"
27+
--health-interval 10s
28+
--health-timeout 5s
29+
--health-retries 5
30+
steps:
31+
- uses: actions/checkout@v4
32+
- name: Setup Python
33+
id: setup-python
34+
uses: actions/setup-python@v5
35+
with:
36+
python-version: ${{ matrix.python-version }}
37+
architecture: x64
38+
- name: Authenticate to Google Cloud
39+
uses: 'google-github-actions/auth@v1'
40+
with:
41+
credentials_json: '${{ secrets.GCP_SA_KEY }}'
42+
- name: Set up gcloud SDK
43+
uses: google-github-actions/setup-gcloud@v1
44+
with:
45+
project_id: ${{ secrets.GCP_PROJECT_ID }}
46+
- name: Use gcloud CLI
47+
run: gcloud info
48+
- name: Set up AWS SDK
49+
uses: aws-actions/configure-aws-credentials@v1
50+
with:
51+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
52+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
53+
aws-region: us-west-2
54+
- name: Use AWS CLI
55+
run: aws sts get-caller-identity
56+
- name: Install the latest version of uv
57+
uses: astral-sh/setup-uv@v5
58+
with:
59+
enable-cache: true
60+
- name: Install dependencies
61+
run: make install-python-dependencies-ci
62+
- name: Setup Redis Cluster
63+
run: |
64+
docker pull vishnunair/docker-redis-cluster:latest
65+
docker run -d -p 6001:6379 -p 6002:6380 -p 6003:6381 -p 6004:6382 -p 6005:6383 -p 6006:6384 --name redis-cluster vishnunair/docker-redis-cluster
66+
- name: Test python and go
67+
env:
68+
SNOWFLAKE_CI_DEPLOYMENT: ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
69+
SNOWFLAKE_CI_USER: ${{ secrets.SNOWFLAKE_CI_USER }}
70+
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
71+
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
72+
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
73+
run: make test-python-integration
74+
- name: Benchmark python
75+
env:
76+
SNOWFLAKE_CI_DEPLOYMENT: ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
77+
SNOWFLAKE_CI_USER: ${{ secrets.SNOWFLAKE_CI_USER }}
78+
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
79+
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
80+
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
81+
run: pytest --verbose --color=yes sdk/python/tests --integration --benchmark --benchmark-autosave --benchmark-save-data --durations=5
82+
- name: Upload Benchmark Artifact to S3
83+
run: aws s3 cp --recursive .benchmarks s3://feast-ci-pytest-benchmark
84+
- name: Minimize uv cache
85+
run: uv cache prune --ci
86+
87+
build-all-docker-images:
88+
if: github.repository == 'feast-dev/feast'
89+
runs-on: ubuntu-latest
90+
strategy:
91+
matrix:
92+
component: [ feature-server-dev, feature-transformation-server, feast-operator ]
93+
env:
94+
REGISTRY: quay.io/feastdev-ci
95+
steps:
96+
- uses: actions/checkout@v4
97+
- name: Free Disk Space (Ubuntu)
98+
uses: jlumbroso/[email protected]
99+
with:
100+
android: true
101+
dotnet: true
102+
haskell: true
103+
large-packages: false
104+
docker-images: false
105+
swap-storage: false
106+
tool-cache: false
107+
- name: Set up QEMU
108+
uses: docker/setup-qemu-action@v3
109+
- name: Set up Docker Buildx
110+
uses: docker/setup-buildx-action@v3
111+
with:
112+
install: true
113+
- name: Login to Quay.io
114+
uses: docker/login-action@v3
115+
with:
116+
registry: quay.io
117+
username: ${{ secrets.QUAYIO_CI_USERNAME }}
118+
password: ${{ secrets.QUAYIO_CI_TOKEN }}
119+
- name: Build image
120+
run: |
121+
make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${GITHUB_SHA}
122+
- name: Push image
123+
run: |
124+
if [[ "${{ matrix.component }}" == "feature-server-dev" ]]; then
125+
docker tag ${REGISTRY}/feature-server:${GITHUB_SHA} ${REGISTRY}/feature-server:develop
126+
docker push ${REGISTRY}/feature-server --all-tags
127+
else
128+
docker tag ${REGISTRY}/${{ matrix.component }}:${GITHUB_SHA} ${REGISTRY}/${{ matrix.component }}:develop
129+
docker push ${REGISTRY}/${{ matrix.component }} --all-tags
130+
fi

0 commit comments

Comments
 (0)