Files
xgj/config-env/action.yml

114 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: 'Configure Build Environment'
description: '验证已有环境并配置 Git 与 kubectl不执行软件安装'
author: 'Your Organization'
branding:
icon: 'settings'
color: 'green'
inputs:
git-user-name:
description: 'Git 用户名'
required: false
default: 'GiteaActions'
git-user-email:
description: 'Git 用户邮箱'
required: false
default: 'actions@gitea.com'
kube-config:
description: 'Base64 编码的 kubectl 配置文件'
required: false
default: ''
require-docker:
description: '是否校验 docker 可用性 (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
default: 'true'
docker-registry:
description: 'Docker 私有仓库地址'
required: false
default: 'docker-registry.bjxgj.com'
docker-username:
description: 'Docker 仓库用户名'
required: false
default: 'ci-action'
docker-password:
description: 'Docker 仓库密码(开启登录时必填)'
required: false
default: ''
skip-docker-login:
description: '是否跳过 Docker 登录 (true/false)'
required: false
default: 'false'
outputs:
docker-version:
description: '检测到的 Docker 版本'
value: ${{ steps.validate-tools.outputs.docker-version }}
kubectl-version:
description: '检测到的 kubectl 版本'
value: ${{ steps.validate-tools.outputs.kubectl-version }}
kubectl-context:
description: '验证通过时的当前 kubectl 上下文'
value: ${{ steps.verify-kubectl.outputs.current-context }}
runs:
using: 'composite'
steps:
- name: 配置 Git
shell: bash
run: ${{ github.action_path }}/scripts/configure-git.sh
env:
GIT_USER_NAME: ${{ inputs.git-user-name }}
GIT_USER_EMAIL: ${{ inputs.git-user-email }}
- name: 校验工具可用性
id: validate-tools
shell: bash
run: ${{ github.action_path }}/scripts/validate-tools.sh
env:
CHECK_DOCKER: ${{ inputs.require-docker }}
CHECK_KUBECTL: ${{ inputs.require-kubectl }}
- name: 配置 kubectl
if: ${{ inputs.kube-config != '' && inputs.require-kubectl != 'false' }}
shell: bash
run: ${{ github.action_path }}/scripts/configure-kubectl.sh
env:
KUBE_CONFIG_BASE64: ${{ inputs.kube-config }}
- name: 验证 kubectl 连通性
id: verify-kubectl
if: ${{ inputs.kube-config != '' && inputs.verify-kubectl-cluster != 'false' && inputs.require-kubectl != 'false' }}
shell: bash
run: ${{ github.action_path }}/scripts/verify-kubectl.sh
- name: 登录私有 Docker 仓库
if: ${{ inputs.skip-docker-login != 'true' }}
uses: docker/login-action@v3
with:
registry: ${{ inputs.docker-registry }}
username: ${{ inputs.docker-username }}
password: ${{ inputs.docker-password }}
- name: 环境校验完成
shell: bash
run: |
echo '🎉 环境校验与配置步骤完成'
if [[ "${{ inputs.require-docker }}" != 'false' ]]; then
echo " - Docker: ${{ steps.validate-tools.outputs.docker-version }}"
fi
if [[ "${{ inputs.require-kubectl }}" != 'false' ]]; then
echo " - kubectl: ${{ steps.validate-tools.outputs.kubectl-version }}"
fi
if [[ "${{ inputs.kube-config }}" != '' && "${{ inputs.verify-kubectl-cluster }}" != 'false' && "${{ inputs.require-kubectl }}" != 'false' ]]; then
echo " - 当前上下文: ${{ steps.verify-kubectl.outputs.current-context }}"
fi