准备工作参考我的另一篇利用github actions自动部署gradle构建的springboot 项目打包的war包到tomcat服务器,这里直接上配置,关键的地方都写了注释
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/setup-node@v2 #nodejs 环境
with:
node-version: '14' #nodejs 版本
- run: yarn install #安装依赖
- run: yarn build:prod #打包
- name: Tar dist file
run: |
tar -zcvf webapp.tar.gz dist # 打包dist文件夹
- name: Scp_upload_tar_file # 上传至服务器
uses: garygrossgarten/github-action-scp@release
with:
local: 'webapp.tar.gz'
remote: '/home/webapp.tar.gz'
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
- name: Deploy_app_tar #解压压缩包
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
cd /home/
rm -rf dist
tar -zxvf webapp.tar.gz
rm -rf /var/html/webapp
mv dist /var/html/webapp