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