Github原生CI/CD,初嘗Github Actions


Github 原生 CI/CD,初嘗 Github Actions

Intro

Github 目前已經推出了自己的 CICD 服務 —— Github Actions,而且比微軟的 Azure DevOps Pipelines 對開發者來說更友好,使用起來更好用。

Github Actions 核心概念

總體看下來感覺是從 Azure Pipelines 遷移過來的東西,有許多概念和 Azure Pipelines 是類似的,如果你之前用過 azure pipelines,應該很容易上手

  • Runner 用來跑 cicd build 的服務器
    • Github Hosted Runner Github 官方提供的 Runner
    • Self-Hosted Runner 用自己的服務器作為 Runner
  • Workflow 定義 CI/CD 的流程,需要執行哪些操作,需要做什么
  • Workflow 定義 workflow 的配置文件,通常放在項目根目錄下的 .github/workflows 文件夾下
  • Workflow Run 每一次 CI/CD build
  • Event 觸發 ci/cd build 的事件,如 push/issue/pr
  • Job 由一系列 Step 組成,Job 可以並行執行也可以串行執行,每一個 Job 都是一個新的環境
  • Step 對應 Job 執行的每一個步驟
  • Action 對應 Step 里執行的可復用的操作

Github Actions 配置示例

來看一個 Github Actions 的 dotnet 配置:

name: dotnetcore # workflow name

on: [push] # event trigger,什么事件觸發 build

jobs:
  build:
    runs-on: ubuntu-latest # 指定 runner,使用 Github 提供的 runner

    steps:
    - uses: actions/checkout@v1 # checkout
    - name: Setup .NET Core # 設置 dotnet core 環境
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 3.0.100
    - name: dotnet info # 輸出 dotnet -info,查看 dotnet 版本信息
      run: dotnet --info
    - name: build
      run: bash build.sh # 在 bash 中運行 build 腳本

Github 示例: https://github.com/WeihanLi/WeihanLi.Common/blob/dev/.github/workflows/dotnetcore.yml

More

徽章:

Sample:

[![Github Build Status](https://github.com/WeihanLi/WeihanLi.Common/workflows/dotnetcore/badge.svg?branch=dev)](https://github.com/WeihanLi/WeihanLi.Common/actions?query=workflow%3Adotnetcore+branch%3Adev)

Github Build Status

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg?branch=<branch-name>

Summary

總體來說,用起來還可以,但是感覺還是不如 travis-ci 以及 azure pipelines成熟,比如說常用 ci 都支持的 commit message 里包含 [skip ci] 的不觸發 build,目前 Github Action 還是不支持的,不過畢竟是新推出來的產品,相信以后一定會越來越好噠,想嘗試的小伙伴們可以實踐一下

Reference


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM