Skip to content

Promote staging to production #5

Promote staging to production

Promote staging to production #5

Workflow file for this run

name: Promote staging to production
on:
push:
tags:
- '**'
workflow_dispatch:
jobs:
tag:
environment:
name: production
runs-on: gha-runners-smartweb
steps:
- name: Tag and notify
uses: IMIO/gha/tag-notify@v1.0.1
with:
IMAGE_NAME: ${{ vars.IMAGE_NAME }}
IMAGE_TAG: ${{ vars.IMAGE_TAG_STAGING }}
NEW_IMAGE_TAG: ${{ vars.IMAGE_TAG_PRODUCTION }}
REGISTRY_URL: ${{ secrets.HARBOR_URL }}
REGISTRY_USERNAME: ${{ secrets.SMARTWEB_HARBOR_USERNAME }}
REGISTRY_PASSWORD: ${{ secrets.SMARTWEB_HARBOR_PASSWORD }}
MATTERMOST_WEBHOOK_URL: ${{ secrets.SMARTWEB_MATTERMOST_WEBHOOK_URL }}
deploy:
environment:
name: production
runs-on: gha-runners-smartweb
needs: [tag]
steps:
- name: Get tomorrow date
run: echo "DEPLOY_DATE=$(date --date='03:00 tomorrow' +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_ENV
- name: Deploy to production and notify
uses: IMIO/gha/rundeck-notify@v3.9.3
with:
RUNDECK_URL: ${{ secrets.RUNDECK_URL }}
RUNDECK_TOKEN: ${{ secrets.SMARTWEB_RUNDECK_TOKEN }}
RUNDECK_JOB_ID: ${{ vars.RUNDECK_JOB_ID }}
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 }}"'
MATTERMOST_WEBHOOK_URL: ${{ secrets.SMARTWEB_MATTERMOST_WEBHOOK_URL }}