1+ name : JWA Multi-Arch Build Test
2+ on :
3+ pull_request :
4+ paths :
5+ - components/crud-web-apps/jupyter/**
6+ - components/crud-web-apps/common/**
7+ - releasing/version/VERSION
8+ branches :
9+ - master
10+ - notebooks-v1
11+ - ' v*-branch'
12+
13+ concurrency :
14+ group : ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
15+ cancel-in-progress : true
16+
17+ env :
18+ IMG : ghcr.io/kubeflow/notebooks/jupyter-web-app
19+
20+ jobs :
21+ build :
22+ runs-on : ubuntu-22.04
23+ steps :
24+ - name : Checkout
25+ uses : actions/checkout@v4
26+
27+ - name : Setup QEMU
28+ uses : docker/setup-qemu-action@v3
29+
30+ - name : Setup Docker Buildx
31+ uses : docker/setup-buildx-action@v3
32+
33+ - name : Build multi-arch Images (AMD64 & PPC64LE)
34+ run : |
35+ cd components/crud-web-apps/jupyter
36+
37+ echo "Starting linux/amd64 build..."
38+ ARCH=linux/amd64 make docker-build-multi-arch
39+ echo "Completed linux/amd64 build!"
40+
41+ echo "Starting linux/ppc64le build..."
42+ ARCH=linux/ppc64le make docker-build-multi-arch
43+ echo "Completed linux/ppc64le build!"
44+
45+ - name : Build ARM64 Image (Optional)
46+ timeout-minutes : 60
47+ continue-on-error : true
48+ run : |
49+ cd components/crud-web-apps/jupyter
50+
51+ echo "Starting linux/arm64/v8 build..."
52+ ARCH=linux/arm64/v8 make docker-build-multi-arch
53+ echo "Completed linux/arm64/v8 build!"
54+
55+ - name : Verify multi-arch builds
56+ run : |
57+ echo "Verifying multi-arch build results:"
58+ echo "Listing all jupyter-web-app images:"
59+ docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" | grep jupyter-web-app || echo "No jupyter-web-app images found"
60+
61+ echo ""
62+ echo "Checking individual architectures:"
63+ TAG=$(git describe --tags --always --dirty)
64+ echo "Base TAG: $TAG"
65+
66+ # Check each architecture
67+ if docker images | grep -q "jupyter-web-app.*${TAG}-linux-amd64"; then
68+ echo "✅ AMD64: SUCCESS"
69+ else
70+ echo "❌ AMD64: FAILED"
71+ fi
72+
73+ if docker images | grep -q "jupyter-web-app.*${TAG}-linux-ppc64le"; then
74+ echo "✅ PPC64LE: SUCCESS"
75+ else
76+ echo "❌ PPC64LE: FAILED"
77+ fi
78+
79+ if docker images | grep -q "jupyter-web-app.*${TAG}-linux-arm64-v8"; then
80+ echo "✅ ARM64: SUCCESS"
81+ else
82+ echo "ℹ️ ARM64: Not built (expected if timeout occurred)"
83+ fi
84+
85+ echo ""
86+ echo "Total images built:"
87+ docker images | grep jupyter-web-app | wc -l
0 commit comments