refactor: 将多个环境校验开关合并为单一的enable-validation配置项

This commit is contained in:
Lyda
2025-10-11 18:55:22 +08:00
parent 55e66894bd
commit a26f91ab25
2 changed files with 14 additions and 30 deletions

View File

@@ -19,16 +19,8 @@ inputs:
description: 'Base64 编码的 kubectl 配置文件' description: 'Base64 编码的 kubectl 配置文件'
required: false required: false
default: '' default: ''
require-docker: enable-validation:
description: '是否校验 docker 可用性 (true/false)' description: '是否执行环境校验 (true/false)'
required: false
default: 'true'
require-kubectl:
description: '是否校验 kubectl 可用性 (true/false)'
required: false
default: 'true'
verify-kubectl-cluster:
description: '是否验证 kubectl 集群连通性 (true/false)'
required: false required: false
default: 'true' default: 'true'
docker-registry: docker-registry:
@@ -74,11 +66,10 @@ runs:
shell: bash shell: bash
run: bash ${{ github.action_path }}/scripts/validate-tools.sh run: bash ${{ github.action_path }}/scripts/validate-tools.sh
env: env:
CHECK_DOCKER: ${{ inputs.require-docker }} ENABLE_VALIDATION: ${{ inputs.enable-validation }}
CHECK_KUBECTL: ${{ inputs.require-kubectl }}
- name: 配置 kubectl - name: 配置 kubectl
if: ${{ inputs.kube-config != '' && inputs.require-kubectl != 'false' }} if: ${{ inputs.kube-config != '' }}
shell: bash shell: bash
run: bash ${{ github.action_path }}/scripts/configure-kubectl.sh run: bash ${{ github.action_path }}/scripts/configure-kubectl.sh
env: env:
@@ -86,7 +77,7 @@ runs:
- name: 验证 kubectl 连通性 - name: 验证 kubectl 连通性
id: verify-kubectl id: verify-kubectl
if: ${{ inputs.kube-config != '' && inputs.verify-kubectl-cluster != 'false' && inputs.require-kubectl != 'false' }} if: ${{ inputs.kube-config != '' && inputs.enable-validation != 'false' }}
shell: bash shell: bash
run: bash ${{ github.action_path }}/scripts/verify-kubectl.sh run: bash ${{ github.action_path }}/scripts/verify-kubectl.sh
@@ -102,12 +93,10 @@ runs:
shell: bash shell: bash
run: | run: |
echo '🎉 环境校验与配置步骤完成' echo '🎉 环境校验与配置步骤完成'
if [[ "${{ inputs.require-docker }}" != 'false' ]]; then if [[ "${{ inputs.enable-validation }}" != 'false' ]]; then
echo " - Docker: ${{ steps.validate-tools.outputs.docker-version }}" echo " - Docker: ${{ steps.validate-tools.outputs.docker-version }}"
fi
if [[ "${{ inputs.require-kubectl }}" != 'false' ]]; then
echo " - kubectl: ${{ steps.validate-tools.outputs.kubectl-version }}" echo " - kubectl: ${{ steps.validate-tools.outputs.kubectl-version }}"
fi fi
if [[ "${{ inputs.kube-config }}" != '' && "${{ inputs.verify-kubectl-cluster }}" != 'false' && "${{ inputs.require-kubectl }}" != 'false' ]]; then if [[ "${{ inputs.kube-config }}" != '' && "${{ inputs.enable-validation }}" != 'false' ]]; then
echo " - 当前上下文: ${{ steps.verify-kubectl.outputs.current-context }}" echo " - 当前上下文: ${{ steps.verify-kubectl.outputs.current-context }}"
fi fi

View File

@@ -58,22 +58,17 @@ validate_binary() {
main() { main() {
: "${GITHUB_OUTPUT:?GITHUB_OUTPUT 未设置}" >/dev/null : "${GITHUB_OUTPUT:?GITHUB_OUTPUT 未设置}" >/dev/null
local check_docker="${CHECK_DOCKER:-true}" local enable_validation="${ENABLE_VALIDATION:-true}"
local check_kubectl="${CHECK_KUBECTL:-true}"
if [[ "$check_docker" != "true" ]]; then if [[ "$enable_validation" != "true" ]]; then
log_info "跳过 Docker 校验" log_info "已通过统一开关禁用环境校验"
printf 'docker-version=%s\n' "skipped" >> "$GITHUB_OUTPUT" printf 'docker-version=%s\n' "skipped" >> "$GITHUB_OUTPUT"
else printf 'kubectl-version=%s\n' "skipped" >> "$GITHUB_OUTPUT"
validate_binary "docker" "true" "docker --version" "docker-version" return 0
fi fi
if [[ "$check_kubectl" != "true" ]]; then validate_binary "docker" "true" "docker --version" "docker-version"
log_info "跳过 kubectl 校验" validate_binary "kubectl" "true" "kubectl version --client --short 2>/dev/null || kubectl version --client" "kubectl-version"
printf 'kubectl-version=%s\n' "skipped" >> "$GITHUB_OUTPUT"
else
validate_binary "kubectl" "true" "kubectl version --client --short 2>/dev/null || kubectl version --client" "kubectl-version"
fi
} }
trap 'log_error "工具校验失败,退出码: $?"' ERR trap 'log_error "工具校验失败,退出码: $?"' ERR