一、github部署脚本
在项目的根目录下新建一个文件夹,命名为 .github , 并在.github下创建子文件夹 workflows,并在workflows文件夹新建文件 deploy.yml
在执行git push 操作的时候,github服务器就会执行deploy.yml这个部署脚本。
name: Deploy to Server
on:
push:
branches:
# git push到main分支则会执行自动部署
- main
jobs:
deploy:
# 这里是在github的服务器上进行的
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 11.0.18
uses: actions/setup-java@v2
with:
java-version: 11.0.18
distribution: adopt
java-package: jdk
architecture: x64
check-latest: false
overwrite-settings: true
job-status: success
# 选择编译方式
- name: Build with Maven
run: mvn clean package
# 然后将打好的包用scp指令远程copy到你的服务器上
- name: Copy JAR file to server
uses: appleboy/scp-action@master
with:
host: ${{vars.SERVER_HOST}}
username: ubuntu
password: ${{vars.SERVER_PASSWORD}}
port: 22
source: target/chat-0.0.1-SNAPSHOT.jar
target: /home/ubuntu/chat/
command_timeout: 10m
use_insecure_cipher: false
rm: false
debug: true
strip_components: 0
overwrite: true
proxy_port: 22
proxy_timeout: 30s
proxy_use_insecure_cipher: false
- name: Restart application on server
uses: appleboy/ssh-action@master
with:
host: ${{vars.SERVER_HOST}}
username: ubuntu
password: ${{vars.SERVER_PASSWORD}}
port: 22
script: |
sudo systemctl stop live-chat.service
sudo systemctl start live-chat.service
变量可以在github上自定义作为参数传进来
我这里使用了systemctl添加了自定义服务,在部署的时候直接执行systemctl start启动
- 首先创建一个.service文件在/etc/systemd/system目录下
vim /etc/systemd/system/live-chat.service
- 首先创建一个.service文件在/etc/systemd/system目录下
- 在打开的文件中,编写服务信息
[Unit] Description=live chat //这里只是定义名字 After=network.target [Service] # 这里要填写你服务器上java所在的全路径, 启动命令 ExecStart=/usr/bin/java -jar /home/ubuntu/chat/target/chat-0.0.1-SNAPSHOT.jar Restart=always [Install] WantedBy=multi-user.target
- 在打开的文件中,编写服务信息
- 保存后刷新系统命令
执行sudo systemctl daemon-reload
- 保存后刷新系统命令
