Skip to content

Commit 0ad7fe3

Browse files
chore: Build docker images in build_wheels.yml (feast-dev#3244)
* Build docker images Signed-off-by: Felix Wang <wangfelix98@gmail.com> * Update docs Signed-off-by: Felix Wang <wangfelix98@gmail.com> * Also build Java docker image Signed-off-by: Felix Wang <wangfelix98@gmail.com> * Clean up Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Felix Wang <wangfelix98@gmail.com>
1 parent 95fdb19 commit 0ad7fe3

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

.github/workflows/build_wheels.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,27 @@ jobs:
151151
name: wheels
152152
path: dist/*
153153

154+
# We add this step so the docker images can be built as part of the pre-release verification steps.
155+
build-docker-images:
156+
runs-on: ubuntu-latest
157+
needs: get-version
158+
strategy:
159+
matrix:
160+
component: [feature-server, feature-server-python-aws, feature-server-java, feature-transformation-server]
161+
env:
162+
REGISTRY: feastdev
163+
steps:
164+
- uses: actions/checkout@v2
165+
- name: Set up QEMU
166+
uses: docker/setup-qemu-action@v1
167+
- name: Set up Docker Buildx
168+
uses: docker/setup-buildx-action@v1
169+
- name: Build image
170+
run: |
171+
make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX}
172+
env:
173+
VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }}
174+
154175
verify-python-wheels:
155176
runs-on: ${{ matrix.os }}
156177
needs: [build-python-wheel, build-source-distribution, get-version]

docs/project/release-process.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ After this step, you will have all the changes you need in the branch.
1919
### 2. Pre-release verification
2020
A lot of things can go wrong. One of the most common is getting the wheels to build correctly (and not accidentally
2121
building dev wheels from improper tagging or local code changes during the release process).
22+
Another possible failure is that the Docker images might not build correctly.
2223

23-
We verify the wheels building in **your fork** of Feast, not the main feast-dev/feast repo.
24+
We verify the building the wheels and Docker images in **your fork** of Feast, not the main feast-dev/feast repo.
2425

2526
#### For minor releases (e.g. v0.22.0)
2627
1. Merge upstream master changes into your **fork**. Make sure you are running the workflow off of your fork!
@@ -30,7 +31,7 @@ We verify the wheels building in **your fork** of Feast, not the main feast-dev/
3031
> This is important. If you don't have a tag, then the wheels you build will be **dev wheels**, which we can't
3132
> push. The release process will automatically produce a tag for you via Semantic Release.
3233
3. Access the `Actions` tab on your GitHub UI on your fork and click the `build_wheels` action. This workflow will
33-
build the python sdk wheels for Python 3.8-3.10 on MacOS 10.15 and Linux and verify that these wheels are correct.
34+
build the python sdk wheels for Python 3.8-3.10 on MacOS 10.15 and Linux and verify that these wheels are correct. It will also build the Docker images.
3435
The publish workflow uses this action to publish the python wheels for a new release to PyPI.
3536
4. Look for the header `This workflow has a workflow_dispatch event trigger` and click `Run Workflow` on the right.
3637
5. Run the workflow off of the tag you just created(`v0.22.0` in this case, **not** the master branch) and verify that

java/infra/docker/feature-server/Dockerfile

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,6 @@ COPY java/serving/pom.xml serving/pom.xml
1212
COPY java/serving-client/pom.xml serving-client/pom.xml
1313
COPY java/coverage/pom.xml coverage/pom.xml
1414

15-
# Setting Maven repository .m2 directory relative to /build folder gives the
16-
# user to optionally use cached repository when building the image by copying
17-
# the existing .m2 directory to $FEAST_REPO_ROOT/.m2
18-
ENV MAVEN_OPTS="-Dmaven.repo.local=/build/.m2/repository -DdependencyLocationsEnabled=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3"
19-
COPY java/pom.xml .m2/* .m2/
20-
RUN mvn dependency:go-offline -DexcludeGroupIds:dev.feast 2>/dev/null || true
21-
2215
COPY java/ .
2316
COPY protos/feast datatypes/src/main/proto/feast
2417

0 commit comments

Comments
 (0)