Add force restart option to deployment workflow and script

This commit is contained in:
2025-10-04 23:26:26 +08:00
parent 98d83ec852
commit 18483c8978
2 changed files with 15 additions and 0 deletions

View File

@@ -23,6 +23,11 @@ on:
required: false required: false
default: '' default: ''
type: string type: string
force_restart:
description: 'Force rollout restart (restarts pods even if no changes)'
required: false
default: true
type: boolean
# Environment variables available to all jobs # Environment variables available to all jobs
env: env:
@@ -39,6 +44,7 @@ env:
CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
CONTAINER_IMAGE_NAME: ${{ secrets.CONTAINER_IMAGE_NAME }} CONTAINER_IMAGE_NAME: ${{ secrets.CONTAINER_IMAGE_NAME }}
CONTAINER_IMAGE_TAG: ${{ inputs.image_tag || 'latest' }} CONTAINER_IMAGE_TAG: ${{ inputs.image_tag || 'latest' }}
FORCE_RESTART: ${{ inputs.force_restart }}
jobs: jobs:
deploy: deploy:

View File

@@ -20,6 +20,7 @@ CONTAINER_REGISTRY_NAMESPACE="${CONTAINER_REGISTRY_NAMESPACE:-username}"
CONTAINER_REGISTRY_PASSWORD="${CONTAINER_REGISTRY_PASSWORD:-password}" CONTAINER_REGISTRY_PASSWORD="${CONTAINER_REGISTRY_PASSWORD:-password}"
CONTAINER_IMAGE_NAME="${CONTAINER_IMAGE_NAME:-image-name}" CONTAINER_IMAGE_NAME="${CONTAINER_IMAGE_NAME:-image-name}"
CONTAINER_IMAGE_TAG="${CONTAINER_IMAGE_TAG:-latest}" CONTAINER_IMAGE_TAG="${CONTAINER_IMAGE_TAG:-latest}"
FORCE_RESTART="${FORCE_RESTART:-true}"
# ============================================================================= # =============================================================================
# Functions # Functions
@@ -46,6 +47,7 @@ print_help() {
echo " CONTAINER_REGISTRY_PASSWORD" echo " CONTAINER_REGISTRY_PASSWORD"
echo " CONTAINER_IMAGE_NAME" echo " CONTAINER_IMAGE_NAME"
echo " CONTAINER_IMAGE_TAG" echo " CONTAINER_IMAGE_TAG"
echo " FORCE_RESTART Force rollout restart (default: true)"
echo "" echo ""
echo "Examples:" echo "Examples:"
echo " $0 deploy" echo " $0 deploy"
@@ -156,6 +158,13 @@ deploy_application() {
# Wait for deployment to be ready # Wait for deployment to be ready
echo "Waiting for deployment to be ready..." echo "Waiting for deployment to be ready..."
# Force restart if enabled
if [ "${FORCE_RESTART}" = "true" ]; then
echo "Forcing rollout restart..."
kubectl rollout restart deployment/${CONTAINER_IMAGE_NAME} -n ${KUBERNETES_NAMESPACE}
fi
kubectl rollout status deployment/${CONTAINER_IMAGE_NAME} \ kubectl rollout status deployment/${CONTAINER_IMAGE_NAME} \
-n ${KUBERNETES_NAMESPACE} \ -n ${KUBERNETES_NAMESPACE} \
--timeout=300s --timeout=300s