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 ...
一周排行
  • 背景 習慣使用markdown的人應該都知道Typora這個神器,它非常簡潔高效。雖然博客園的線上markdown編輯器也不錯,但畢竟是網頁版,每次寫東西需要登錄系統-進後臺-找到文章-編輯-保存草稿。。。非常難受。。。 但是使用Typora來寫的話,文章圖片又是個問題,本地寫完粘貼到網站上,圖片全 ...
  • 案例:修改預設線程個數 1.NameValueCollection System.Collections.Specialized.NameValueCollection collection = new System.Collections.Specialized.NameValueCollecti ...
  • // from https://stackoverflow.com/questions/35381238/how-to-use-custom-fonts-in-emgucv string text = "塗聚文(Geovin Du)"; // 下麵定義一個矩形區域 int rectWidth = t ...
  • 場景 ASP.NET中新建Web網站並部署到IIS上(詳細圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199747 前面講過將ASP.NET的項目部署到本機的IIS上。 但是如果將其部署到伺服器上Window ...
  • 在不同的區域中使用Convert.ToDouble可能會產生問題。 string str = "20.0"; double val = Convert.ToDouble(str); 比如在某些區域語言中得到的結果是200,如: Thread.CurrentThread.CurrentCulture ...
  • 1、前言 ​ 不知道你是否對.NET裡面的定時器產生過一些疑問,以下是武小棧個人的一些總結。 2、官方介紹 在.NET的框架之內定時器有四種,先看一下微軟官方對他們各自特點介紹: System.Timers.Timer,它將觸發事件,並定期在一個或多個事件接收器中執行代碼。 類旨在用作多線程環境中基 ...
  • 筆試考試系統需求分析 1. 引言 1.1編寫目的 項目需求分析目的是使用戶和軟體開發者雙方對項目開發目標有一個共同的理解,便於對軟體開發各個過程的控制與管理,通過對項目開發目標的描述,使開發人員能夠正確理解用戶需求,明確該系統應具有的功能。性能與界面要求。 需求分析作為項目開放的基礎和依據,其預期讀 ...
  • 使用Topshelf部署.net core windows服務 首先新建一個.net core的模板worker程式 過程 略 打開Program.cs namespace TopshelfDemo { public class Program { public static void Main(s ...
  • xaml裡面使用很簡單 xmlns:i="http://schemas.microsoft.com/xaml/behaviors" <i:Interaction.Behaviors> <i:MouseDragElementBehavior/> </i:Interaction.Behaviors> 後 ...
  • Application Insignhts是微軟開發的一套監控程式。他可以對線上的應用程式進行全方位的監控,比如監控每秒的請求數,失敗的請求,追蹤異常,對每個請求進行監控,從http的耗時,到SQL查詢的耗時,完完整整的被記錄下來。當對程式進行優化跟排錯時非常好使。它原來是visualstudio ...