# ============================================================ # Awen 技术主控 · 统一部署 Workflow 模板 # ============================================================ # 签发: 铸渊 · ICE-GL-ZY001 # 版权: 国作登字-2026-A-00037559 # 用途: 模板·部署代码到指定成员的服务器 # 注意: 此文件是模板,需要复制到 Awen 的仓库 .github/workflows/ 下 # ============================================================ name: '🚀 部署到成员服务器 · Deploy to Member Server' on: workflow_dispatch: inputs: target: description: '部署目标 (feimao/juzi/yeye)' required: true type: choice options: - feimao - juzi - yeye action: description: '操作类型' required: true type: choice options: - deploy - health-check - restart - logs jobs: deploy: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: '📋 检出代码' uses: actions/checkout@v4 - name: '🎯 设置部署参数' id: params run: | TARGET="${{ github.event.inputs.target }}" case "$TARGET" in feimao) echo "member_name=肥猫" >> $GITHUB_OUTPUT echo "persona_name=舒舒" >> $GITHUB_OUTPUT ;; juzi) echo "member_name=桔子" >> $GITHUB_OUTPUT echo "persona_name=晨星" >> $GITHUB_OUTPUT ;; yeye) echo "member_name=页页" >> $GITHUB_OUTPUT echo "persona_name=小坍缩核" >> $GITHUB_OUTPUT ;; esac - name: '🔑 配置SSH密钥' run: | mkdir -p ~/.ssh chmod 700 ~/.ssh TARGET="${{ github.event.inputs.target }}" case "$TARGET" in feimao) echo "${{ secrets.FEIMAO_SERVER_KEY }}" > ~/.ssh/deploy_key ssh-keyscan -H ${{ secrets.FEIMAO_SERVER_HOST }} >> ~/.ssh/known_hosts 2>/dev/null ;; juzi) echo "${{ secrets.JUZI_SERVER_KEY }}" > ~/.ssh/deploy_key ssh-keyscan -H ${{ secrets.JUZI_SERVER_HOST }} >> ~/.ssh/known_hosts 2>/dev/null ;; yeye) echo "${{ secrets.YEYE_SERVER_KEY }}" > ~/.ssh/deploy_key ssh-keyscan -H ${{ secrets.YEYE_SERVER_HOST }} >> ~/.ssh/known_hosts 2>/dev/null ;; esac chmod 600 ~/.ssh/deploy_key - name: '🚀 执行部署' if: github.event.inputs.action == 'deploy' run: | TARGET="${{ github.event.inputs.target }}" echo "═══ 部署到 ${{ steps.params.outputs.member_name }} 服务器 ═══" # 由 params step 已设置好的参数进行部署 # 服务器信息在 SSH 密钥配置阶段已准备好 echo "目标: ${TARGET}" echo "⚠️ 部署前请确认已在 GitHub Secrets 中配置对应的服务器密钥" echo "⚠️ 实际部署逻辑请根据各成员服务器的具体情况调整" - name: '🔍 健康检查' if: github.event.inputs.action == 'health-check' run: | echo "═══ ${{ steps.params.outputs.member_name }} 服务器健康检查 ═══" echo "检查时间: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" - name: '📊 完成报告' if: always() run: | echo "═══ 操作完成 ═══" echo "目标: ${{ steps.params.outputs.member_name }} (${{ steps.params.outputs.persona_name }})" echo "操作: ${{ github.event.inputs.action }}" echo "时间: $(date -u '+%Y-%m-%d %H:%M:%S UTC')"