githup action 发布springboot项目

1.准备好需要准备的springboot项目,新建Dockerfile文件

#Dockerfile文件内容
FROM openjdk:8-jdk-alpine 
ADD ./target/wechart-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080 
ENTRYPOINT ["java","-jar","/app.jar"]
            <!--DockerFile依赖-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                   <repository>${project.artifactId}</repository>
                </configuration>
            </plugin>

2.新建阿里云镜像仓库

3.新建githup仓库,根据提示,推送代码

 4.新建访问秘钥TOKEN

 

5.配置项目所需要的环境信息,找到项目下的setting设置,点击secrets,开始配置

 

 

TOKEN为刚新建的令牌

6.在.github\workflows文件夹下新建yml文件

# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
 
name: Java CI with Maven
#在push本地main分支时启动action
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    #在ubuntu-latest下执行
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@master  #下来master分支
    - name: Set up JDK 8
      uses: actions/setup-java@master
      with:
        java-version: '8'
        distribution: 'adopt'
        cache: maven
    - name: Build with Maven       #打包命令
      run: mvn clean package --file pom.xml
    - name: BuildDockerImage   #使用dockerFile文件制作镜像,并且推送到阿里云镜像仓库
        run: |
          docker login --username=${{ secrets.YUN_USERNAME }} --password ${{ secrets.YUN_PASSWORD }} registry.cn-hangzhou.aliyuncs.com
          docker build . -t ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
          docker push ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
          docker tag $(docker images ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER -q) ${{ secrets.REGISTRY }}:latest
          docker push ${{ secrets.REGISTRY }}:latest
  pull-docker:  #登录外网服务器,拉取刚刚推送的镜像,然后启动镜像
    needs: [build]
    name: Pull Docker
    runs-on: ubuntu-latest
    steps:
      - name: Deploy
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          script: |
            docker stop $(docker ps -a | grep -w registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action| awk '{print $1}')
            docker rm -f $(docker ps -a | grep -w registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action| awk '{print $1}')
            docker rmi -f $(docker images  registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action:latest -q)
            docker login --username=${{ secrets.YUN_USERNAME }} --password ${{ secrets.YUN_PASSWORD }} registry.cn-hangzhou.aliyuncs.com
            docker pull registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action:latest
            docker run -d -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action:latest

7.点击提交,开始执行,点击action,查看执行过程,执行完成后,登录服务器,查看项目是否发布成功

#不使用docker镜像仓库
name: Java  Maven
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  compile:
    runs-on: ubuntu-latest
    name: Running Java 
    steps:
    - uses: actions/checkout@master
    - name: Set up JDK 8
      uses: actions/setup-java@master
      with:
        java-version: '8'
        distribution: 'adopt'
        cache: maven
    - name: Build with Maven
      run: mvn clean package --file pom.xml
    - name: 将 JAR 包部署到服务器
      uses: garygrossgarten/github-action-scp@release
      with:
          local: target/wechart-0.0.1-SNAPSHOT.jar
          remote: /home/wechart/wechart-0.0.1-SNAPSHOT.jar
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
               # 部署到服务器
    - name: Deploy
      uses: appleboy/ssh-action@master
      with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          script: |
            cd /home/wechart
            nohup java -jar wechart-0.0.1-SNAPSHOT.jar > wechart.log 2>&1 &

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一些关于在 GitHub 上配置和运行 Spring Boot 项目的指导。 首先,你需要在 GitHub 上创建一个新的仓库,并将你的 Spring Boot 项目推送到这个仓库中。这可以通过以下步骤完成: 1. 在本地计算机上创建一个新的 Git 仓库,并将你的 Spring Boot 项目添加到该仓库中。 2. 在 GitHub 上创建一个新的仓库,并将其命名为你的项目名称。 3. 将本地 Git 仓库与新的 GitHub 仓库关联。 4. 将本地 Git 仓库中的代码推送到 GitHub 仓库中。 完成以上步骤后,你需要在 GitHub 上进行一些配置,以便能够运行你的 Spring Boot 项目。具体来说,你需要: 1. 在 GitHub 上创建一个 Actions 工作流程,以便在 GitHub 上自动构建和部署你的项目。 2. 在工作流程中包含构建和部署脚本,以使你的项目能够在 GitHub 上成功运行。 这些步骤可能会比较复杂,但是如果你遵循一些基本的指导原则,那么你应该能够很快地完成这些任务。以下是一些有用的资源,可以帮助你在 GitHub 上配置和运行 Spring Boot 项目: 1. Spring Boot 官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/ 2. GitHub Actions 文档:https://docs.github.com/en/actions 3. Spring Boot 项目示例:https://github.com/spring-projects/spring-boot/tree/main/spring-boot-samples 希望这些信息能够帮助你成功地在 GitHub 上配置和运行你的 Spring Boot 项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值