Github原生CI/CD,初嘗Github Actions

来源:https://www.cnblogs.com/weihanli/archive/2019/12/04/11980499.html

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/[email protected] # checkout
    - name: Setup .NET Core # 設置 dotnet core 環境
      uses: actions/[email protected]
      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


您的分享是我們最大的動力!

更多相關文章
  • PyCharm 是一種 Python IDE,可以幫助程式員節約時間,提高生產效率。那麼具體如何使用呢?本文從 PyCharm 安裝到插件、外部工具、專業版功能等進行了一一介紹,希望能夠幫助到大家。 機器之心之前也沒系統地介紹過 PyCharm,怎樣配置環境、怎樣 DeBug、怎樣同步 GitHub ...
  • 前言本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:醍醐三葉 關於python的存儲問題, (1)由於python中萬物皆對象,所以python的存儲問題是對象的存儲問題,並且對於每個對象,python會分配一塊記憶體空間去 ...
  • [TOC] forms組件 先拋出一個需求: 手動書寫需求 views.py 這裡實現了三個功能: 手寫html頁面獲取用戶輸入信息 將數據傳入後端做數據校驗 如果有錯誤,展示錯誤信息 但是這個頁面手寫麻煩,輸入信息寫錯了,一刷新信息全沒了,很不友好!! 使用forms組件校驗數據 使用forms組 ...
  • 前言 在日常的工作與學習中,我們經常會使用思維導圖這個工具,來把抽象而又無形的思考轉換成有形並且具體的圖像,是理清思路,梳理邏輯的一大神器。 準確的說,思維導圖並不是一個具體的工具,而是一種方法。是道而不是術。實際落地時,我們通常還需要藉助外部的工具。從最原始的紙和筆,到各種軟體,可以說是應用盡有。 ...
  • 從上面代碼中可以看出,函數的列印的是同一個列表對象numbers,因為他們的id值是一樣的,只不過是列表中的元素在變化。為什麼會這樣呢? 這要從函數的特性說起,在 Python 中,函數是第一類對象(function is the first class object),換而言之,函數也是對象,跟整 ...
  • 增量賦值運算符 += 和 = 的表現取決於它們的第一個操作對象 += 操作首先會嘗試調用對象的 __ iadd__方法,如果沒有該方法,那麼嘗試調用__add__方法,所以+= 與 + 的區別實質是__iadd__ 與 __add__的區別,同理, = 操作首先會嘗試調用對象的__imul__方法, ...
  • 本篇文章涉及到使用ILDasm和ILasm進行反編譯和編譯。 ...
  • 國內優秀的WPF開源控制項庫,Panuon.UI的優化版本。一個漂亮的、使用樣式與附加屬性的WPF UI控制項庫,值得向大家推薦使用與學習。 今天站長(Dotnet9,站長網址:https://dotnet9.com)推薦另一款開源的WPF控制項庫(PanuonUI.Silver,github鏈接: ht ...
一周排行
x