之前发布过一篇有手就行的前端CI/CD自动部署技能,几分钟学会github Actions工作流用法!
教会了大家如何使用github免费提供的action功能在自己的前端项目中完成自动化的项目构建部署,今天带着大家一起完成后端版本的SpringBoot项目自动化部署
创建工作流
进去之后开始编写我们的工作流脚本
这里先贴上代码
# ci.yml
name: blog-server # 随意 你的工作流名称
on:
push: # 触发条件 这里是在push时触发
branches:
- main # 指定触发分支
jobs:
build:
runs-on: ubuntu-latest # 运行的虚拟机环境 必须
steps:
- uses: actions/checkout@v3 # 使用工具将代码拉到虚拟机
- uses: actions/setup-java@master # 这里是进行打jar包的工具
with: # with指定相关参数
java-version: 8 # java版本
distribution: "adopt" # jdk发行版
cache: maven # 包管理工具
- run: mvn clean package --file pom.xml # 执行打包命令
- name: copy dist fil with scp # 开始上传jar包
uses: wlixcc/SFTP-Deploy-Action@v1.2.4 # 老朋友了,上一篇的前端包也是用这个上传的
with:
server: ${{ secrets.REMOTE_HOST }} # 主机地址,下文再出如何配置
username: 'root' # 主机账号
password: ${{ secrets.REMOTE_PASSWORD }} # 密码
port: 22 # 端口 默认22
local_path: './target/blog-server-0.0.1-SNAPSHOT.jar' # 指定你要上传的文件
remote_path: '/root/jar' # 上传到哪儿
sftp_only: true
- name: Deploy
uses: matheusvanzan/sshpass-action@v2 # 接下来进行运行jar包
with:
host: ${{ secrets.REMOTE_HOST }} # 和上面一样,不再重复
user: 'root'
port: 22
pass: ${{ secrets.REMOTE_PASSWORD }}
run: | # 这里是要执行的后续命令
# 按照自己实际的路径和jar包名称进行更换
# 进入指定目录,结束原来的进程,运行新进程
cd /root/jar
ps -ef | grep blog-server-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9
nohup java -jar blog-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=formal > nohup.out &
pwd
exit
上面的备注应该很清楚了,大家按照自己实际的路径和文件名进行更换。
需要注意到,有部分配置使用到了${{ secrets.xxxx }}这是因为像主机地址、账号密码这种不宜放在代码中,造成密码泄露。
这里我们同样使用Github提供给Action的秘钥变量进行存储。
变量名根据自己上面填写的自定义就好了
完成以上步骤,保存我们的工作流,由于这里直接修改了仓库的代码,算作一次push,会直接触发工作流任务。
提交完成回到Action
查看运行中的任务
大概过两分钟左右,服务器的jar包进行了更新而且也运行了
好了,到这里全部流程跑完,后端服务也更新完毕了,小伙伴们快去实验一下吧~