Skip to content

Commit 12488c0

Browse files
committed
fix(ci): 服务器同步改用 Windows 原生 ssh/scp(appleboy 不支持 MSYS)
1 parent ba40ce7 commit 12488c0

1 file changed

Lines changed: 20 additions & 42 deletions

File tree

‎.github/workflows/release.yml‎

Lines changed: 20 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -147,34 +147,27 @@ jobs:
147147
148148
# ---------------------------------------------------------------
149149
# 同步安装包至自建服务器(国内主下载源;服务器连接继承自原项目)
150+
# appleboy/ssh-action 与 scp-action 不支持 Windows runner(MSYS 平台检测失败),
151+
# 改用 Windows 自带 OpenSSH(ssh/scp 均在 Git Bash 可用)
150152
# ---------------------------------------------------------------
151-
- name: Ensure downloads directory on server
152-
uses: appleboy/ssh-action@v1
153-
with:
154-
host: ${{ secrets.SERVER_HOST }}
155-
username: ${{ secrets.SERVER_USER }}
156-
key: ${{ secrets.SSH_PRIVATE_KEY }}
157-
script: mkdir -p /opt/Entropydecrease/downloads
158-
159-
- name: Upload installer to server
160-
uses: appleboy/scp-action@v0.1.7
161-
with:
162-
host: ${{ secrets.SERVER_HOST }}
163-
username: ${{ secrets.SERVER_USER }}
164-
key: ${{ secrets.SSH_PRIVATE_KEY }}
165-
source: release-files/*.exe
166-
target: /opt/Entropydecrease/downloads
167-
strip_components: 1
168-
169-
- name: Publish metadata (last, avoids 404 window)
170-
uses: appleboy/scp-action@v0.1.7
171-
with:
172-
host: ${{ secrets.SERVER_HOST }}
173-
username: ${{ secrets.SERVER_USER }}
174-
key: ${{ secrets.SSH_PRIVATE_KEY }}
175-
source: release-files/latest.json
176-
target: /opt/Entropydecrease/downloads
177-
strip_components: 1
153+
- name: Sync installer to server
154+
shell: bash
155+
env:
156+
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
157+
SERVER_HOST: ${{ secrets.SERVER_HOST }}
158+
SERVER_USER: ${{ secrets.SERVER_USER }}
159+
run: |
160+
mkdir -p ~/.ssh
161+
echo "$SSH_KEY" > ~/.ssh/deploy_key
162+
chmod 600 ~/.ssh/deploy_key
163+
SSH_OPTS="-i ~/.ssh/deploy_key -o StrictHostKeyChecking=no -o ConnectTimeout=30"
164+
ssh $SSH_OPTS "$SERVER_USER@$SERVER_HOST" "mkdir -p /opt/Entropydecrease/downloads"
165+
scp $SSH_OPTS release-files/*.exe "$SERVER_USER@$SERVER_HOST:/opt/Entropydecrease/downloads/"
166+
# 元数据最后发布,避免 404 窗口期
167+
scp $SSH_OPTS release-files/latest.json "$SERVER_USER@$SERVER_HOST:/opt/Entropydecrease/downloads/"
168+
# 保留策略:仅保留最近 3 个版本的安装包,防止磁盘增长
169+
ssh $SSH_OPTS "$SERVER_USER@$SERVER_HOST" "cd /opt/Entropydecrease/downloads && ls -t -- *.exe 2>/dev/null | tail -n +4 | while read -r f; do rm -f -- \"\$f\"; done"
170+
rm -f ~/.ssh/deploy_key
178171
179172
# ---------------------------------------------------------------
180173
# 同步至 OSS(CDN 源站;可选——未配置阿里云凭据时跳过)
@@ -203,21 +196,6 @@ jobs:
203196
--force -e "$OSS_ENDPOINT" --profile ossci
204197
echo "OSS sync done"
205198
206-
# ---------------------------------------------------------------
207-
# 保留策略:仅保留最近 3 个版本的安装包,防止磁盘增长
208-
# ---------------------------------------------------------------
209-
- name: Prune old versions (keep last 3)
210-
uses: appleboy/ssh-action@v1
211-
with:
212-
host: ${{ secrets.SERVER_HOST }}
213-
username: ${{ secrets.SERVER_USER }}
214-
key: ${{ secrets.SSH_PRIVATE_KEY }}
215-
script: |
216-
cd /opt/Entropydecrease/downloads
217-
ls -t -- *.exe 2>/dev/null | tail -n +4 | while read -r f; do
218-
rm -f -- "$f"
219-
done
220-
221199
# ---------------------------------------------------------------
222200
# 发布结果校验:防止"空 Release"(历史事故 v0.27.0/v0.28.7)
223201
# ---------------------------------------------------------------

0 commit comments

Comments
 (0)