Skip to content

Commit 82ebbdf

Browse files
committed
[SPARK-52322] Add publish_image GitHub Action job
### What changes were proposed in this pull request? This PR aims to add `publish_image` GitHub Action job. ### Why are the changes needed? To publish the example docker images like `apache/spark-connect-swift:pi`. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? This should be tested after merging. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #181 from dongjoon-hyun/SPARK-52322. Authored-by: Dongjoon Hyun <[email protected]> Signed-off-by: Dongjoon Hyun <[email protected]>
1 parent 6e53880 commit 82ebbdf

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Publish Image
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
example:
7+
description: 'list of examples to publish (JSON)'
8+
required: true
9+
# keep in sync with default value of strategy matrix 'example'
10+
default: '["pi"]'
11+
12+
jobs:
13+
publish-image:
14+
if: ${{ startsWith(github.repository, 'apache/') }}
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
# keep in sync with default value of workflow_dispatch input 'example'
20+
example: ${{ fromJSON( inputs.example || '["pi"]' ) }}
21+
steps:
22+
- name: Set up QEMU
23+
uses: docker/setup-qemu-action@v3
24+
- name: Set up Docker Buildx
25+
uses: docker/setup-buildx-action@v3
26+
- name: Login to Docker Hub
27+
uses: docker/login-action@v3
28+
with:
29+
username: ${{ secrets.DOCKERHUB_USER }}
30+
password: ${{ secrets.DOCKERHUB_TOKEN }}
31+
- name: Checkout repository
32+
uses: actions/checkout@v4
33+
with:
34+
ref: main
35+
- name: Build and push
36+
uses: docker/build-push-action@v6
37+
with:
38+
# build cache on Github Actions, See: https://docs.docker.com/build/cache/backends/gha/#using-dockerbuild-push-action
39+
cache-from: type=gha
40+
cache-to: type=gha,mode=max
41+
context: Examples/${{ matrix.example }}
42+
file: Examples/${{ matrix.example }}/Dockerfile
43+
platforms: linux/amd64,linux/arm64
44+
push: true
45+
tags: apache/spark-connect-swift:${{ matrix.example }}

0 commit comments

Comments
 (0)