1
- name : Meshery Build and Releaser (stable)
1
+ name : Meshsync Snapshot Build and Releaser (stable)
2
2
on :
3
3
push :
4
4
tags :
5
5
- " v*"
6
6
7
7
jobs :
8
-
9
- update-rest-api-docs :
10
- name : Update REST API Documentation
11
- if : github.repository == 'meshery/meshery'
12
- runs-on : ubuntu-22.04
13
- steps :
14
- - uses : actions/checkout@v4
15
- - name : Check if handlers were modified
16
- uses : dorny/paths-filter@v3
17
- id : changes
18
- with :
19
- filters : |
20
- modified:
21
- - added|modified: "server/handlers/**"
22
- - name : Setup go-swagger
23
- if : steps.changes.outputs.modified == 'true'
24
- uses : minchao/setup-go-swagger@v1
25
- with :
26
- version : v0.30.5
27
- - name : swagger-spec
28
- if : steps.changes.outputs.modified == 'true'
29
- run : |
30
- make swagger-build
31
- - name : swagger-docs
32
- if : steps.changes.outputs.modified == 'true'
33
- run : |
34
- make swagger-docs-build
35
-
36
- - name : Pull changes from remote
37
- run : git pull origin master
38
-
39
- - name : Commit changes
40
- uses : stefanzweifel/git-auto-commit-action@v5
41
- with :
42
- file_pattern : docs
43
- commit_user_name : l5io
44
- commit_user_email :
[email protected]
45
- commit_author : ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
46
- commit_options : " --signoff"
47
- commit_message : " [Docs] Updated Swagger Docs for REST API"
48
-
49
- update-graphql-docs :
50
- name : Update GraphQL API Documentation
51
- if : github.repository == 'meshery/meshery'
52
- runs-on : ubuntu-22.04
53
- steps :
54
- - name : Check out code
55
- uses : actions/checkout@v4
56
- with :
57
- fetch-depth : 1
58
- - name : Check if schema was modified
59
- uses : dorny/paths-filter@v3
60
- id : filter
61
- with :
62
- filters : |
63
- modified:
64
- - added|modified: 'server/internal/graphql/schema/schema.graphql'
65
- - name : Set up Ruby
66
- if : steps.filter.outputs.modified == 'true'
67
-
68
- with :
69
- ruby-version : 3.2.2
70
- bundler-cache : true
71
- - name : graphql-docs
72
- if : steps.filter.outputs.modified == 'true'
73
- run : |
74
- cd docs; bundle install; cd ..; \
75
- make graphql-docs-build
76
-
77
- - name : Pull changes from remote
78
- run : git pull origin master
79
-
80
- - name : Commit changes
81
- uses : stefanzweifel/git-auto-commit-action@v5
82
- with :
83
- file_pattern : docs
84
- commit_user_name : l5io
85
- commit_user_email :
[email protected]
86
- commit_author : ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
87
- commit_options : " --signoff"
88
- commit_message : " [Docs] Updated GraphQL API Documentation"
89
-
90
- build :
91
- name : Docker build and push
92
- if : github.repository == 'meshery/meshery'
93
- env :
94
- RELEASE_CHANNEL : " stable"
95
- runs-on : ubuntu-22.04
96
- steps :
97
- - name : Check out code
98
- uses : actions/checkout@v4
99
- with :
100
- fetch-depth : 1
101
- - name : Login to DockerHub
102
- uses : docker/login-action@v3
103
- with :
104
- username : ${{ secrets.DOCKER_USERNAME }}
105
- password : ${{ secrets.DOCKER_PASSWORD }}
106
- - name : Docker stable and playground build & tag
107
- run : |
108
- DOCKER_BUILDKIT=1 docker build -f install/docker/Dockerfile --no-cache -t ${{ secrets.IMAGE_NAME }}:stable-latest --build-arg TOKEN=${{ secrets.GLOBAL_TOKEN }} --build-arg GIT_COMMITSHA=${GITHUB_SHA::8} --build-arg GIT_VERSION=${GITHUB_REF/refs\/tags\//} --build-arg RELEASE_CHANNEL=${RELEASE_CHANNEL} --build-arg PLAYGROUND=true .
109
- docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_REF/refs\/tags\//}
110
- docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_SHA::8}
111
- docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-latest
112
- docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_REF/refs\/tags\//}
113
- docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_SHA::8}
114
- - name : Docker stable and playground push
115
- run : |
116
- docker push ${{ secrets.IMAGE_NAME }}:stable-latest
117
- docker push ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_REF/refs\/tags\//}
118
- docker push ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_SHA::8}
119
- docker push ${{ secrets.IMAGE_NAME }}:playground-latest
120
- docker push ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_REF/refs\/tags\//}
121
- docker push ${{ secrets.IMAGE_NAME }}:playground-${GITHUB_SHA::8}
122
- # SKIP STEP: FAILS BECAUSE README FILE SIZE IS TOO LARGE FOR DOCKER HUB
123
- # - name: Docker Hub Description
124
- # uses: peter-evans/dockerhub-description@v3
125
- # env:
126
- # DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}
127
- # DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
128
- # DOCKERHUB_REPOSITORY: ${{ secrets.IMAGE_NAME }}
129
- ctlrelease :
130
- name : Mesheryctl build & release
131
- if : github.repository == 'meshery/meshery' && startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, 'patch') && !contains(github.ref, 'alpha') && !contains(github.ref, 'beta') && !contains(github.ref, 'rc')
8
+ release :
9
+ name : build & release
10
+ if : github.repository == 'meshery-extensions/kubectl-meshsync-snapshot' && startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, 'patch') && !contains(github.ref, 'alpha') && !contains(github.ref, 'beta') && !contains(github.ref, 'rc')
132
11
runs-on : macos-latest
133
12
steps :
134
13
- name : Check out code
@@ -138,47 +17,19 @@ jobs:
138
17
- name : Set up Go
139
18
uses : actions/setup-go@master
140
19
with :
141
- go-version : " 1.21 "
20
+ go-version : " 1.24 "
142
21
- name : goreleaser with tag
143
22
uses : goreleaser/goreleaser-action@v6
144
23
env :
145
24
GITHUB_TOKEN : ${{ secrets.RELEASE_NOTES_PAT }}
146
25
RELEASE_CHANNEL : " stable"
147
26
with :
148
- version : ' ~> v2 '
27
+ version : 2
149
28
args : release --clean --skip=validate
150
- - name : bump homebrew-core formula
151
- uses : mislav/bump-homebrew-formula-action@v3
152
- with :
153
- formula-name : mesheryctl
154
- download-url : https://github.com/meshery/meshery.git
155
- env :
156
- COMMITTER_TOKEN : ${{ secrets.GH_ACCESS_TOKEN }}
157
- call-dde-release-workflow :
29
+ email-meshsync-snaphost-release-notes-workflow :
158
30
needs :
159
- - build
160
- - ctlrelease
161
- name : Build and Release Docker Extension
162
- uses : meshery/meshery/.github/workflows/build-and-release-dde.yml@master
163
- secrets : inherit
164
- call-helm-chart-releaser :
165
- needs :
166
- - build
167
- name : Release Helm Charts
168
- uses : meshery/meshery/.github/workflows/helm-chart-releaser.yml@master
169
- secrets : inherit
170
- # call-aks-playground-deploy-workflow:
171
- # needs: build
172
- # name: Deploy Meshery Playground
173
- # uses: meshery/meshery/.github/workflows/deploy-meshery-playground.yml@master
174
- # secrets: inherit
175
- email-meshery-release-notes-workflow :
176
- needs :
177
- - build
178
- - ctlrelease
179
- - call-helm-chart-releaser
180
- - call-dde-release-workflow
181
- name : Email Meshery Release Notes
31
+ - release
32
+ name : Email Meshsync Snapshot Release Notes
182
33
uses : layer5labs/meshery-extensions-packages/.github/workflows/notify-email.yml@master
183
34
secrets :
184
35
token : ${{ secrets.GH_ACCESS_TOKEN }}
@@ -187,18 +38,10 @@ jobs:
187
38
with :
188
39
release-tag : ${{github.ref_name}}
189
40
190
- call-cncf-playground-rollout :
191
- needs :
192
- - build
193
- name : Deploy CNCF Playground
194
- uses : meshery/meshery/.github/workflows/cncf-playground-deploy-meshery.yaml@master
195
- with :
196
- image : layer5/meshery:playground-${GITHUB_REF/refs\/tags\//}
197
- secrets : inherit
198
41
email-on-failure :
199
- needs : [update-rest-api-docs, update-graphql-docs, build, ctlrelease, call-dde- release-workflow, call-helm-chart-releaser, email-meshery- release-notes-workflow, call-cncf-playground-rollout ]
42
+ needs : [release, email-meshsync-snaphost- release-notes-workflow]
200
43
if : ${{ failure() }}
201
- runs-on : ubuntu-latest
44
+ runs-on : ubuntu-24.04
202
45
steps :
203
46
- name : Find failed jobs.
204
47
run : |
@@ -212,14 +55,14 @@ jobs:
212
55
echo "${{ env.EMAIL_BODY }}"
213
56
- name : Send Email Notification
214
57
if : env.EMAIL_BODY != ''
215
- uses : dawidd6/action-send-mail@v3
58
+ uses : dawidd6/action-send-mail@v4
216
59
with :
217
60
server_address : smtp.gmail.com
218
61
server_port : 465
219
62
username : ${{ secrets.MAIL_USERNAME }}
220
63
password : ${{ secrets.MAIL_PASSWORD }}
221
64
subject : Job(s) failure in the build-and-release-stable workflow
222
- to : support@layer5 .io
65
+ to : maintainers@meshery .io
223
66
from : Build and Release Stable workflow
224
67
body : |
225
68
The workflow failed. Here are the details:
0 commit comments