@@ -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