使用 GitHub Actions 部署Java 项目

926 阅读1分钟

使用 GitHub Actions 部署Java 项目

创建 action 文件

在项目的根目录下创建文件夹 .github/workflows,后增加对应的 yml 文件,例如:

|   .github
|       workflows
|           maven.yml

编写 CI 文件

实例 CI 文件如下:

name: Build Ci

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
    
      # 设置 maven 缓存
      - name: Cache Maven packages
        uses: actions/cache@v1
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2

      - name: Maven Build
        run: mvn -B package   -DskipTests --file pom.xml

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1

     # 设置 hub.docker.io 的账号密码
      - name: Login to DockerHub
        uses: docker/login-action@v1
        with:
            username: ${{ secrets.DOCKERHUB_USERNAME }}
            password: ${{ secrets.DOCKERHUB_TOKEN }}

     # 打包到 dockerhub
      - name: Push to Docker
        uses: docker/build-push-action@v2
        with:
            context: .
            file: ./Dockerfile
            push: true
            tags: |
                ${{ secrets.DOCKERHUB_USERNAME }}/wkserver:latest

设置缓存

为了避免每次打包都需要拉取 maven 依赖,可以根据 pom 文件 hash 设置项目的依赖缓存,具体代码如下:

- name: Cache Maven packages
      uses: actions/cache@v1
      with:
      path: ~/.m2
      key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
      restore-keys: ${{ runner.os }}-m2

打包到 Docker

使用 action 插件,将 DockerFile 打包到 hub 中去.

配置变量

打开项目在 github 的主页,找到 「seeting」 -> 「secrets」 -> 「New respository secret」

查看效果

修改项目代码,触发 github actions 作业,可以看到 github actions 正在按照编写的脚本进行执行任务

执行完成后,可以前往 docker hub 查看对应的 docker 镜像

至此,使用我们便成功的使用 docker actions 完成了 java 程序的镜像打包