使用 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 程序的镜像打包