@@ -2,32 +2,41 @@ prowjob_namespace: default
22pod_namespace : test-pods
33
44plank :
5- allow_cancellations : true
6- job_url_prefix : http://prow.feast.ai/view/gcs
5+ job_url_prefix_config :
6+ " * " : http://prow.feast.ai/view/gcs
77 report_template : ' [Full PR test history](https://prow.feast.ai/pr-history?org={{.Spec.Refs.Org}}&repo={{.Spec.Refs.Repo}}&pr={{with index .Spec.Refs.Pulls 0}}{{.Number}}{{end}})'
8- default_decoration_config :
9- timeout : 7200000000000 # 2h
10- grace_period : 15000000000 # 15s
11- utility_images :
12- clonerefs : gcr.io/k8s-prow/clonerefs:v20190221-d14461a
13- initupload : gcr.io/k8s-prow/initupload:v20190221-d14461a
14- entrypoint : gcr.io/k8s-prow/entrypoint:v20190221-d14461a
15- sidecar : gcr.io/k8s-prow/sidecar:v20190221-d14461a
16- gcs_configuration :
17- bucket : feast-templocation-kf-feast
18- path_strategy : explicit
19- gcs_credentials_secret : prow-service-account
8+ pod_pending_timeout : 60m
9+ default_decoration_configs :
10+ " * " :
11+ timeout : 1h
12+ grace_period : 15s
13+ utility_images :
14+ clonerefs : gcr.io/k8s-prow/clonerefs:v20190221-d14461a
15+ initupload : gcr.io/k8s-prow/initupload:v20190221-d14461a
16+ entrypoint : gcr.io/k8s-prow/entrypoint:v20190221-d14461a
17+ sidecar : gcr.io/k8s-prow/sidecar:v20190221-d14461a
18+ gcs_configuration :
19+ bucket : feast-templocation-kf-feast
20+ path_strategy : explicit
21+ gcs_credentials_secret : prow-service-account
2022
2123deck :
2224 tide_update_period : 1s
2325 spyglass :
24- size_limit : 50e+6 # 50MB
25- viewers :
26- " started.json|finished.json " : ["metadata"]
27- " build-log.txt " : ["buildlog"]
28- " report.xml " : ["junit"]
29- " artifacts/.*\\.xml " : ["junit"]
30- " surefire-reports/.*\\.xml " : ["junit"]
26+ size_limit : 10e+6 # 10MB
27+ lenses :
28+ - lens :
29+ name : metadata
30+ required_files :
31+ - started.json|finished.json
32+ - lens :
33+ name : buildlog
34+ required_files :
35+ - build-log.txt
36+ - lens :
37+ name : junit
38+ required_files :
39+ - artifacts/.*\.xml
3140
3241tide :
3342 queries :
4756 blocker_label : merge-blocker
4857 squash_label : tide/squash
4958
50- # presubmits list Prow jobs that run on pull requests
59+ # presubmits and postsubmits configure ProwJobs:
60+ # https://github.com/kubernetes/test-infra/blob/6571843b1aa7bd6cf577a7a8b9e9971241f424d5/prow/jobs.md
61+
5162presubmits :
5263 gojek/feast :
5364 - name : test-core-and-ingestion
@@ -131,8 +142,140 @@ presubmits:
131142 - name : service-account
132143 mountPath : " /etc/service-account"
133144
134- # TODO: do a release when a git tag is pushed
135- #
136- # postsubmits list Prow jobs that run on every push
137- # postsubmits:
138- # gojek/feast:
145+ postsubmits :
146+ gojek/feast :
147+ - name : publish-python-sdk
148+ decorate : true
149+ spec :
150+ containers :
151+ - image : python:3
152+ command :
153+ - sh
154+ - -c
155+ - |
156+ .prow/scripts/publish-python-sdk.sh \
157+ --directory-path sdk/python --repository pypi
158+ volumeMounts :
159+ - name : pypirc
160+ mountPath : /root/.pypirc
161+ subPath : .pypirc
162+ readOnly : true
163+ volumes :
164+ - name : pypirc
165+ secret :
166+ secretName : pypirc
167+ branches :
168+ # Filter on tags with semantic versioning, prefixed with "v"
169+ # https://github.com/semver/semver/issues/232
170+ - ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$
171+
172+ - name : publish-docker-images
173+ decorate : true
174+ spec :
175+ containers :
176+ - image : google/cloud-sdk:273.0.0
177+ command :
178+ - bash
179+ - -c
180+ - |
181+ .prow/scripts/download-maven-cache.sh \
182+ --archive-uri gs://feast-templocation-kf-feast/.m2.2019-10-24.tar \
183+ --output-dir $PWD/
184+
185+ if [ $PULL_BASE_REF == "master" ]; then
186+
187+ .prow/scripts/publish-docker-image.sh \
188+ --repository gcr.io/kf-feast/feast-core \
189+ --tag dev \
190+ --file infra/docker/core/Dockerfile \
191+ --google-service-account-file /etc/gcloud/service-account.json
192+
193+ .prow/scripts/publish-docker-image.sh \
194+ --repository gcr.io/kf-feast/feast-serving \
195+ --tag dev \
196+ --file infra/docker/serving/Dockerfile \
197+ --google-service-account-file /etc/gcloud/service-account.json
198+
199+ docker tag gcr.io/kf-feast/feast-core:dev gcr.io/kf-feast/feast-core:${PULL_BASE_SHA}
200+ docker push gcr.io/kf-feast/feast-core:${PULL_BASE_SHA}
201+
202+ docker tag gcr.io/kf-feast/feast-serving:dev gcr.io/kf-feast/feast-serving:${PULL_BASE_SHA}
203+ docker push gcr.io/kf-feast/feast-serving:${PULL_BASE_SHA}
204+
205+ else
206+
207+ .prow/scripts/publish-docker-image.sh \
208+ --repository gcr.io/kf-feast/feast-core \
209+ --tag ${PULL_BASE_REF:1} \
210+ --file infra/docker/core/Dockerfile \
211+ --google-service-account-file /etc/gcloud/service-account.json
212+
213+ .prow/scripts/publish-docker-image.sh \
214+ --repository gcr.io/kf-feast/feast-serving \
215+ --tag ${PULL_BASE_REF:1} \
216+ --file infra/docker/serving/Dockerfile \
217+ --google-service-account-file /etc/gcloud/service-account.json
218+
219+ docker tag gcr.io/kf-feast/feast-core:${PULL_BASE_REF:1} gcr.io/kf-feast/feast-core:latest
220+ docker push gcr.io/kf-feast/feast-core:latest
221+
222+ docker tag gcr.io/kf-feast/feast-serving:${PULL_BASE_REF:1} gcr.io/kf-feast/feast-serving:latest
223+ docker push gcr.io/kf-feast/feast-serving:latest
224+
225+ fi
226+ volumeMounts :
227+ - name : docker-socket
228+ mountPath : /var/run/docker.sock
229+ - name : service-account
230+ mountPath : /etc/gcloud/service-account.json
231+ subPath : service-account.json
232+ readOnly : true
233+ securityContext :
234+ privileged : true
235+ volumes :
236+ - name : docker-socket
237+ hostPath :
238+ path : /var/run/docker.sock
239+ - name : service-account
240+ secret :
241+ secretName : feast-service-account
242+ branches :
243+ - ^master$
244+ - ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$
245+
246+ - name : publish-helm-chart
247+ decorate : true
248+ spec :
249+ containers :
250+ - image : google/cloud-sdk:273.0.0-slim
251+ command :
252+ - bash
253+ - -c
254+ - |
255+ gcloud auth activate-service-account --key-file /etc/gcloud/service-account.json
256+
257+ curl -s https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz | tar -C /tmp -xz
258+ mv /tmp/linux-amd64/helm /usr/bin/helm
259+ helm init --client-only
260+
261+ sed -i "/version: /c\version: ${PULL_BASE_REF:1}" infra/charts/feast/Chart.yaml
262+ sed -i "/ version: /c\ version: ${PULL_BASE_REF:1}" infra/charts/feast/requirements.yaml
263+
264+ sed -i "/version: /c\version: ${PULL_BASE_REF:1}" infra/charts/feast/charts/feast-core/Chart.yaml
265+ sed -i "/ tag: /c\ tag: ${PULL_BASE_REF:1}" infra/charts/feast/charts/feast-core/values.yaml
266+
267+ sed -i "/version: /c\version: ${PULL_BASE_REF:1}" infra/charts/feast/charts/feast-serving/Chart.yaml
268+ sed -i "/ tag: /c\ tag: ${PULL_BASE_REF:1}" infra/charts/feast/charts/feast-serving/values.yaml
269+
270+ .prow/scripts/sync-helm-charts.sh
271+ volumeMounts :
272+ - name : service-account
273+ mountPath : /etc/gcloud/service-account.json
274+ subPath : service-account.json
275+ readOnly : true
276+ volumes :
277+ - name : service-account
278+ secret :
279+ secretName : feast-service-account
280+ branches :
281+ - ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$
0 commit comments