Skip to content

Commit ffb4048

Browse files
committed
feat(ci/cd): quick release and reusable workflows [skip ci]
1 parent 6b415fa commit ffb4048

File tree

1 file changed

+26
-42
lines changed

1 file changed

+26
-42
lines changed

.github/workflows/prod.yml

Lines changed: 26 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,31 @@ on:
44
tags:
55
- '**'
66
workflow_dispatch:
7+
inputs:
8+
quick_release:
9+
description: 'Quick release to production'
10+
type: boolean
11+
required: false
12+
default: false
713

814
jobs:
9-
tag:
10-
environment:
11-
name: production
12-
runs-on: gha-runners-smartweb
13-
steps:
14-
- name: Tag and notify
15-
uses: IMIO/gha/tag-notify@v3.9.3
16-
with:
17-
IMAGE_NAME: ${{ vars.IMAGE_NAME }}
18-
IMAGE_TAG: ${{ vars.IMAGE_TAG_STAGING }}
19-
NEW_IMAGE_TAGS: |
20-
${{ vars.IMAGE_TAG_PRODUCTION }}
21-
REGISTRY_URL: ${{ secrets.HARBOR_URL }}
22-
REGISTRY_USERNAME: ${{ secrets.SMARTWEB_HARBOR_USERNAME }}
23-
REGISTRY_PASSWORD: ${{ secrets.SMARTWEB_HARBOR_PASSWORD }}
24-
MATTERMOST_WEBHOOK_URL: ${{ secrets.SMARTWEB_MATTERMOST_WEBHOOK_URL }}
25-
deploy:
26-
environment:
27-
name: production
28-
runs-on: gha-runners-smartweb
29-
needs: [tag]
30-
steps:
31-
- name: Get tomorrow date
32-
run: echo "DEPLOY_DATE=$(date --date='03:00 tomorrow' +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_ENV
33-
- name: Deploy to production and notify (tonight)
34-
if: endsWith(github.ref, '-quick') == false
35-
uses: IMIO/gha/rundeck-notify@v3.9.3
36-
with:
37-
RUNDECK_URL: ${{ secrets.RUNDECK_URL }}
38-
RUNDECK_TOKEN: ${{ secrets.SMARTWEB_RUNDECK_TOKEN }}
39-
RUNDECK_JOB_ID: ${{ vars.RUNDECK_JOB_ID }}
40-
RUNDECK_PARAMETERS: '-F "runAtTime=${{ env.DEPLOY_DATE }}" -F "filter=name ${{ vars.NODE_NAME }}" -F "option.tag=${{ vars.IMAGE_TAG_PRODUCTION }}" -F "option.image_name=${{ vars.IMAGE_NAME }}" -F "option.service_name=${{ vars.SERVICE_NAME }}"'
41-
MATTERMOST_WEBHOOK_URL: ${{ secrets.SMARTWEB_MATTERMOST_WEBHOOK_URL }}
42-
- name: Deploy to production and notify (now - quick release)
43-
if: endsWith(github.ref, '-quick')
44-
uses: IMIO/gha/rundeck-notify@v3.9.3
45-
with:
46-
RUNDECK_URL: ${{ secrets.RUNDECK_URL }}
47-
RUNDECK_TOKEN: ${{ secrets.SMARTWEB_RUNDECK_TOKEN }}
48-
RUNDECK_JOB_ID: ${{ vars.RUNDECK_JOB_ID }}
49-
RUNDECK_PARAMETERS: '-F "filter=name ${{ vars.NODE_NAME }}" -F "option.tag=${{ vars.IMAGE_TAG_PRODUCTION }}" -F "option.image_name=${{ vars.IMAGE_NAME }}" -F "option.service_name=${{ vars.SERVICE_NAME }}"'
50-
MATTERMOST_WEBHOOK_URL: ${{ secrets.SMARTWEB_MATTERMOST_WEBHOOK_URL }}
15+
promote-staging-to-production:
16+
uses: IMIO/gha-workflows/.github/workflows/promote-staging-to-production.yml@52677f55dd458fe3736fc999cfdaacfca5bf0049
17+
with:
18+
github_environment: production
19+
image_name: ${{ vars.IMAGE_NAME }}
20+
image_tag_staging: ${{ vars.IMAGE_TAG_STAGING }}
21+
image_tag_production: ${{ vars.IMAGE_TAG_PRODUCTION }}
22+
rundeck_job_id: ${{ vars.RUNDECK_JOB_ID }}
23+
node_name: ${{ vars.NODE_NAME }}
24+
runner_label: gha-runners-smartweb
25+
schedule_time: '03:00'
26+
service_name: ${{ vars.SERVICE_NAME }}
27+
quick_release: ${{ inputs.quick_release || false }}
28+
secrets:
29+
mattermost_webhook_url: ${{ secrets.SMARTWEB_MATTERMOST_WEBHOOK_URL }}
30+
registry_url: ${{ secrets.HARBOR_URL }}
31+
registry_username: ${{ secrets.SMARTWEB_HARBOR_USERNAME }}
32+
registry_password: ${{ secrets.SMARTWEB_HARBOR_PASSWORD }}
33+
rundeck_url: ${{ secrets.RUNDECK_URL }}
34+
rundeck_token: ${{ secrets.SMARTWEB_RUNDECK_TOKEN }}

0 commit comments

Comments
 (0)