-
Notifications
You must be signed in to change notification settings - Fork 25
139 lines (130 loc) · 5.07 KB
/
build.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
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
138
139
name: Build and push latest image if needed
on:
pull_request:
branches:
- main
- release-*
- feature/*
push:
branches:
- main
- release-*
- feature/*
jobs:
check-clickhouse-monitor-changes:
name: Check whether clickhouse-monitor image needs to be built based on diff
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: antrea-io/has-changes@v2
id: check_diff
with:
paths: plugins/clickhouse-monitor/* build/images/Dockerfile.clickhouse-monitor.ubuntu
outputs:
has_changes: ${{ steps.check_diff.outputs.has_changes }}
build-clickhouse-monitor:
needs: check-clickhouse-monitor-changes
if: ${{ needs.check-clickhouse-monitor-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }}
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Build clickhouse-monitor Docker image
run: make clickhouse-monitor
- name: Push clickhouse-monitor Docker image to registry
if: ${{ github.repository == 'antrea-io/theia' && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push antrea/theia-clickhouse-monitor:latest
check-clickhouse-server-changes:
name: Check whether clickhouse-server image needs to be built based on diff
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: antrea-io/has-changes@v2
id: check_diff
with:
paths: plugins/clickhouse-schema-management/* build/images/Dockerfile.clickhouse-server.ubuntu
outputs:
has_changes: ${{ steps.check_diff.outputs.has_changes }}
build-clickhouse-server:
needs: check-clickhouse-server-changes
if: ${{ needs.check-clickhouse-server-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }}
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push clickhouse-server Docker image to registry
if: ${{ github.repository == 'antrea-io/theia' && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
VERSION: latest
run: |
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
make clickhouse-server-multi-arch
check-spark-jobs-changes:
name: Check whether spark-jobs image needs to be built based on diff
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: antrea-io/has-changes@v2
id: check_diff
with:
paths: plugins/policy-recommendation/* plugins/anomaly-detection/* build/images/Dockerfile.spark-jobs.ubuntu
outputs:
has_changes: ${{ steps.check_diff.outputs.has_changes }}
build-spark-jobs:
needs: check-spark-jobs-changes
if: ${{ needs.check-spark-jobs-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }}
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Build spark-jobs Docker image
run: make spark-jobs
- name: Push spark-jobs Docker image to registry
if: ${{ github.repository == 'antrea-io/theia' && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push antrea/theia-spark-jobs:latest
check-theia-manager-changes:
name: Check whether theia-manager image needs to be built based on diff
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: antrea-io/has-changes@v2
id: check_diff
with:
paths: pkg/* build/images/Dockerfile.theia-manager.ubuntu
outputs:
has_changes: ${{ steps.check_diff.outputs.has_changes }}
build-theia-manager:
needs: check-theia-manager-changes
if: ${{ needs.check-theia-manager-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }}
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Build theia-manager Docker image
run: make theia-manager
- name: Push theia-manager Docker image to registry
if: ${{ github.repository == 'antrea-io/theia' && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push antrea/theia-manager:latest