-
Notifications
You must be signed in to change notification settings - Fork 2k
137 lines (132 loc) · 4.38 KB
/
image-builds-release.yml
File metadata and controls
137 lines (132 loc) · 4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: Build and Push for Release
on:
workflow_dispatch:
inputs:
src_branch:
type: string
default: 'release-X.Y'
description: 'Source branch to build KFP from'
required: true
target_tag:
type: string
default: 'X.Y.Z'
description: 'Target Image Tag'
required: true
overwrite_imgs:
type: string
default: 'true'
description: 'Overwrite images in GHCR if they already exist for this tag.'
required: true
set_latest:
type: string
default: 'true'
description: 'Set latest tag on build images.'
required: true
add_sha_tag:
type: string
default: 'true'
description: 'Add a sha image tag.'
required: false
dry_run:
type: boolean
default: false
description: 'Dry run mode - build images without pushing to registry or creating tags.'
required: false
jobs:
build-images-for-release:
strategy:
fail-fast: true
matrix:
image:
- name: kfp-api-server
dockerfile: backend/Dockerfile
context: .
- name: kfp-frontend
dockerfile: frontend/Dockerfile
context: .
- name: kfp-persistence-agent
dockerfile: backend/Dockerfile.persistenceagent
context: .
- name: kfp-scheduled-workflow-controller
dockerfile: backend/Dockerfile.scheduledworkflow
context: .
- name: kfp-viewer-crd-controller
dockerfile: backend/Dockerfile.viewercontroller
context: .
- name: kfp-visualization-server
dockerfile: backend/Dockerfile.visualization
context: .
- name: kfp-launcher
dockerfile: backend/Dockerfile.launcher
context: .
- name: kfp-driver
dockerfile: backend/Dockerfile.driver
context: .
- name: kfp-cache-deployer
dockerfile: backend/src/cache/deployer/Dockerfile
context: .
- name: kfp-cache-server
dockerfile: backend/Dockerfile.cacheserver
context: .
- name: kfp-metadata-envoy
dockerfile: third_party/metadata_envoy/Dockerfile
context: .
- name: kfp-metadata-writer
dockerfile: backend/metadata_writer/Dockerfile
context: .
- name: kfp-inverse-proxy-agent
dockerfile: proxy/Dockerfile
context: ./proxy
arch:
- arch_name: amd64
runs_on: ubuntu-latest
platform: linux/amd64
- arch_name: arm64
runs_on: ubuntu-24.04-arm
platform: linux/arm64
exclude:
- image: { name: kfp-metadata-writer }
arch: { arch_name: arm64 }
- image: { name: kfp-inverse-proxy-agent }
arch: { arch_name: arm64 }
uses: ./.github/workflows/build-and-push.yml
secrets: inherit
with:
src_branch: ${{ inputs.src_branch }}
target_tag: ${{ inputs.target_tag }}
arch_tag: ${{ matrix.arch.arch_name }}
overwrite_imgs: ${{ inputs.overwrite_imgs }}
set_latest: ${{ inputs.set_latest }}
add_sha_tag: ${{ inputs.add_sha_tag }}
app_to_build: ${{ matrix.image.name }}
image_context: ${{ matrix.image.context }}
docker_file: ${{ matrix.image.dockerfile }}
platforms: ${{ matrix.arch.platform }}
runs_on: ${{ matrix.arch.runs_on }}
push: ${{ !inputs.dry_run }}
create-manifests:
needs: build-images-for-release
if: ${{ !inputs.dry_run }}
strategy:
fail-fast: true
matrix:
component:
- image: kfp-api-server
- image: kfp-frontend
- image: kfp-persistence-agent
- image: kfp-scheduled-workflow-controller
- image: kfp-viewer-crd-controller
- image: kfp-visualization-server
- image: kfp-launcher
- image: kfp-driver
- image: kfp-cache-deployer
- image: kfp-cache-server
- image: kfp-metadata-writer
- image: kfp-metadata-envoy
- image: kfp-inverse-proxy-agent
uses: ./.github/workflows/create-manifest.yml
secrets: inherit
with:
target_tag: ${{ inputs.target_tag }}
app_to_build: ${{ matrix.component.image }}
set_latest: ${{ inputs.set_latest }}