【2021鐵人賽】CI/CD從這裡:Pipeline設定Yaml以外的Trigger方式
前一篇提到了Build pipeline的排程除了可以在Yaml內設定之外,也可以透過傳統UI的方式設定。同樣 … 閱讀全文
前一篇提到了Build pipeline的排程除了可以在Yaml內設定之外,也可以透過傳統UI的方式設定。同樣 … 閱讀全文
現在有不少的軟體會有一個特殊的版本叫Nightly,從字面上的意思就可以得知是指每個晚上發行的版本,而這個每晚發佈一個版本基本上都是靠Pipeline在晚上的時候執行build的動作,完成之後將該版發佈出來,是一個比alpha、beta這些迭代更快速的版本,如果要達成這樣的排程設計,在Azure DevOps Pipeline上要怎麼做呢?
Azure DevOps Artifacts讓我們可以擁有自己的nuget套件庫,但是如果需要讓組織外的成員能夠存取的話,是否需要額外購買Basic的授權呢?實際上只要透過Azure AD邀請對方成為來賓身份,就可以設定存取權限了唷!
這篇文章內容除了提到如何透過Extension提供的Task來讀取與寫入csproj檔案內容之外,也提到了如何讓Pipeline在不同情況變更定義的變數(Variable)值,以便讓後續的Task在不同情況使用不同的變數值。
許多功能強大的系統或軟體都會設計有能夠安裝額外的擴充套件或外掛的功能,藉此延伸軟體的功能應用層面,Azure DevOps Service/Server同樣也提供了安裝Extensions的能力,並且能夠在Marketplace上瀏覽各種Extensions。
這篇文章利用前面介紹過的建立共用的Build Pipeline內容為基底,以及前一篇文章中已經在C#專案中勾選Generate NuGet package on build屬性,編譯時會自動產生nupkg檔案,這裡再加上新的Task將nupkg檔案Push上去。
這篇文章說明了如何設定C#專案屬性讓專案在編譯的時候一併產生nupkg檔案(nuget package),接著利用dotnet cli或nuget cli來將產生出來的nupkg檔案上傳到Azure Artifact Feed,簡簡單單就可以擁有私有的nuget套件庫。
Artifacts指的是Project左邊選單中的Artifacts,和前幾篇Pipeline裡面所指的Artifacts並不相同,只是剛好英文名稱一樣而已。在Pipeline中的我把它稱為「成品庫」,在這裡所指的Artifacts我把它稱為「套件庫」。
這篇文章將建立第2個Pipeline,透過使用自訂的一個變數(Variable)設計,再調整一下部份的yaml內容,就可以讓使用者在執行Pipeline的時候自己決定要編譯(Build)哪一個C#專案,對於切分不同c#專案或是Module的情況滿好用。
這篇文章將從Starter範本修改內容,將所需要的Task一個個設定完屬性內容之後加入到yaml檔案中,透過不同的Task執行Build Console app專案、將產生的檔案壓縮成zip,然後將壓縮的zip檔案上傳到Pipeline的成品庫(Artifacts)。