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