ci: use ssh key for main deploy
Build docker and publish / build (20.15.1) (push) Failing after 8m20s
Build docker and publish / build (20.15.1) (push) Failing after 8m20s
This commit is contained in:
+34
-33
@@ -5,23 +5,22 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- internal
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- internal
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
# Docker镜像仓库
|
# Docker镜像仓库
|
||||||
REPO: ${{ vars.REPO || 'registry.kxsw.us/vpn-server' }}
|
REPO: ${{ vars.REPO || 'registry.kxsw.us/vpn-server' }}
|
||||||
# SSH连接信息 (根据分支自动选择)
|
# SSH连接信息 (根据分支自动选择服务器和用户)
|
||||||
SSH_HOST: ${{ github.ref_name == 'main' && vars.SSH_HOST || vars.DEV_SSH_HOST }}
|
SSH_HOST: ${{ github.ref_name == 'main' && vars.SSH_HOST || vars.DEV_SSH_HOST }}
|
||||||
SSH_PORT: ${{ vars.SSH_PORT }}
|
SSH_PORT: ${{ vars.SSH_PORT }}
|
||||||
SSH_USER: ${{ vars.SSH_USER }}
|
SSH_USER: ${{ github.ref_name == 'main' && 'ubuntu' || 'root' }}
|
||||||
SSH_PASSWORD: ${{ github.ref_name == 'main' && vars.SSH_PASSWORD || vars.DEV_SSH_PASSWORD }}
|
# SSH私钥(Gitea Secret 名称:AWS)
|
||||||
|
SSH_KEY: ${{ secrets.AWS }}
|
||||||
# TG通知
|
# TG通知
|
||||||
TG_BOT_TOKEN: 8114337882:AAHkEx03HSu7RxN4IHBJJEnsK9aPPzNLIk0
|
TG_BOT_TOKEN: 8114337882:AAHkEx03HSu7RxN4IHBJJEnsK9aPPzNLIk0
|
||||||
TG_CHAT_ID: "-4940243803"
|
TG_CHAT_ID: "-49402438031"
|
||||||
# Go构建变量
|
# Go构建变量
|
||||||
SERVICE: vpn
|
SERVICE: vpn
|
||||||
SERVICE_STYLE: vpn
|
SERVICE_STYLE: vpn
|
||||||
@@ -49,7 +48,7 @@ jobs:
|
|||||||
if [ "${{ github.ref_name }}" = "main" ]; then
|
if [ "${{ github.ref_name }}" = "main" ]; then
|
||||||
echo "DOCKER_TAG_SUFFIX=latest" >> $GITHUB_ENV
|
echo "DOCKER_TAG_SUFFIX=latest" >> $GITHUB_ENV
|
||||||
echo "CONTAINER_NAME=ppanel-server" >> $GITHUB_ENV
|
echo "CONTAINER_NAME=ppanel-server" >> $GITHUB_ENV
|
||||||
echo "DEPLOY_PATH=/root/hifast" >> $GITHUB_ENV
|
echo "DEPLOY_PATH=/opt/ppanel" >> $GITHUB_ENV
|
||||||
echo "为 main 分支设置生产环境变量"
|
echo "为 main 分支设置生产环境变量"
|
||||||
elif [ "${{ github.ref_name }}" = "internal" ]; then
|
elif [ "${{ github.ref_name }}" = "internal" ]; then
|
||||||
echo "DOCKER_TAG_SUFFIX=internal" >> $GITHUB_ENV
|
echo "DOCKER_TAG_SUFFIX=internal" >> $GITHUB_ENV
|
||||||
@@ -137,17 +136,15 @@ jobs:
|
|||||||
|
|
||||||
echo "镜像推送完成"
|
echo "镜像推送完成"
|
||||||
|
|
||||||
# 调试: 打印 SSH 连接信息
|
# 调试: 打印部署目标(不输出敏感信息)
|
||||||
- name: 🔍 调试 - 打印 SSH 连接信息
|
- name: 🔍 调试 - 打印部署目标
|
||||||
run: |
|
run: |
|
||||||
echo "========== SSH 连接信息调试 =========="
|
echo "========== 部署目标调试 =========="
|
||||||
echo "当前分支: ${{ github.ref_name }}"
|
echo "当前分支: ${{ github.ref_name }}"
|
||||||
echo "SSH_HOST: ${{ env.SSH_HOST }}"
|
echo "SSH_HOST: ${{ env.SSH_HOST }}"
|
||||||
echo "SSH_PORT: ${{ env.SSH_PORT }}"
|
echo "SSH_PORT: ${{ env.SSH_PORT }}"
|
||||||
echo "SSH_USER: ${{ env.SSH_USER }}"
|
echo "SSH_USER: ${{ env.SSH_USER }}"
|
||||||
echo "SSH_PASSWORD 长度: ${#SSH_PASSWORD}"
|
echo "SSH认证方式: 私钥 (AWS)"
|
||||||
echo "SSH_PASSWORD 前3位: $(echo "$SSH_PASSWORD" | cut -c1-3)***"
|
|
||||||
echo "SSH_PASSWORD 完整值: ${{ env.SSH_PASSWORD }}"
|
|
||||||
echo "DEPLOY_PATH: ${{ env.DEPLOY_PATH }}"
|
echo "DEPLOY_PATH: ${{ env.DEPLOY_PATH }}"
|
||||||
echo "====================================="
|
echo "====================================="
|
||||||
|
|
||||||
@@ -157,10 +154,10 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
host: ${{ env.SSH_HOST }}
|
host: ${{ env.SSH_HOST }}
|
||||||
username: ${{ env.SSH_USER }}
|
username: ${{ env.SSH_USER }}
|
||||||
password: ${{ env.SSH_PASSWORD }}
|
key: ${{ env.SSH_KEY }}
|
||||||
port: ${{ env.SSH_PORT }}
|
port: ${{ env.SSH_PORT }}
|
||||||
source: "docker-compose.cloud.yml"
|
source: "docker-compose.cloud.yml"
|
||||||
target: "${{ env.DEPLOY_PATH }}/"
|
target: "/tmp/ppanel-deploy/"
|
||||||
|
|
||||||
# 步骤6: 连接服务器更新并启动
|
# 步骤6: 连接服务器更新并启动
|
||||||
- name: 🚀 连接服务器更新并启动
|
- name: 🚀 连接服务器更新并启动
|
||||||
@@ -168,7 +165,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
host: ${{ env.SSH_HOST }}
|
host: ${{ env.SSH_HOST }}
|
||||||
username: ${{ env.SSH_USER }}
|
username: ${{ env.SSH_USER }}
|
||||||
password: ${{ env.SSH_PASSWORD }}
|
key: ${{ env.SSH_KEY }}
|
||||||
port: ${{ env.SSH_PORT }}
|
port: ${{ env.SSH_PORT }}
|
||||||
timeout: 300s
|
timeout: 300s
|
||||||
command_timeout: 600s
|
command_timeout: 600s
|
||||||
@@ -176,23 +173,27 @@ jobs:
|
|||||||
echo "连接服务器成功,开始部署..."
|
echo "连接服务器成功,开始部署..."
|
||||||
echo "部署目录: ${{ env.DEPLOY_PATH }}"
|
echo "部署目录: ${{ env.DEPLOY_PATH }}"
|
||||||
echo "部署标签: ${{ env.DOCKER_TAG_SUFFIX }}"
|
echo "部署标签: ${{ env.DOCKER_TAG_SUFFIX }}"
|
||||||
|
echo "登录用户: ${{ env.SSH_USER }}"
|
||||||
|
|
||||||
# 进入部署目录
|
if [ "${{ github.ref_name }}" = "main" ]; then
|
||||||
cd ${{ env.DEPLOY_PATH }}
|
sudo mkdir -p ${{ env.DEPLOY_PATH }}
|
||||||
|
sudo cp /tmp/ppanel-deploy/docker-compose.cloud.yml ${{ env.DEPLOY_PATH }}/docker-compose.cloud.yml
|
||||||
# 创建/更新环境变量文件
|
cd ${{ env.DEPLOY_PATH }}
|
||||||
# echo "PPANEL_SERVER_TAG=${{ env.DOCKER_TAG_SUFFIX }}" > .env
|
echo "📥 拉取镜像..."
|
||||||
|
sudo docker-compose -f docker-compose.cloud.yml pull ppanel-server
|
||||||
# 拉取最新镜像
|
echo "🚀 启动服务..."
|
||||||
echo "📥 拉取镜像..."
|
sudo docker-compose -f docker-compose.cloud.yml up -d ppanel-server
|
||||||
docker-compose -f docker-compose.cloud.yml pull ppanel-server
|
sudo docker image prune -f || true
|
||||||
|
else
|
||||||
# 启动服务
|
mkdir -p ${{ env.DEPLOY_PATH }}
|
||||||
echo "🚀 启动服务..."
|
cp /tmp/ppanel-deploy/docker-compose.cloud.yml ${{ env.DEPLOY_PATH }}/docker-compose.cloud.yml
|
||||||
docker-compose -f docker-compose.cloud.yml up -d ppanel-server
|
cd ${{ env.DEPLOY_PATH }}
|
||||||
|
echo "📥 拉取镜像..."
|
||||||
# 清理未使用的镜像
|
docker-compose -f docker-compose.cloud.yml pull ppanel-server
|
||||||
docker image prune -f || true
|
echo "🚀 启动服务..."
|
||||||
|
docker-compose -f docker-compose.cloud.yml up -d ppanel-server
|
||||||
|
docker image prune -f || true
|
||||||
|
fi
|
||||||
|
|
||||||
echo "✅ 部署命令执行完成"
|
echo "✅ 部署命令执行完成"
|
||||||
|
|
||||||
@@ -233,4 +234,4 @@ jobs:
|
|||||||
|
|
||||||
⚠️ 请检查构建日志获取详细信息
|
⚠️ 请检查构建日志获取详细信息
|
||||||
parse_mode: Markdown
|
parse_mode: Markdown
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user