49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
name: Deploy
|
|
description: Coordinate deployments per service/environment.
|
|
inputs:
|
|
service:
|
|
description: Target service name
|
|
required: true
|
|
platform:
|
|
description: Target platform (e.g., linux/amd64)
|
|
required: true
|
|
environment:
|
|
description: Deployment environment (dev or prod)
|
|
required: true
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Prepare matrix context
|
|
id: matrix
|
|
uses: ./.github/actions/matrix-support
|
|
with:
|
|
service: ${{ inputs.service }}
|
|
platform: ${{ inputs.platform }}
|
|
environment: ${{ inputs.environment }}
|
|
|
|
- name: Prepare rollout context
|
|
id: context
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
echo "service=${{ inputs.service }}" >> "$GITHUB_OUTPUT"
|
|
echo "environment=${{ inputs.environment }}" >> "$GITHUB_OUTPUT"
|
|
echo "platform=${{ inputs.platform }}" >> "$GITHUB_OUTPUT"
|
|
echo "release_channel=${{ steps.matrix.outputs.is_prod == 'true' && 'prod' || 'dev' }}" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Deploy placeholder
|
|
shell: bash
|
|
env:
|
|
TARGET_ENV: ${{ steps.context.outputs.environment }}
|
|
TARGET_SERVICE: ${{ steps.context.outputs.service }}
|
|
TARGET_PLATFORM: ${{ steps.context.outputs.platform }}
|
|
RELEASE_CHANNEL: ${{ steps.context.outputs.release_channel }}
|
|
run: |
|
|
echo "Deploying ${TARGET_SERVICE} (${TARGET_PLATFORM}) to ${TARGET_ENV} namespace via ${RELEASE_CHANNEL} rollout"
|
|
echo "Hook in Helm/kubectl/ArgoCD rollouts here"
|
|
|
|
- name: Rollback plan
|
|
shell: bash
|
|
run: |
|
|
echo "Rollback can be re-run per matrix entry by dispatching with allow_deploy=true"
|