-
Notifications
You must be signed in to change notification settings - Fork 479
111 lines (101 loc) · 4.33 KB
/
kiali-ci.yml
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
name: Kiali CI
on:
# Run on master and release branches
push:
branches:
- master
- v*.*
paths-ignore:
- "design/**"
- "**/*.md"
- "**/*.adoc"
pull_request:
branches:
- master
- v*.*
paths-ignore:
- "design/**"
- "**/*.md"
- "**/*.adoc"
jobs:
initialize:
name: Initialize
runs-on: ubuntu-latest
outputs:
# This workflow can run on either a PR or release. GITHUB_BASE_REF is only
# set when this workflow is run against a PR. When run against a PR, we want
# to use the branch we are running against: GITHUB_BASE_REF. When run
# as a release, we want to use the current branch ref: GITHUB_REF_NAME.
target-branch: ${{ github.base_ref || github.ref_name }}
build-branch: ${{ env.branch-master || env.branch-pr }}
steps:
# The initialize job gathers variables for later use in jobs.
# We are using this technique rather environment variables because at the moment, they won't work with reusable jobs.
# A positive side effect of this is that we can print all variables at start for debugging and troubleshooting.
- run: echo "target-branch -> ${{ github.base_ref || github.ref_name }}"
# For the building branch, if we are running agains a PR, we need to indicate in the branch that is coming from a PR
- run: |
echo "branch-version=${{ github.ref_name }}" >> $GITHUB_ENV
echo "build-branch -> ${{ github.ref_name }}"
id: branch-master
if: ${{ !github.base_ref }}
- run: |
echo "branch-pr=refs/pull/${{ github.ref_name }}" >> $GITHUB_ENV
echo "build-branch -> ${{ github.base_ref }}"
id: branch-pr
if: ${{ github.base_ref }}
build_backend:
name: Build backend
uses: ./.github/workflows/build-backend.yml
needs: [initialize]
with:
build_branch: ${{ needs.initialize.outputs.build-branch }}
build_frontend:
name: Build frontend
uses: ./.github/workflows/build-frontend.yml
needs: [initialize]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}
integration_tests_backend:
name: Run backend integration tests
uses: ./.github/workflows/integration-tests-backend.yml
needs: [initialize, build_backend, build_frontend]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}
integration_tests_backend_multicluster_external_controlplane:
name: Run backend multicluster external-controlplane integration tests
uses: ./.github/workflows/integration-tests-backend-multicluster-external-controlplane.yml
needs: [initialize, build_backend, build_frontend]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}
integration_tests_frontend:
name: Run frontend integration tests
uses: ./.github/workflows/integration-tests-frontend.yml
needs: [initialize, build_backend, build_frontend]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}
integration_tests_frontend_multicluster_primary_remote:
name: Run frontend multicluster primary-remote integration tests
uses: ./.github/workflows/integration-tests-frontend-multicluster-primary-remote.yml
needs: [initialize, build_backend, build_frontend]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}
integration_tests_frontend_multicluster_multi_primary:
name: Run frontend multicluster multi-primary integration tests
uses: ./.github/workflows/integration-tests-frontend-multicluster-multi-primary.yml
needs: [initialize, build_backend, build_frontend]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}
integration_tests_frontend_tempo:
name: Run tracing frontend integration tests
uses: ./.github/workflows/integration-tests-frontend-tempo.yml
needs: [initialize, build_backend, build_frontend]
with:
target_branch: ${{ needs.initialize.outputs.target-branch }}
build_branch: ${{ needs.initialize.outputs.build-branch }}