Skip to content

Commit 9cf7eb3

Browse files
chore: Dropping Java from CI and release workflows (#5374)
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
1 parent 012f834 commit 9cf7eb3

File tree

5 files changed

+276
-685
lines changed

5 files changed

+276
-685
lines changed

.github/workflows/build_wheels.yml

Lines changed: 191 additions & 191 deletions
Original file line numberDiff line numberDiff line change
@@ -1,191 +1,191 @@
1-
name: build wheels
2-
3-
# Call this workflow from other workflows in the repository by specifying "uses: ./.github/workflows/build_wheels.yml"
4-
# Developers who are starting a new release should use this workflow to ensure wheels will be built correctly.
5-
# Devs should check out their fork, add a tag to the last master commit on their fork, and run the release off of their fork on the added tag to ensure wheels will be built correctly.
6-
on:
7-
workflow_dispatch: # Allows manual trigger of the workflow
8-
inputs:
9-
custom_version: # Optional input for a custom version
10-
description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
11-
required: false
12-
type: string
13-
token:
14-
description: 'Personal Access Token'
15-
required: true
16-
default: ""
17-
type: string
18-
workflow_call:
19-
inputs:
20-
custom_version: # Optional input for a custom version
21-
description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
22-
required: false
23-
type: string
24-
token:
25-
description: 'Personal Access Token'
26-
required: true
27-
default: ""
28-
type: string
29-
30-
jobs:
31-
build-python-wheel:
32-
name: Build wheels and source
33-
runs-on: ubuntu-latest
34-
steps:
35-
- uses: actions/checkout@v4
36-
- name: Setup Python
37-
uses: actions/setup-python@v5
38-
with:
39-
python-version: "3.11"
40-
architecture: x64
41-
- name: Setup Node
42-
uses: actions/setup-node@v3
43-
with:
44-
node-version-file: './ui/.nvmrc'
45-
registry-url: 'https://registry.npmjs.org'
46-
- name: Build UI
47-
run: make build-ui
48-
- id: get-version
49-
uses: ./.github/actions/get-semantic-release-version
50-
with:
51-
custom_version: ${{ github.event.inputs.custom_version }}
52-
token: ${{ github.event.inputs.token }}
53-
- name: Checkout version and install dependencies
54-
env:
55-
VERSION: ${{ steps.get-version.outputs.release_version }}
56-
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
57-
run: |
58-
git fetch --tags
59-
git checkout ${VERSION}
60-
python -m pip install build
61-
- name: Build feast
62-
run: python -m build
63-
- uses: actions/upload-artifact@v4
64-
with:
65-
name: python-wheels
66-
path: dist/*
67-
68-
# We add this step so the docker images can be built as part of the pre-release verification steps.
69-
build-docker-images:
70-
name: Build Docker images
71-
runs-on: ubuntu-latest
72-
needs: [ build-python-wheel ]
73-
strategy:
74-
matrix:
75-
component: [ feature-server-dev, feature-server-java, feature-transformation-server, feast-operator ]
76-
env:
77-
REGISTRY: quay.io/feastdev
78-
steps:
79-
- uses: actions/checkout@v4
80-
- name: Free Disk Space (Ubuntu)
81-
uses: jlumbroso/free-disk-space@v1.3.1
82-
with:
83-
android: true
84-
dotnet: true
85-
haskell: true
86-
large-packages: false
87-
docker-images: false
88-
swap-storage: false
89-
tool-cache: false
90-
- name: Set up QEMU
91-
uses: docker/setup-qemu-action@v3
92-
- name: Set up Docker Buildx
93-
uses: docker/setup-buildx-action@v3
94-
with:
95-
install: true
96-
- id: get-version
97-
uses: ./.github/actions/get-semantic-release-version
98-
with:
99-
custom_version: ${{ github.event.inputs.custom_version }}
100-
token: ${{ github.event.inputs.token }}
101-
- name: Build image
102-
env:
103-
VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }}
104-
RELEASE_VERSION: ${{ steps.get-version.outputs.release_version }}
105-
run: |
106-
echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION"
107-
make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX}
108-
109-
verify-python-wheels:
110-
name: Verify Python wheels
111-
runs-on: ${{ matrix.os }}
112-
needs: [ build-python-wheel ]
113-
strategy:
114-
matrix:
115-
os: [ ubuntu-latest, macos-13 ]
116-
python-version: [ "3.9", "3.10", "3.11" ]
117-
from-source: [ True, False ]
118-
env:
119-
# this script is for testing servers
120-
# it starts server with timeout and checks whether process killed by timeout (started healthy) or died by itself
121-
TEST_SCRIPT: |
122-
timeout 10s $@ & pid=$!
123-
wait $pid
124-
ret=$?
125-
if [[ $ret -ne 124 ]]
126-
then
127-
exit $ret
128-
else
129-
echo "Succeeded!"
130-
fi
131-
steps:
132-
- uses: actions/checkout@v4
133-
- name: Setup Python
134-
id: setup-python
135-
uses: actions/setup-python@v5
136-
with:
137-
python-version: ${{ matrix.python-version }}
138-
architecture: x64
139-
- uses: actions/download-artifact@v4.1.7
140-
with:
141-
name: python-wheels
142-
path: dist
143-
- name: Install OS X dependencies
144-
if: matrix.os == 'macos-13'
145-
run: brew install coreutils
146-
- name: Install wheel
147-
if: ${{ !matrix.from-source }}
148-
# try to install all wheels; only the current platform wheel should be actually installed
149-
run: |
150-
cd dist/
151-
pip install wheel
152-
for f in *.whl; do pip install $f || true; done
153-
- name: Install sdist
154-
# try to install the sdist
155-
if: ${{ matrix.from-source }}
156-
run: pip install dist/*tar.gz
157-
# Validate that the feast version installed is not development and is the correct version of the tag we ran it off of.
158-
- id: get-version
159-
uses: ./.github/actions/get-semantic-release-version
160-
with:
161-
custom_version: ${{ github.event.inputs.custom_version }}
162-
token: ${{ github.event.inputs.token }}
163-
- name: Validate Feast Version
164-
env:
165-
VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }}
166-
run: |
167-
feast version
168-
if ! VERSION_OUTPUT=$(feast version); then
169-
echo "Error: Failed to get Feast version."
170-
exit 1
171-
fi
172-
VERSION_REGEX='[0-9]+\.[0-9]+\.[0-9]+'
173-
OUTPUT_REGEX='^Feast SDK Version: "$VERSION_REGEX"$'
174-
VERSION=$(echo $VERSION_OUTPUT | grep -oE "$VERSION_REGEX")
175-
OUTPUT=$(echo $VERSION_OUTPUT | grep -E "$REGEX")
176-
echo "Installed Feast Version: $VERSION and using Feast Version: $VERSION_WITHOUT_PREFIX"
177-
if [ -n "$OUTPUT" ] && [ "$VERSION" = "$VERSION_WITHOUT_PREFIX" ]; then
178-
echo "Correct Feast Version Installed"
179-
else
180-
echo "$VERSION_OUTPUT from installed wheel is not in the correct format or doesn't have the right version $VERSION."
181-
exit 1
182-
fi
183-
# This is temporarily disabled.
184-
# - name: Smoke test
185-
# run: |
186-
# feast init test_repo
187-
# cd test_repo/feature_repo
188-
# feast apply
189-
# echo "$TEST_SCRIPT" > run-and-wait.sh
190-
# bash run-and-wait.sh feast serve
191-
# bash run-and-wait.sh feast ui
1+
name: build wheels
2+
3+
# Call this workflow from other workflows in the repository by specifying "uses: ./.github/workflows/build_wheels.yml"
4+
# Developers who are starting a new release should use this workflow to ensure wheels will be built correctly.
5+
# Devs should check out their fork, add a tag to the last master commit on their fork, and run the release off of their fork on the added tag to ensure wheels will be built correctly.
6+
on:
7+
workflow_dispatch: # Allows manual trigger of the workflow
8+
inputs:
9+
custom_version: # Optional input for a custom version
10+
description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
11+
required: false
12+
type: string
13+
token:
14+
description: 'Personal Access Token'
15+
required: true
16+
default: ""
17+
type: string
18+
workflow_call:
19+
inputs:
20+
custom_version: # Optional input for a custom version
21+
description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
22+
required: false
23+
type: string
24+
token:
25+
description: 'Personal Access Token'
26+
required: true
27+
default: ""
28+
type: string
29+
30+
jobs:
31+
build-python-wheel:
32+
name: Build wheels and source
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v4
36+
- name: Setup Python
37+
uses: actions/setup-python@v5
38+
with:
39+
python-version: "3.11"
40+
architecture: x64
41+
- name: Setup Node
42+
uses: actions/setup-node@v3
43+
with:
44+
node-version-file: './ui/.nvmrc'
45+
registry-url: 'https://registry.npmjs.org'
46+
- name: Build UI
47+
run: make build-ui
48+
- id: get-version
49+
uses: ./.github/actions/get-semantic-release-version
50+
with:
51+
custom_version: ${{ github.event.inputs.custom_version }}
52+
token: ${{ github.event.inputs.token }}
53+
- name: Checkout version and install dependencies
54+
env:
55+
VERSION: ${{ steps.get-version.outputs.release_version }}
56+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
57+
run: |
58+
git fetch --tags
59+
git checkout ${VERSION}
60+
python -m pip install build
61+
- name: Build feast
62+
run: python -m build
63+
- uses: actions/upload-artifact@v4
64+
with:
65+
name: python-wheels
66+
path: dist/*
67+
68+
# We add this step so the docker images can be built as part of the pre-release verification steps.
69+
build-docker-images:
70+
name: Build Docker images
71+
runs-on: ubuntu-latest
72+
needs: [ build-python-wheel ]
73+
strategy:
74+
matrix:
75+
component: [ feature-server-dev, feature-transformation-server, feast-operator ]
76+
env:
77+
REGISTRY: quay.io/feastdev
78+
steps:
79+
- uses: actions/checkout@v4
80+
- name: Free Disk Space (Ubuntu)
81+
uses: jlumbroso/free-disk-space@v1.3.1
82+
with:
83+
android: true
84+
dotnet: true
85+
haskell: true
86+
large-packages: false
87+
docker-images: false
88+
swap-storage: false
89+
tool-cache: false
90+
- name: Set up QEMU
91+
uses: docker/setup-qemu-action@v3
92+
- name: Set up Docker Buildx
93+
uses: docker/setup-buildx-action@v3
94+
with:
95+
install: true
96+
- id: get-version
97+
uses: ./.github/actions/get-semantic-release-version
98+
with:
99+
custom_version: ${{ github.event.inputs.custom_version }}
100+
token: ${{ github.event.inputs.token }}
101+
- name: Build image
102+
env:
103+
VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }}
104+
RELEASE_VERSION: ${{ steps.get-version.outputs.release_version }}
105+
run: |
106+
echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION"
107+
make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX}
108+
109+
verify-python-wheels:
110+
name: Verify Python wheels
111+
runs-on: ${{ matrix.os }}
112+
needs: [ build-python-wheel ]
113+
strategy:
114+
matrix:
115+
os: [ ubuntu-latest, macos-13 ]
116+
python-version: [ "3.9", "3.10", "3.11" ]
117+
from-source: [ True, False ]
118+
env:
119+
# this script is for testing servers
120+
# it starts server with timeout and checks whether process killed by timeout (started healthy) or died by itself
121+
TEST_SCRIPT: |
122+
timeout 10s $@ & pid=$!
123+
wait $pid
124+
ret=$?
125+
if [[ $ret -ne 124 ]]
126+
then
127+
exit $ret
128+
else
129+
echo "Succeeded!"
130+
fi
131+
steps:
132+
- uses: actions/checkout@v4
133+
- name: Setup Python
134+
id: setup-python
135+
uses: actions/setup-python@v5
136+
with:
137+
python-version: ${{ matrix.python-version }}
138+
architecture: x64
139+
- uses: actions/download-artifact@v4.1.7
140+
with:
141+
name: python-wheels
142+
path: dist
143+
- name: Install OS X dependencies
144+
if: matrix.os == 'macos-13'
145+
run: brew install coreutils
146+
- name: Install wheel
147+
if: ${{ !matrix.from-source }}
148+
# try to install all wheels; only the current platform wheel should be actually installed
149+
run: |
150+
cd dist/
151+
pip install wheel
152+
for f in *.whl; do pip install $f || true; done
153+
- name: Install sdist
154+
# try to install the sdist
155+
if: ${{ matrix.from-source }}
156+
run: pip install dist/*tar.gz
157+
# Validate that the feast version installed is not development and is the correct version of the tag we ran it off of.
158+
- id: get-version
159+
uses: ./.github/actions/get-semantic-release-version
160+
with:
161+
custom_version: ${{ github.event.inputs.custom_version }}
162+
token: ${{ github.event.inputs.token }}
163+
- name: Validate Feast Version
164+
env:
165+
VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }}
166+
run: |
167+
feast version
168+
if ! VERSION_OUTPUT=$(feast version); then
169+
echo "Error: Failed to get Feast version."
170+
exit 1
171+
fi
172+
VERSION_REGEX='[0-9]+\.[0-9]+\.[0-9]+'
173+
OUTPUT_REGEX='^Feast SDK Version: "$VERSION_REGEX"$'
174+
VERSION=$(echo $VERSION_OUTPUT | grep -oE "$VERSION_REGEX")
175+
OUTPUT=$(echo $VERSION_OUTPUT | grep -E "$REGEX")
176+
echo "Installed Feast Version: $VERSION and using Feast Version: $VERSION_WITHOUT_PREFIX"
177+
if [ -n "$OUTPUT" ] && [ "$VERSION" = "$VERSION_WITHOUT_PREFIX" ]; then
178+
echo "Correct Feast Version Installed"
179+
else
180+
echo "$VERSION_OUTPUT from installed wheel is not in the correct format or doesn't have the right version $VERSION."
181+
exit 1
182+
fi
183+
# This is temporarily disabled.
184+
# - name: Smoke test
185+
# run: |
186+
# feast init test_repo
187+
# cd test_repo/feature_repo
188+
# feast apply
189+
# echo "$TEST_SCRIPT" > run-and-wait.sh
190+
# bash run-and-wait.sh feast serve
191+
# bash run-and-wait.sh feast ui

0 commit comments

Comments
 (0)