Skip to content

Commit 0e194b1

Browse files
refactor(ci): 'Deploy Prod' can run from main for build specific tag (#1772)
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
1 parent 4aed800 commit 0e194b1

File tree

1 file changed

+44
-22
lines changed

1 file changed

+44
-22
lines changed

.github/workflows/release_module_release-channels.yml

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,34 @@ jobs:
6464
steps:
6565
- name: PRINT VARS
6666
run: |
67-
echo $MODULES_REGISTRY
68-
echo $MODULE_SOURCE_NAME
69-
echo $CI_COMMIT_REF_NAME
70-
echo $MODULES_MODULE_NAME
71-
echo $RELEASE_CHANNEL
72-
echo $MODULES_MODULE_TAG
67+
echo MODULES_REGISTRY=$MODULES_REGISTRY
68+
echo MODULES_MODULE_SOURCE=$MODULES_MODULE_SOURCE
69+
echo CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME
70+
echo MODULES_MODULE_NAME=$MODULES_MODULE_NAME
71+
echo RELEASE_CHANNEL=$RELEASE_CHANNEL
72+
echo MODULE_EDITION=$MODULE_EDITION
73+
echo DOCKER_CONFIG=$DOCKER_CONFIG
74+
shell: bash
75+
76+
- name: Check that input tag is valid
77+
id: get-tag
78+
run: |
79+
TAG="${{ github.event.inputs.tag }}"
80+
echo "Processing tag: $TAG"
81+
82+
# Check if tag matches vX.Y.Z pattern (release)
83+
if echo "$TAG" | grep -P '^v\d+\.\d+\.\d+$' > /dev/null; then
84+
echo "$TAG is a valid release tag"
85+
else
86+
echo "Error: Invalid tag format. Use format vX.Y.Z"
87+
exit 1
88+
fi
7389
shell: bash
7490

7591
job-CE:
7692
name: Edition CE
7793
runs-on: [self-hosted, large]
94+
needs: print-vars
7895
if: github.event.inputs.ce == 'true'
7996
steps:
8097
- name: Setup Docker config
@@ -95,6 +112,7 @@ jobs:
95112
- uses: actions/checkout@v4
96113
with:
97114
fetch-depth: 0
115+
ref: ${{ github.event.inputs.tag }}
98116

99117
- name: Login to PROD_REGISTRY
100118
uses: deckhouse/modules-actions/setup@v2
@@ -119,19 +137,20 @@ jobs:
119137
source_repo_ssh_key: ${{ secrets.SOURCE_REPO_SSH_KEY }}
120138
secondary_repo: "${{ vars.DEV_MODULE_SOURCE }}/${{ vars.MODULE_NAME }}"
121139

122-
- name: Cleanup Docker config
123-
run: |
124-
rm -rf $DOCKER_CONFIG
125-
126140
- uses: deckhouse/modules-actions/deploy@v2
127141
with:
128142
module_source: ${{ steps.set_vars.outputs.MODULES_MODULE_SOURCE }}
129143
module_name: ${{ vars.MODULE_NAME }}
130144
module_tag: ${{ github.event.inputs.tag }}
131145
release_channel: ${{ github.event.inputs.version }}
132146

147+
- name: Cleanup Docker config
148+
run: |
149+
rm -rf $DOCKER_CONFIG
150+
133151
job-EE:
134152
name: Edition EE
153+
needs: print-vars
135154
runs-on: [self-hosted, large]
136155
if: github.event.inputs.ee == 'true'
137156
steps:
@@ -153,6 +172,7 @@ jobs:
153172
- uses: actions/checkout@v4
154173
with:
155174
fetch-depth: 0
175+
ref: ${{ github.event.inputs.tag }}
156176

157177
- uses: deckhouse/modules-actions/setup@v2
158178
with:
@@ -183,17 +203,17 @@ jobs:
183203
source_repo_ssh_key: ${{ secrets.SOURCE_REPO_SSH_KEY }}
184204
secondary_repo: "${{ vars.DEV_MODULE_SOURCE }}/${{ vars.MODULE_NAME }}"
185205

186-
- name: Cleanup Docker config
187-
run: |
188-
rm -rf $DOCKER_CONFIG
189-
190206
- uses: deckhouse/modules-actions/deploy@v2
191207
with:
192208
module_source: ${{ steps.set_vars.outputs.MODULES_MODULE_SOURCE }}
193209
module_name: ${{ vars.MODULE_NAME }}
194210
module_tag: ${{ github.event.inputs.tag }}
195211
release_channel: ${{ github.event.inputs.version }}
196212

213+
- name: Cleanup Docker config
214+
run: |
215+
rm -rf $DOCKER_CONFIG
216+
197217
job-SE-Plus:
198218
name: Edition SE Plus
199219
needs: job-EE
@@ -217,6 +237,7 @@ jobs:
217237
- uses: actions/checkout@v4
218238
with:
219239
fetch-depth: 0
240+
ref: ${{ github.event.inputs.tag }}
220241

221242
- name: Login to PROD_REGISTRY
222243
uses: deckhouse/modules-actions/setup@v2
@@ -241,17 +262,17 @@ jobs:
241262
source_repo_ssh_key: ${{ secrets.SOURCE_REPO_SSH_KEY }}
242263
secondary_repo: "${{ vars.DEV_MODULE_SOURCE }}/${{ vars.MODULE_NAME }}"
243264

244-
- name: Cleanup Docker config
245-
run: |
246-
rm -rf $DOCKER_CONFIG
247-
248265
- uses: deckhouse/modules-actions/deploy@v2
249266
with:
250267
module_source: ${{ steps.set_vars.outputs.MODULES_MODULE_SOURCE }}
251268
module_name: ${{ vars.MODULE_NAME }}
252269
module_tag: ${{ github.event.inputs.tag }}
253270
release_channel: ${{ github.event.inputs.version }}
254271

272+
- name: Cleanup Docker config
273+
run: |
274+
rm -rf $DOCKER_CONFIG
275+
255276
job-FE:
256277
name: Edition FE
257278
needs: job-EE
@@ -279,6 +300,7 @@ jobs:
279300
- uses: actions/checkout@v4
280301
with:
281302
fetch-depth: 0
303+
ref: ${{ github.event.inputs.tag }}
282304

283305
- name: Login to PROD_REGISTRY
284306
uses: deckhouse/modules-actions/setup@v2
@@ -303,13 +325,13 @@ jobs:
303325
source_repo_ssh_key: ${{ secrets.SOURCE_REPO_SSH_KEY }}
304326
secondary_repo: "${{ vars.DEV_MODULE_SOURCE }}/${{ vars.MODULE_NAME }}"
305327

306-
- name: Cleanup Docker config
307-
run: |
308-
rm -rf $DOCKER_CONFIG
309-
310328
- uses: deckhouse/modules-actions/deploy@v2
311329
with:
312330
module_source: ${{ steps.set_vars.outputs.MODULES_MODULE_SOURCE }}
313331
module_name: ${{ vars.MODULE_NAME }}
314332
module_tag: ${{ github.event.inputs.tag }}
315333
release_channel: ${{ github.event.inputs.version }}
334+
335+
- name: Cleanup Docker config
336+
run: |
337+
rm -rf $DOCKER_CONFIG

0 commit comments

Comments
 (0)