+41
-12
@@ -1,5 +1,5 @@
|
|||||||
# ==========================================
|
# ==========================================
|
||||||
# 基于 easingthemes/ssh-deploy Action 的部署工作流
|
# 纯 Bash SCP 部署工作流(零外部 Action 依赖)
|
||||||
# ==========================================
|
# ==========================================
|
||||||
name: Deploy Frontend
|
name: Deploy Frontend
|
||||||
|
|
||||||
@@ -16,14 +16,43 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Deploy via rsync
|
- name: Deploy via SCP
|
||||||
uses: easingthemes/ssh-deploy@v4
|
run: |
|
||||||
env:
|
SERVER_HOST="${{ secrets.SSH_HOST }}"
|
||||||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
SERVER_USER="${{ secrets.SSH_USER }}"
|
||||||
ARGS: "-avz --delete"
|
SERVER_PORT="${{ secrets.SSH_PORT }}"
|
||||||
SOURCE: "./"
|
TARGET_DIR="${{ secrets.TARGET_DIR }}"
|
||||||
REMOTE_HOST: ${{ secrets.SSH_HOST }}
|
|
||||||
REMOTE_USER: ${{ secrets.SSH_USER }}
|
: ${SERVER_HOST:="192.168.31.185"}
|
||||||
REMOTE_PORT: ${{ secrets.SSH_PORT }}
|
: ${SERVER_USER:="root"}
|
||||||
TARGET: ${{ secrets.TARGET_DIR }}
|
: ${SERVER_PORT:="2222"}
|
||||||
EXCLUDE: ".git/, .gitea/, .github/"
|
: ${TARGET_DIR:="/data/apps/ci-cd/frontend"}
|
||||||
|
|
||||||
|
echo "🌐 部署至 ${SERVER_USER}@${SERVER_HOST}:${TARGET_DIR} (端口: ${SERVER_PORT})"
|
||||||
|
|
||||||
|
# 配置 SSH 密钥
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
chmod 700 ~/.ssh
|
||||||
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
|
||||||
|
chmod 600 ~/.ssh/id_ed25519
|
||||||
|
|
||||||
|
# 扫描主机指纹
|
||||||
|
ssh-keyscan -p "${SERVER_PORT}" -H "${SERVER_HOST}" >> ~/.ssh/known_hosts 2>/dev/null
|
||||||
|
|
||||||
|
# 确保目标目录存在
|
||||||
|
ssh -i ~/.ssh/id_ed25519 -p "${SERVER_PORT}" \
|
||||||
|
"${SERVER_USER}@${SERVER_HOST}" \
|
||||||
|
"mkdir -p ${TARGET_DIR}"
|
||||||
|
|
||||||
|
# SCP 上传(排除 .git .gitea .github)
|
||||||
|
echo "🚀 开始上传文件..."
|
||||||
|
scp -i ~/.ssh/id_ed25519 -P "${SERVER_PORT}" -r \
|
||||||
|
./* \
|
||||||
|
"${SERVER_USER}@${SERVER_HOST}:${TARGET_DIR}/"
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "✨ 部署成功!"
|
||||||
|
else
|
||||||
|
echo "❌ 部署失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user