LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

Github Action部署

2022/11/12 java

一、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上自定义作为参数传进来
Alt text
我这里使用了systemctl添加了自定义服务,在部署的时候直接执行systemctl start启动

    1. 首先创建一个.service文件在/etc/systemd/system目录下
      vim /etc/systemd/system/live-chat.service
    1. 在打开的文件中,编写服务信息
      [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
      
    1. 保存后刷新系统命令
      执行sudo systemctl daemon-reload
img_show