1 Star 0 Fork 0

tking / micro-service

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
CI 学习实战-GitHub Actions 实现 Go项目的CI.md 2.93 KB
Copy Edit Web IDE Raw Blame History
tking authored 2022-02-13 08:19 . style

CI 学习实战-GitHub Actions 实现 Go项目的CI

在项目开发中,我们要频繁地执行静态代码检查、测试、编译、构建等操作。 为了提高效率,避免因手动操作失误产生问题,我们通常借助 CI(Continuous Integration) 系统来自动化执行这些操作。

当前业界有很多优秀的 CI 系统可供选择,例如 CircleCI、TravisCI、Jenkins、CODING、GitHub Actions 等,今天我们从 GitHub Actions 学习和实战 CI

GitHub Actions 的基本概念

GitHub Actions 是一个持续集成和持续交付 (CI/CD) 平台,可让您自动化构建、测试和部署管道。您可以创建工作流来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。

常用语法术语:

workflow(工作流程):一个 .yml 文件对应一个 workflow,也就是一次持续集成。一个 GitHub 仓库可以包含多个 workflow,只要是在 .github/workflow 目录下的 .yml 文件都会被 GitHub 执行。

job(任务):一个 workflow 由一个或多个 job 构成,每个 job 代表一个持续集成任务。

step(步骤):每个 job 由多个 step 构成,一步步完成。

action(动作):每个 step 可以依次执行一个或多个命令(action)。

on:一个 workflow 的触发条件,决定了当前的 workflow 在什么时候被执行。

GitHub Actions 实战

这里实战从一个 Go项目的CI,包括:

  1. 准备一个Go编译环境。
  2. 从github.com/easytking/bar下载源码。
  3. 添加或删除缺失的依赖包。
  4. 编译。
Step1: 创建一个GitHub Demo Repository

image.png

Step2: Git Clone 到本地
$ git clone https://github.com/easytking/bar.git
Step3: 在 .github/workflows目录下新建democi.yml文件

新建文件夹

mkdir -p .github/workflows

在.github/workflows目录下新建democi.yml


name: Go Demo

on: [push, pull_request]

jobs:

  democi-build:
    name: Test with go ${{ matrix.go_version }} on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    environment:
      name: democi

    strategy:
      matrix:
        go_version: [1.16]
        os: [ubuntu-latest]

    steps:

      - name: Set up Go ${{ matrix.go_version }}
        uses: actions/setup-go@v2
        with:
          go-version: ${{ matrix.go_version }}
        id: go

      - name: Check out code into the Go module directory
        uses: actions/checkout@v2

      - name: Tidy
        run: |
          go mod tidy

      - name: Build
        run: |
          go build -v -o democi .
Step4: Git Push
$ git push
Step5: 查看工作流程结果

在 GitHub.com 上,导航到仓库的主页面 5bcce10f59b5228130abc34ec5163558.png

TODO:

Comment ( 0 )

Sign in to post a comment

1
https://gitee.com/lucktk/study-nodes.git
git@gitee.com:lucktk/study-nodes.git
lucktk
study-nodes
micro-service
master

Search