-
Notifications
You must be signed in to change notification settings - Fork 161
99 lines (96 loc) · 3.59 KB
/
manual-helm-cd-workflow.yaml
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
# Copyright (C) 2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
name: GenAIComps Helm CD workflow on manual event
on:
pull_request:
branches: [main]
types: [opened, reopened, ready_for_review, synchronize] # added `ready_for_review` since draft is skipped
paths:
- "**/deployment/kubernetes/**"
# workflow_dispatch:
# inputs:
# workloads:
# default: ""
# required: false
# type: string
# description: "workloads to test, empty for testing all helm charts"
# dockerhub:
# default: "false"
# required: false
# type: string
# description: "Set to true if you want to use released docker images at dockerhub. By default using internal docker registry."
# tag:
# default: "latest"
# description: "Image tag to be tested"
# required: true
# type: string
# opea_branch:
# default: "main"
# description: 'OPEA branch for image build'
# required: false
# type: string
jobs:
get-build-matrix:
runs-on: ubuntu-latest
outputs:
run_matrix: ${{ steps.get-services.outputs.run_matrix }}
steps:
- name: Checkout out Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.opea_branch }}
# comps/agent/deployment/kubernetes
- name: Get test Services
id: get-services
run: |
set -x
run_matrix="{\"include\":["
if [[ -z "${{ inputs.workloads }}" ]]; then
ls ${{ github.workspace }}/comps
for chart in ${{ github.workspace }}/comps/*; do
if [[ -f $chart ]]; then
continue
fi
service=$(echo "$chart"| awk -F'/' '{print $NF}')
for file in "$chart"/deployment/kubernetes/*values.yaml; do
if [ -f "$file" ]; then
filename=$(basename "$file" .yaml)
if [[ "$filename" == *"gaudi"* ]]; then
run_matrix="${run_matrix}{\"example\":\"$service\",\"hardware\":\"gaudi\", \"valuefile\":\"${filename}\"},"
else
run_matrix="${run_matrix}{\"example\":\"$service\",\"hardware\":\"xeon\", \"valuefile\":\"${filename}\"},"
fi
fi
done
done
else
service_list=($(echo "${{ github.event.inputs.workloads }}" | tr ',' ' '))
for service in $service_list; do
for file in comps/"$service"/deployment/kubernetes/*values.yaml; do
if [ -f "$file" ]; then
filename=$(basename "$file" .yaml)
if [[ "$filename" == *"gaudi"* ]]; then
run_matrix="${run_matrix}{\"example\":\"$service\",\"hardware\":\"gaudi\", \"valuefile\":\"${filename}\"},"
else
run_matrix="${run_matrix}{\"example\":\"$service\",\"hardware\":\"xeon\", \"valuefile\":\"${filename}\"},"
fi
fi
done
done
fi
run_matrix=$run_matrix"]}"
echo "run_matrix=${run_matrix}"
echo "run_matrix=${run_matrix}" >> $GITHUB_OUTPUT
helm-release:
needs: get-build-matrix
strategy:
matrix: ${{ fromJSON(needs.get-build-matrix.outputs.run_matrix) }}
uses: ./.github/workflows/_helm-e2e.yaml
with:
tag: ${{ inputs.tag }}
dockerhub: ${{ inputs.dockerhub }}
workload: ${{ matrix.example }}
hardware: ${{ matrix.hardware }}
valuefile: ${{ matrix.valuefile }}
secrets: inherit