Github Actions全方位演示

2019/8 ——推出的新功能。

可以完全替代掉好基友Travis CI來完成github項目的CI/CD操作了。


1.新建一個項目

 

2.Actions基礎介紹:

 

這裏給了一些推薦的流程,比如Nodejs等。

這裏還是使用自定義流程:

這裏什麼都不修改,直接點擊提交代碼:

Actions已經正在運行了:

然後回過頭再看看這個CI執行了什麼東西:

1. 先給這個流程命名爲CI:

2.on:決定它什麼時候觸發:

3. 然後是觸發的是具體的jobs:

jobs可以寫多項,這裏只寫了一項build.

runs-on表示在什麼系統下運行的,這裏指定的是ubuntu,github給我們提供了默認的幾個。

然後steps指定具體的步驟,每個 - 代表一步:

第一步是checkout把代碼下載下來,第二步是運行一行簡單的shell腳本,第3步是運行多行shell腳本。


 3. Actions的各種用法:

 

這裏是actions的語法文檔:

文檔:傳送門

(這一列很有意思)

通過actions的文檔可以大體看出主要分爲3類:

  1. name: 命令actions爲什麼名字
  2. on: 什麼時機下觸發我們的任務
  3. jobs: 具體觸發的任務

來看看actions的各種用法:

主分支的src下發生了改動提交了代碼就觸發當前流程。

schedule: 和提交代碼相互獨立,寫schedule就不能寫push,原因是schedule是指定了固定時間去觸發。(cron可以看我的cron博客)

jobs:

name: 可以給任務一個名字:

need: 指當前job執行之前需要等待指定的job執行完成

runs-on: 當前運行的流程在什麼系統下去運行

 

steps: 指定運行什麼步驟:

一般拉取代碼需要這樣:

當然太繁瑣了,所以github提供了類似這樣的:

這個是怎麼做到的?

不得不提uses參數:

官網講的很清楚了,uses參數可以接多種類型,最常用的類型是接另一個代碼倉庫。

比如

意思就是github上有個用戶叫actions(github actions官方賬號),有個倉庫就叫checkout,倉庫裏寫好了一些流程把代碼下載下來等,這裏我們可以直接複用它的流程。

默認的機器是沒有node和java這樣的環境,github給我們提供了這些語言的默認流程:

這裏有各種語言的,比如docker:

語言環境actions yml參考:

https://github.com/actions/starter-workflows/tree/master/ci

就可以參考這個怎麼寫的:

 來看看nodejs它怎麼寫的:

運行了uses: actions/setup-node來設置當前使用nodejs這個庫來運行。

 

timout-minutes: 指定超時時間

 

strategy: 指定策略

如上面nodejs的多策略的寫法。

uses的工作原理:

 

具體的用法:

 定義了輸入和參數、描述。

可以發現並沒有下載和安裝nodejs的步驟。那怎麼做到讓當前環境使用nodejs呢?

其實在ubuntu-latest下已經安裝了各種語言的環境,可以自己嘗試一下打印一下語言的version就知道了。

甚至機器下的每種語言的多版本都安裝了,可以通過with -- version來指定具體的版本,不指定就使用默認版本。

其實uses不僅僅限定於引用其他倉庫的描述文件,還可以引用當前倉庫的action文件和其他倉庫的action文件可以接commit標號和release版本或者branch分支的版本。甚至還可以引用docker,但是引用鏡像只是運行了docker run,並不是說run 指令在具體的容器中運行,這裏不是在容器中運行,而是在分配的機器中運行。那麼怎麼在容器中運行呢?

下面的container指令就是答案:

關於docker的高級用法:

比如:

所以在container下使用docker纔是正確用法而不是在uses下。

 

最後再來看services:

 它就是運性一個job的service,下面可以運行鏡像。

 

具體用法就自己查閱吧,其實官方文檔纔是最權威的,而且示例給的很清楚,就不再廢話了。

- run: | 
    xxxxx
    xxx

不加豎線,只能寫一行腳本.加了就可以寫多行

如果執行的流程中設計到密碼等比較敏感的信息可以添加secrets:

 

 

 然後查看日誌,看到是***,具體的是沒有顯示的,這時因爲開源項目的actions日誌是可以被別人看到的,但實際上變量實際上已經寫進去了是可用的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章