You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions部署Jar成功但输出无变更的问题解决

解决GitHub Actions部署Jar包后无变更的问题

以下是针对你的问题的具体排查和修复步骤,结合你的工作流脚本逐一分析:

一、验证S3中的Jar包是否为最新版本

你的部署脚本依赖从S3下载example-SNAPSHOT.jar,如果构建环节未将最新Jar包上传到对应S3路径,部署的始终是旧包,自然看不到变更:

  • 临时在aws s3 cp命令后添加校验逻辑,对比下载包的哈希值与本地手动部署包:
    aws s3 cp s3://${{secrets.AWS_BUCKET_NAME}}/example-SNAPSHOT.jar ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar
    # 添加哈希校验
    echo "下载的Jar包哈希值:"
    sha256sum ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar
    

二、修复脚本中的参数错误并捕获启动日志

你的脚本存在明显的参数拼写错误,且无启动日志导致无法排查失败原因:

  1. 修正参数拼写:
    • SENDGRID_API_KEY多了多余的前缀S:'S${{secrets.SENGRID_API_KEY}}' → '${{secrets.SENGRID_API_KEY}}'
    • DAWS_S3_BUCKET、DAWS_S3_OBJECT_KEY应为AWS_开头,修正为${{secrets.AWS_S3_BUCKET}}、${{secrets.AWS_S3_OBJECT_KEY}}
  2. 保留启动日志:将nohup输出从/dev/null改为日志文件,同时添加进程检查:
    # 替换原nohup命令
    nohup java -DB_HOST=${{secrets.DEV_DB_HOST}} -DB_USER=${{secrets.DEV_DB_USER}} -DB_PASS='${{secrets.DEV_DB_PASS}}' -DSENDGRID_API_KEY='${{secrets.SENGRID_API_KEY}}' -DAWS_S3_BUCKET_NAME='${{secrets.AWS_S3_BUCKET}}' -DAWS_S3_OBJECT_KEY='${{secrets.AWS_S3_OBJECT_KEY}}' -jar ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar > ${{secrets.DEV_APP_FOLDER}}/app.log 2>&1 &
    # 延迟检查进程状态
    sleep 5
    ps aux | grep example-SNAPSHOT.jar
    

三、确保进程被彻底杀死并释放端口

npx kill-port可能存在端口未完全释放的情况,改用更可靠的进程终止方式:

# 杀死所有运行该Jar包的进程
pkill -f example-SNAPSHOT.jar || true
# 强制清理占用目标端口的进程
lsof -i :${{secrets.APP_PORT}} | grep -v PID | awk '{print $2}' | xargs kill -9 || true

替换原脚本中的npx kill-port命令,避免旧进程占用资源导致新应用无法启动。

四、验证路径与文件操作的正确性

添加目录和文件校验,确保脚本在正确路径下执行:

cd ${{secrets.DEV_APP_FOLDER}}
pwd # 打印当前目录,确认路径是否正确
ls -l # 查看文件列表,确认旧包已删除、新包已下载

同时检查chmod -R 777 example-SNAPSHOT.jar是否生效,避免因权限问题导致应用无法启动。

五、检查AWS权限与安全组操作

确认服务器上的aws s3 cp命令有足够权限访问目标文件:

aws s3 ls s3://${{secrets.AWS_BUCKET_NAME}}/example-SNAPSHOT.jar # 验证文件可访问

另外,安全组的授权/撤销操作可通过AWS控制台确认是否生效,避免因IP未正确白名单导致SSH操作异常。


内容的提问来源于stack exchange,提问作者Mahabubur Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:53:11