赞
踩
一台安装好了tomcat的服务器(需要知道服务器ip地址,ssh登录用户名和密码以及端口号),如果没有装,可以看看我之前的tomcat安装教程
给项目配置服务器信息(当然如果你的项目是私有的,图方便也可以不用配置,直接写到action里也可以,只是不太安全)
采用gradle 构建的springboot项目,打包方式为war,并配置打包的war包名称(方便读取)
plugins {
id 'org.springframework.boot' version '2.4.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'war'
}
group = 'com.flymegoc'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
bootWar {
archiveFileName = "app.war"
}
详细的参数可以去看看阮一峰GitHub Actions 入门教程,我这里直接贴现成的,切换到项目actions标签下,创建任意名称的yml文件,写入以下脚本信息,更改自己的项目即可
# This workflow will build a Java project with Gradle # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle name: Java CI with Gradle #名称 on: #触发条件 push: branches: [ master ] pull_request: branches: [ master ] jobs: #具体的任务 build: runs-on: ubuntu-latest #执行的环境 steps: - uses: actions/checkout@v2 #拉取项目文件 - name: Set up JDK 8 #配置java环境 uses: actions/setup-java@v2 with: java-version: '8' distribution: 'adopt' - name: Grant execute permission for gradlew #更改脚本权限 run: chmod +x gradlew - name: Build with Gradle #开始打包 -x test 跳过测试 run: ./gradlew bootWar -x test - name: scp_upload_war_file #上传文件到服务器 uses: garygrossgarten/github-action-scp@release with: local: 'build/libs/app.war' #打包文件的路径 remote: '/home/app.war' #放到服务器的目录 host: ${{ secrets.HOST }} #服务器ip地址 username: ${{ secrets.USERNAME }} #服务器ssh用户名 password: ${{ secrets.PASSWORD }} #服务器ssh密码 port: ${{ secrets.PORT }} # 服务器ssh端口(默认22) - name: deploy_app_war #开始部署 uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST }} #服务器ip地址 username: ${{ secrets.USERNAME }} #服务器ssh用户名 password: ${{ secrets.PASSWORD }} #服务器ssh密码 port: ${{ secrets.PORT }} # 服务器ssh端口(默认22) script: | systemctl stop tomcat #停止tomcat cd /usr/local/apache-tomcat-9.0.45/webapps/ mv app.war /home/app.war.backup #备份原来的包 rm -rf app # 删除原来的目录 mv /home/app.war /usr/local/apache-tomcat-9.0.45/webapps/app.war #移动新包 systemctl start tomcat #启动tomcat
参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。