Docker分享-在Github配置CI
CI配置流程
在此之前,假设我们通过Github Actions访问到你的docker hub了。
首先我们需要构建一个CI通道
- 进入你的仓库点击Actions->New workflow
- 点击set up a workflow yourself
首先命名workflow:
name: Run CI
然后选择运行的时间,举个例子,我们希望每次有东西上main branch的时候跑CI
on:
push:
branches: [ main ]
workflow_dispatch:
workflow_dispatch是可选的。
之后是指定运行流程,一套流程是由一个或者多个job组成的,并且这些job可以以顺序的方式执行,也可以并行执行。
我们第一个job
jobs:
build-and-test:
runs-on: ubuntu-latest
job内包含一些列的steps,简单的CI工作流程:
- 设置Go编译器环境
- 从Github中取到代码
- 拉取Go modules,以及相关依赖
- 编译二进制文件(可选)
- 构建docker镜像
- 跑测试
steps:
steps:
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.16.4
- name: Checkout code
uses: actions/checkout@v2
- name: Fetch required Go modules
run: go mod download
- name: Build
run: go build -v ./...
- name: Build Docker image
uses: docker/build-push-action@v2
with:
push: false
tags: ${{ github.event.repository.name }}:latest, ${{ github.repository }}:latest
- name: Run functional tests
run: go test -v ./...
完整的workflow文件将会出现在项目的仓库里,./github/workflows/ci.yml
然后start commit就好了。