精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我們一起Github Action 入門

開發 架構
Github Action,是 Github 推出的一個持續集成服務。這個持續集成,有很多操作,例如:抓取代碼、運行測試、登錄遠程服務器,發布到第三方服務等等。

[[413672]]

本文轉載自微信公眾號「老王Plus」,作者老王Plus的老王。轉載本文請聯系老王Plus公眾號。

Github Action,是 Github 推出的一個持續集成服務。

這個持續集成,有很多操作,例如:抓取代碼、運行測試、登錄遠程服務器,發布到第三方服務等等。就我自己而言,用的最多的是自動生成 Nuget 包并自動發布到 Nuget。這樣,我可以只關心代碼本身,代碼完成后,Push 到倉庫,后面就由 Action 去自動完成了。

這篇文章,我會從零開始,介紹一下 Action 的創建和使用。

一、在 Dotnet 工程中加入一個 Github Action

我們在 Github 上創建一個簡單的 Dotnet 應用??匆幌履夸浗Y構:

  1. % tree -a . 
  2. ├── .gitignore 
  3. ├── GithubActionSample.sln 
  4. ├── README.md 
  5. ├── src 
  6. │   ├── GithubActionSample.csproj 
  7. │   └── Program.cs 
  8. └── tests 

初始基本就是這么個樣子。通常我會加入幾個文件:README.md,用來寫個說明;.gitignore,這個是提交時,定義跳過某些文件的定義,比方 bin、obj 下面的文件,是不需要提交上去的;tests 目錄,里面是測試代碼。當然,這兒我就省了。

Github Action 需要放在一個固定位置 - 在 Git 倉庫的根目錄中。

我們創建一個 .github 的目錄,并在里面創建一個 workflows 的子目錄。這就是我們要創建 Action 的目錄了。注意,這個目錄名稱和結構不能改變。Github 會在這個位置查找工作流配置。

下面,我們在這個位置創建一個 Action 的定義。Action 要求是 YAML 文件。關于這個文件的格式,后面會講到。

這個目錄下,可以創建多個 YAML 文件,對應多個工作流的配置,每個工作流配置,對應不同的自動化需求。

我們先創建一個 Action,用來自動編譯代碼,文件名叫 Build.yml。完成后,看一下目錄結構:

  1. % tree -a . 
  2. ├── .github 
  3. │   └── workflows 
  4. │       └── Build.yml 
  5. ├── .gitignore 
  6. ├── GithubActionSample.sln 
  7. ├── README.md 
  8. ├── src 
  9. │   ├── GithubActionSample.csproj 
  10. │   └── Program.cs 
  11. └── tests 

這就是一個 Action 了。

下面,我們來一步步完成這個 Action 的配置。

二、完成 Action 配置

完成 Action 配置,其實就是完成上面這個 Build.yml 文件的內容。

1. 指定 Action 名稱

先說明一下,按照 Github 的說明,這個名稱不是必須的。不過通常來說,我會習慣加個名稱。根據文件名判斷作用,不是個好習慣。

格式很簡單:

  1. name: Sample build 

2. 配置觸發器

觸發器,是用來定義這個 Action 在什么情況下被運行。

通常來說,會有幾種選擇:

  • 單個事件,比方提交代碼 Push 的時候,寫法是:
  1. on: push 
  • 多個事件,比方 Push 和 Pull Request 的時候,寫法是:
  1. on: [push, pull_request] 

有時候,我們還需要增加更多的條件,比方 Push 和 Pull Request 到主分支的時候:

  1. on
  2.     push: 
  3.         branches: 
  4.             - main 
  5.     pull_request: 
  6.         branches: 
  7.             - main 

還有一個非常有用的觸發器,就是定時器。比方我們要在特定的時間,或特定的周期下運行這個 Action,就可以用定時器。

定時器的寫法是:

  1. on
  2.   schedule: 
  3.     - cron:  '5 * * * *' 

這個定時器,采用的是 Linux 下 Cron 的定時器寫法。具體的寫法和含義,可以去查一下 Cron 的規則。

除此之外,還有一些更高級的用法,例如根據一個 Action 的結果,來觸發另一個 Action 的執行。類似于這樣的,可以去 Github 的文檔中詳細了解,這里是傳送門。上面介紹的三種方式,在大多數情況下夠用了。

在我們今天的例子中,我們希望在提交后觸發編譯。所以,我們采用第一種:

  1. on
  2.     push: 
  3.         branches: 
  4.             - main 

觸發器定義完了,下面該定義做什么了。在 Action 中,稱為任務 Jobs。

3. 定義任務 Jobs

在規則中,一個觸發器,可能對應多個任務,每個任務都需要有一個ID,和一個名稱。

  1. jobs: 
  2.   first_job: 
  3.     nameFirst job 
  4.   second_job: 
  5.     nameSecond job 

上面的例子,first_job 是ID,要求是一個詞,可以使用下劃線。而下面 First job 是名稱。跟 Action 的名稱一樣,可以省略不寫。

對于一個任務,下面又需要配置運行環境和步驟。

運行環境,指得是 Action 需要運行的外部操作系統,說白了,是 Github 給提供的虛擬機。當然,我們自己建立 VM 來運行也是可以的,不過通常就使用 Github 托管的VM了。有三種選擇:Windows、Ubuntu Linux、macOS。

運行環境,用 runs-on 來標出:

  1. jobs: 
  2.   first_job: 
  3.     nameFirst job 
  4.         runs-on: windows 

步驟,是定義做這件事需要幾個步驟。每個步驟需要單獨列出。Action 執行時,會按這個步驟一行一行執行。

直接看例子:

  1. steps: 
  2. - uses: actions/checkout@v2 
  3.  
  4. name: Setup .NET SDK 
  5.     uses: actions/setup-dotnet@v1 
  6.     with
  7.         dotnet-version: 5.0.x 
  8.  
  9. name: Restore 
  10.     run: dotnet restore 
  11.  
  12. name: Build 
  13.     run: dotnet build --configuration Release --no-restore 

這是一個簡單的步驟例子。

第一步,用了 actions/checkout@v2,這是 GitHub Action 的公共操作,用來簽出代碼。

第二步,創建編譯環境。在 runs-on 給出的 VM 是空的,需要我們自己建立環境。不過不需要像重新安裝一個環境那樣做。Github 給出了固定的環境創建方法。在這里,我們使用了 actions/setup-dotnet@v1 在環境里配置 Dotnet SDK,并定義了 SDK 的版本是 5.0 。

后面兩個步驟,需要在環境中運行命令,所以使用了 run 關鍵字。這兩個步驟,其實就是我們在命令行下生成并編譯代碼的兩個命令。

最后,看一下完整的 Build.yml:

  1. name: Sample Build 
  2.  
  3. on
  4.     push: 
  5.         branches: 
  6.             - main 
  7. jobs: 
  8.     build: 
  9.  
  10.     runs-on: ubuntu-latest 
  11.  
  12.     steps: 
  13.         - uses: actions/checkout@v2 
  14.  
  15.         - name: Setup .NET SDK 
  16.         uses: actions/setup-dotnet@v1 
  17.         with
  18.             dotnet-version: 5.0.x 
  19.  
  20.         - name: Restore 
  21.             run: dotnet restore 
  22.  
  23.         - name: Build 
  24.             run: dotnet build --configuration Release --no-restore 

三、運行 Action

配置完成,下面就是運行了。

運行是在 Github 上面,當然先要提交代碼了。提交到 Github,Action 就會按照我們設定的方式運行了。

本文的代碼在:https://github.com/humornif/GithubActionSample

 

責任編輯:武曉燕 來源: 老王Plus
相關推薦

2024-05-29 12:53:30

2021-11-09 23:54:19

開發SMI Linkerd

2023-08-14 07:10:38

Docker部署項目

2022-03-08 17:52:58

TCP格式IP

2024-02-20 21:34:16

循環GolangGo

2021-08-27 07:06:10

IOJava抽象

2021-12-29 08:27:05

ByteBuffer磁盤服務器

2022-01-17 06:59:40

Grep指令linux

2022-03-31 18:59:43

數據庫InnoDBMySQL

2023-06-30 08:18:51

敏捷開發模式

2023-08-10 08:28:46

網絡編程通信

2021-08-27 07:06:09

DubboDocker技術

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數據安全API

2021-01-12 05:08:49

DHCP協議模型

2022-10-18 07:33:57

Maven構建工具

2023-09-10 21:42:31

2017-01-22 15:09:08

架構閉環演進

2021-05-19 10:37:16

WebFlux 前置工具
點贊
收藏

51CTO技術棧公眾號

亚洲精品av在线播放| 久久中文字幕电影| 欧美激情视频网| 男人的天堂影院| 免费观看欧美大片| 亚洲日本一区二区| 精品麻豆av| 精品国产www| 欧美日韩一卡| 在线播放精品一区二区三区| 污污的视频免费观看| 成人免费一区二区三区牛牛| 久久精品欧美一区二区三区麻豆 | 国产免费xxx| 四虎影院在线域名免费观看| 男女激情视频一区| 国语自产在线不卡| 国精产品视频一二二区| 久久精品色综合| 91精品黄色片免费大全| 337p粉嫩大胆噜噜噜鲁| 国产精品剧情| 欧美激情在线一区二区| 国产精品我不卡| 在线观看中文字幕码| 国产视频久久| 国产做受高潮69| 少妇被躁爽到高潮无码文| 久久99免费视频| 亚洲精品按摩视频| www激情五月| 素人啪啪色综合| 狠狠躁夜夜躁久久躁别揉| 日韩国产精品毛片| xxxxx日韩| 91欧美激情一区二区三区成人| 91成人免费看| 国产精品久久久久久在线| 石原莉奈一区二区三区在线观看| 97超视频免费观看| 青青草原免费观看| 中文字幕一区二区三区在线视频| 最近2019中文字幕一页二页| aa一级黄色片| 亚洲春色h网| 日韩电影中文字幕在线观看| 又色又爽又黄18网站| 精品三级国产| 日韩一区二区精品葵司在线| 九九热精品在线播放| 日韩免费电影| 欧美亚洲综合久久| 久久久精品麻豆| 国产91欧美| 欧美色网站导航| 久久婷五月综合| 欧美视频免费看| 欧美日韩亚洲国产综合| 欧美在线aaa| 色婷婷.com| 日本中文字幕在线观看视频| 国产欧美另类| 欧美孕妇性xx| 一级特黄免费视频| 免费观看在线综合色| 国产在线观看精品一区二区三区| 国产又黄又爽视频| 国产一区二区福利视频| 福利视频久久| 性猛交xxxx| 国产日韩影视精品| 一区不卡字幕| 超碰porn在线| 亚洲国产成人tv| 无码人妻h动漫| 岛国精品在线| 日韩无一区二区| 国产亚洲色婷婷久久99精品91| abab456成人免费网址| 欧美精品久久久久久久久老牛影院| 成人亚洲免费视频| 成人av综合网| 亚洲偷欧美偷国内偷| 精品亚洲乱码一区二区 | 91欧美一区二区| 视频一区二区三区在线观看| 成人在线免费看黄| 欧美日韩视频免费播放| 黄色在线视频网| 在线精品国产亚洲| 亚洲视频777| 极品颜值美女露脸啪啪| 国产精品乱看| 91在线观看免费| 五月天婷婷在线观看| 国产精品蜜臀av| 欧洲精品一区二区三区久久| jizzyou欧美16| 精品国产凹凸成av人导航| 欧美 日韩 国产 成人 在线观看| 亚洲精品国产首次亮相| 青草成人免费视频| www.日本在线观看| 国产女主播视频一区二区| 国产精品日韩三级| 日韩三区在线| 亚洲精品在线观看视频| 人妻互换一区二区激情偷拍| 激情久久五月| 国产欧美中文字幕| 免费a在线观看| 亚洲一区影音先锋| 玖玖爱视频在线| 日韩三级av| 欧美美最猛性xxxxxx| 青青国产在线视频| av毛片久久久久**hd| 中文字幕乱码免费| 久久xxx视频| 亚洲欧美另类国产| 国产成人啪精品午夜在线观看| 久久国产成人午夜av影院| 免费观看国产成人| 草草视频在线观看| 日韩三级在线观看| 天天看天天摸天天操| 美女视频一区在线观看| 久久综合给合久久狠狠色| v片在线观看| 6080国产精品一区二区| 免费看91的网站| 亚洲影音先锋| 精品久久久久亚洲| 国产盗摄一区二区| 欧美不卡一区二区三区| 国产高清视频免费在线观看| 日韩二区三区在线观看| 蜜桃网站成人| 欧美日韩视频免费观看| 亚洲色图第一页| 亚洲乱码国产乱码精品| 久久久一区二区三区捆绑**| 亚洲 欧美 日韩 国产综合 在线| baoyu135国产精品免费| 欧美日韩国产成人高清视频| 国产熟女一区二区丰满| 亚洲靠逼com| 国产人妖在线观看| 99精品国产99久久久久久福利| 国产乱码精品一区二区三区卡| 欧美精品videossex少妇| 欧美一区二区三区四区在线观看| 一区视频免费观看| 国产大陆精品国产| 国产在线播放观看| 精品一区二区男人吃奶| 欧美怡春院一区二区三区| 欧洲视频在线免费观看| 在线精品亚洲一区二区不卡| 国产视频不卡在线| 国产在线精品一区二区夜色| 精品国产一区二区三区在线| 一区二区三区自拍视频| 91精品国产91| 国产精品二线| 欧美丰满嫩嫩电影| 久久艹精品视频| 99久久国产综合精品色伊| 黄色a级片免费| 全球成人免费直播| av观看久久| 国产精品迅雷| www.欧美精品一二三区| www.成人免费视频| 欧美日韩性生活视频| 国产伦理片在线观看| 国内成人自拍视频| 九色自拍视频在线观看| 九九热线有精品视频99| 国产一区二区丝袜高跟鞋图片| 午夜成年人在线免费视频| 亚洲国产99精品国自产| 一二三区免费视频| 国产亚洲字幕| 国产精品婷婷午夜在线观看| 午夜免费看视频| 国产一区二区三区四区老人| 免费亚洲一区二区| 综合久久av| 欧美亚洲视频一区二区| 欧美日韩视频在线播放| 亚洲高清久久网| 中文天堂在线资源| 亚洲福利视频三区| jizzjizz日本少妇| av一区二区三区四区| 日本在线观看免费视频| 亚洲性图久久| 亚洲视频欧美在线| 欧美在线关看| 91色视频在线观看| 成人视屏在线观看| 久久久久久成人| 日本电影在线观看网站| 亚洲国产成人av在线| 91成品人影院| 欧美日韩一区免费| 校园春色 亚洲| 国产精品无码永久免费888| 中文字幕乱视频| 狠狠色综合播放一区二区| 91黄色小网站| 99精品视频免费全部在线| 亚洲区成人777777精品| 色天天久久综合婷婷女18| 九九九九精品九九九九| 精品视频一二| 91精品国产综合久久男男| 澳门成人av网| 6080yy精品一区二区三区| av观看在线| 色诱女教师一区二区三区| 天堂а在线中文在线无限看推荐| 日韩欧美国产午夜精品| 国产一区二区三区四区视频 | 大肉大捧一进一出好爽视频| 一区二区三区网站| 亚洲一区bb| 成人久久综合| 日本精品二区| 伊人久久大香线蕉av不卡| 国产精品视频免费观看| 精品一区二区三区中文字幕| 国产日韩在线观看av| 欧美日韩精品免费观看视欧美高清免费大片| 久久久亚洲福利精品午夜| aaa大片在线观看| 久久激情视频久久| 永久av在线| 日韩中文字幕免费视频| 国产1区2区3区在线| 亚洲欧美激情在线视频| 黄色网址在线播放| 国产小视频国产精品| 欧美日韩伦理片| 亚洲美女在线看| 男男电影完整版在线观看| 亚洲欧美国产一区二区三区 | 久久久国产精华| 91国模少妇一区二区三区| 91在线观看高清| 黑人巨大精品欧美| 国产欧美日韩麻豆91| 熟女少妇内射日韩亚洲| 国产精品电影一区二区三区| 激情高潮到大叫狂喷水| 亚洲欧洲日产国产综合网| 日本高清一二三区| 一区二区三区小说| 国产黄色片视频| 懂色av影视一区二区三区| aaaaaa毛片| 欧美日产国产精品| 国产高清不卡视频| 亚洲成人久久网| 男人av在线| 日韩中文字幕av| 色呦呦在线资源| 538国产精品视频一区二区| 久久人体大尺度| 国产精品综合网站| 三级欧美日韩| 久久亚洲国产精品日日av夜夜| 国产一区二区三区四区二区| 特级毛片在线免费观看| 亚洲网站视频| 欧美日韩亚洲一二三| 精品在线你懂的| 欧类av怡春院| 国产精品色噜噜| 久久婷婷国产麻豆91| 日本高清成人免费播放| 国产婷婷一区二区三区久久| 亚洲第一免费网站| 色网站免费在线观看| 欧美极品少妇与黑人| avav成人| 国产麻豆一区二区三区在线观看| 精品国产午夜| 51xx午夜影福利| 水野朝阳av一区二区三区| 午夜激情视频网| 91毛片在线观看| 欧美a级片免费看| 亚洲国产精品人人做人人爽| 国产成人麻豆免费观看| 欧美大片日本大片免费观看| 国模吧精品人体gogo| 欧美激情视频一区二区| 国产成人毛片| 久久久com| 欧美xxx在线观看| 美女喷白浆视频| 成人免费三级在线| 国产精品99久久久久久成人| 一本色道久久综合精品竹菊| 99热这里只有精品1| 国产一区二区三区丝袜| 国产免费拔擦拔擦8x高清在线人| 国产日韩中文字幕| 国产成人影院| 玩弄中年熟妇正在播放| 国产成人8x视频一区二区| 青青青手机在线视频| 在线观看日韩毛片| 香蕉久久一区二区三区| 欧美大尺度激情区在线播放| 成人在线高清| 无遮挡亚洲一区| 蜜乳av另类精品一区二区| 亚洲色偷偷色噜噜狠狠99网| 成人免费一区二区三区视频 | 麻豆成人在线视频| 欧美日韩不卡视频| 北岛玲日韩精品一区二区三区| 69久久夜色精品国产69乱青草| 日韩中文在线| 欧美人与动牲交xxxxbbbb| 九一九一国产精品| 亚洲欧美另类日本| 欧美无砖专区一中文字| 九色在线播放| 日韩美女毛茸茸| 午夜精品影视国产一区在线麻豆| 天堂8在线天堂资源bt| 国产精品一色哟哟哟| 99成人在线观看| 欧美精选午夜久久久乱码6080| av电影在线观看一区二区三区| 欧洲精品毛片网站| 国产精品一区二区av日韩在线| 国模吧无码一区二区三区| 91影院在线观看| 国产精品男女视频| 亚洲欧洲日产国码av系列天堂| 在线天堂资源| 三区精品视频| 看电视剧不卡顿的网站| 最新日韩免费视频| 777精品伊人久久久久大香线蕉| 老司机av在线免费看| 亚洲自拍偷拍视频| 国内在线观看一区二区三区| 日本美女视频网站| 精品美女永久免费视频| 欧美精品少妇| 国产日韩欧美综合| 欧美精品自拍| 玖草视频在线观看| 91成人免费在线| 欧美r级在线| 成人三级在线| 亚洲欧美日韩在线观看a三区| 精品无码国产污污污免费网站 | 国产福利精品在线| 日韩国产一区| 中文字幕 欧美 日韩| 亚洲v精品v日韩v欧美v专区| 日本成人一区二区三区| 国产精品久久久一区| 最新精品国产| 内射中出日韩无国产剧情| 在线观看亚洲a| 4438x成人网全国最大| 激情小说综合网| 日本欧美加勒比视频| a在线视频播放观看免费观看| 精品88久久久久88久久久| 精品91久久| 国产在线观看欧美| www国产成人| 国产精品一区二区av白丝下载| 久久久久亚洲精品国产| 黑人操亚洲人| 性高潮久久久久久| 欧美午夜一区二区| 蜜臀av在线| 亚洲精蜜桃久在线| 成人性色生活片| 中文字幕在线播放不卡| 久久青草精品视频免费观看| 精品理论电影在线| 永久免费未满蜜桃| 欧美日韩国产综合一区二区三区| 蜜臀av在线| 欧美一级免费在线观看| 久久综合成人精品亚洲另类欧美 | 欧美老妇交乱视频| 国产欧美一区二区精品久久久| 日韩精品xxx|