Add hard deploy option for Gateway workflow
This commit is contained in:
@@ -4,6 +4,12 @@ on:
|
||||
push:
|
||||
branches: [master]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
hard_deploy:
|
||||
description: Always rebuild and deploy both Gateway images
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
DEPLOY_PATH: /opt/vpn-proxy
|
||||
@@ -34,6 +40,8 @@ jobs:
|
||||
|
||||
- name: Build and push gateway image
|
||||
id: gateway-build
|
||||
env:
|
||||
HARD_DEPLOY_INPUT: ${{ inputs.hard_deploy }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
cd repo
|
||||
@@ -44,6 +52,11 @@ jobs:
|
||||
DATAPLANE_IMAGE="${IMAGE}-dataplane"
|
||||
|
||||
EVENT_NAME="${{ gitea.event_name }}"
|
||||
case "${EVENT_NAME}:${HARD_DEPLOY_INPUT}" in
|
||||
workflow_dispatch:true) HARD_DEPLOY=true ;;
|
||||
workflow_dispatch:false|workflow_dispatch:|push:false|push:) HARD_DEPLOY=false ;;
|
||||
*) echo "Invalid hard deploy request: ${EVENT_NAME}:${HARD_DEPLOY_INPUT}" >&2; exit 1 ;;
|
||||
esac
|
||||
BEFORE_SHA="${{ gitea.event.before }}"
|
||||
ZERO_SHA="0000000000000000000000000000000000000000"
|
||||
if [ "$EVENT_NAME" = "push" ] \
|
||||
@@ -76,6 +89,13 @@ jobs:
|
||||
none:none|control:control|dataplane:both|control+dataplane:both) ;;
|
||||
*) echo "Invalid runtime impact: ${RUNTIME_IMPACT}" >&2; exit 1 ;;
|
||||
esac
|
||||
DOCKER_BUILD_OPTIONS=()
|
||||
if [ "$HARD_DEPLOY" = "true" ]; then
|
||||
echo "Hard deploy requested: forcing no-cache rebuild and deploy of both Gateway images."
|
||||
AFFECTED_COMPONENTS="control+dataplane"
|
||||
RESTART_SCOPE="both"
|
||||
DOCKER_BUILD_OPTIONS=(--no-cache)
|
||||
fi
|
||||
echo "Affected components: ${AFFECTED_COMPONENTS}"
|
||||
echo "Restart scope: ${RESTART_SCOPE}"
|
||||
echo "affected_components=${AFFECTED_COMPONENTS}" >> "$GITHUB_OUTPUT"
|
||||
@@ -132,6 +152,7 @@ jobs:
|
||||
|
||||
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "$REGISTRY_HOST" -u "${{ gitea.actor }}" --password-stdin
|
||||
DOCKER_BUILDKIT=1 docker build \
|
||||
"${DOCKER_BUILD_OPTIONS[@]}" \
|
||||
--network host \
|
||||
--pull=false \
|
||||
--build-arg NODE_BUILD_IMAGE="${{ env.NODE_BUILD_IMAGE }}" \
|
||||
|
||||
Reference in New Issue
Block a user