CI/CD Pipeline

更新 發佈閱讀 4 分鐘

CI/CD Pipeline 是一連串自動化步驟,可以測試軟體,部屬應用程式。但實際上到底要做什麼事情呢?可以從 GitLab 的 Auto DevOps 了解。

Auto Dependency Scanning

掃描第三方函式庫的安全性漏洞。參考下圖:

raw-image

如果是 .NET 6 可以用以下指令掃描:

dotnet list package --vulnerable

參考如下:

https://devblogs.microsoft.com/nuget/how-to-scan-nuget-packages-for-security-vulnerabilities/
raw-image

測試功能性

執行 Unit Test、Integration Test,確保這次程式碼的調整,沒有改壞現有功能。

Auto Code Quality

https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html

https://gitlab.com/gitlab-org/ci-cd/codequality

Auto Code Quality 是靜態程式碼分析,也會將報告附在 Merge Request、Pipeline 上。GitLab 是使用 Code Climate 做程式碼分析,但已經包成 codequality 這個 Docker Image。

除了 Code Climate,還有 SonarQube 之類的軟體可以使用。

Auto Container Scanning

https://docs.gitlab.com/ee/user/application_security/container_scanning/

掃描 Docker Image 的漏洞,因為 Docker Image 上可能有安裝不少的軟體,這些軟體可能 6 個月後發現安全性上的問題。掃描出問題後,可以盡快的更新相關軟體,避免安全性上的問題。

Auto Review Apps

https://docs.gitlab.com/ee/ci/review_apps/

Review App 可以讓我們看 feature branch 的功能。當審核通過後,才合併到 Dev branch。

Auto Deploy

https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-deploy

自動部屬到 Kubernetes 上,是採用 Push Model,也就是 CI/CD Pipeline 主動更新 Kubernetes。

Auto Static Application Security Testing (SAST)

https://docs.gitlab.com/ee/user/application_security/sast/

靜態程式碼分析,專門掃描安全性的問題。

Auto Dynamic Application Security Testing (DAST)

https://docs.gitlab.com/ee/user/application_security/dast/

對運行中的程式執行安全性測試。

Auto Secret Detection

https://docs.gitlab.com/ee/user/application_security/secret_detection/

https://github.com/zricethezav/gitleaks

gitleaks detect -v

掃描程式碼,看有沒有密碼、API token 等等的敏感資訊。

留言
avatar-img
留言分享你的想法!
avatar-img
C# 工匠的 DevOps 旅程
5會員
12內容數
專注於 C#, DevOps 的工程師
2024/09/23
本文探討 C# 非同步程式設計時應注意的幾個要點,包括全面採用非同步模式、避免混用同步與非同步程式碼、勿使用async void、以及正確使用CancellationToken等。這些建議不僅有助於提升程式的效能,也可以減少Deadlock等問題,讓開發者更有效地處理異常情況,確保應用程式的穩定性.
Thumbnail
2024/09/23
本文探討 C# 非同步程式設計時應注意的幾個要點,包括全面採用非同步模式、避免混用同步與非同步程式碼、勿使用async void、以及正確使用CancellationToken等。這些建議不僅有助於提升程式的效能,也可以減少Deadlock等問題,讓開發者更有效地處理異常情況,確保應用程式的穩定性.
Thumbnail
2024/06/24
Code Coverage 是什麼? 程式碼覆蓋率(Code Coverage)是一種軟體測試指標,用百分比表示,數值越高越好。
Thumbnail
2024/06/24
Code Coverage 是什麼? 程式碼覆蓋率(Code Coverage)是一種軟體測試指標,用百分比表示,數值越高越好。
Thumbnail
2024/04/08
本文介紹瞭如何在C#專案中建立和使用packages.lock.json檔案,以確保每次執行dotnet restore時都可以獲得相同的packages集合。我們還討論了dotnet restore抓取不同packages的原因,並提供了相關的解決方案。
Thumbnail
2024/04/08
本文介紹瞭如何在C#專案中建立和使用packages.lock.json檔案,以確保每次執行dotnet restore時都可以獲得相同的packages集合。我們還討論了dotnet restore抓取不同packages的原因,並提供了相關的解決方案。
Thumbnail
看更多
你可能也想看
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
Semgrep 是一個功能強大的 SAST 工具,可以幫助開發人員早期發現程式碼中的安全問題,本文介紹如何將 Semgrep 整合到 GitLab Pipeline 以進行 SAST 掃描。
Thumbnail
Semgrep 是一個功能強大的 SAST 工具,可以幫助開發人員早期發現程式碼中的安全問題,本文介紹如何將 Semgrep 整合到 GitLab Pipeline 以進行 SAST 掃描。
Thumbnail
前言 大家好上次講到在使用 Gitlab CI/CD 自動化佈署前,使用 Docker Compose 撰寫佈署計畫書,今天我們要將目標轉移到 Gitlab 我們要撰寫自動化上線佈署計畫書,我們之後還會講一套更完整的佈署流程,今天只是讓各位體驗,自動化佈署上線的快感 調整 CI/CD 變數 首
Thumbnail
前言 大家好上次講到在使用 Gitlab CI/CD 自動化佈署前,使用 Docker Compose 撰寫佈署計畫書,今天我們要將目標轉移到 Gitlab 我們要撰寫自動化上線佈署計畫書,我們之後還會講一套更完整的佈署流程,今天只是讓各位體驗,自動化佈署上線的快感 調整 CI/CD 變數 首
Thumbnail
歡迎來到 【👌 程式碼質量案例】 系列, 這邊我們將分享實際開發過程中會遇到的程式碼難以維護的案例及解決方法, 期望透過這些技巧讓我們的產品更加的穩健也更容易於維護。 P.S 本篇會以Python程式語言進行示範, 其他語言的處理方式也雷同, 包括Javascript、Golang…等。 📖
Thumbnail
歡迎來到 【👌 程式碼質量案例】 系列, 這邊我們將分享實際開發過程中會遇到的程式碼難以維護的案例及解決方法, 期望透過這些技巧讓我們的產品更加的穩健也更容易於維護。 P.S 本篇會以Python程式語言進行示範, 其他語言的處理方式也雷同, 包括Javascript、Golang…等。 📖
Thumbnail
上次我們講完了 only 操作方式,接下來我們要來講解 needs 操作方式,讓我們的 CI/CD 更加仔細,更加完整。 needs 作用 needs 可以在我們整個 CI/CD 流程,去定義在哪個工作之前做完,才會去做下一個工作,假設今天有三個工作,分別叫 "test-build"、"buil
Thumbnail
上次我們講完了 only 操作方式,接下來我們要來講解 needs 操作方式,讓我們的 CI/CD 更加仔細,更加完整。 needs 作用 needs 可以在我們整個 CI/CD 流程,去定義在哪個工作之前做完,才會去做下一個工作,假設今天有三個工作,分別叫 "test-build"、"buil
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 我們開發程式的時候, 常常會使用Git來管理我們的
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 我們開發程式的時候, 常常會使用Git來管理我們的
Thumbnail
本篇使用最簡單的GitLab-ci.yml內容,進而實現了CI的功能,操作方式文章所示。
Thumbnail
本篇使用最簡單的GitLab-ci.yml內容,進而實現了CI的功能,操作方式文章所示。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News