Files
railiance-apps/.gitea/workflows/inter-hub-production-deploy.yaml

51 lines
1.4 KiB
YAML

name: Inter-Hub production deploy
on:
workflow_dispatch:
inputs:
image_tag:
description: "Immutable inter-hub image tag to deploy, for example 5101eb5"
required: true
confirm:
description: "Type deploy-inter-hub-production to confirm Railiance01 production deploy"
required: true
jobs:
deploy:
runs-on: [self-hosted, haskelseed, linux_amd64]
timeout-minutes: 20
env:
INTER_HUB_IMAGE_TAG: ${{ inputs.image_tag }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Validate dispatch inputs
env:
CONFIRM: ${{ inputs.confirm }}
run: |
set -euo pipefail
if [ "$CONFIRM" != "deploy-inter-hub-production" ]; then
echo "Refusing deploy: confirmation text did not match." >&2
exit 1
fi
if ! [[ "$INTER_HUB_IMAGE_TAG" =~ ^[A-Za-z0-9._-]+$ ]]; then
echo "Refusing deploy: image_tag contains unsupported characters." >&2
exit 1
fi
- name: Verify image manifest exists
run: make check-inter-hub-image
- name: Helm server dry-run
run: make inter-hub-server-dry-run
- name: Deploy Inter-Hub
run: make inter-hub-deploy
- name: Show release status
run: make inter-hub-status
- name: Run public smoke checks
run: make inter-hub-smoke