帶你深入瞭解 GitLab CI/CD 原理及流程

GitLab CI/CD 是一個內置在GitLab中的工具,用於通過持續方法進行軟件開發:

  • Continuous Integration (CI) 持續集成
  • Continuous Delivery (CD) 持續交付
  • Continuous Deployment (CD) 持續部署

持續集成的工作原理是將小的代碼塊推送到Git倉庫中托管的應用程序代碼庫中,並且每次推送時,都要運行一系列腳本來構建、測試和驗證代碼更改,然後再將其合並到主分支中。

持續交付和部署相當於更進一步的CI,可以在每次推送到倉庫默認分支的同時將應用程序部署到生產環境。

這些方法使得可以在開發周期的早期發現bugs和errors,從而確保部署到生產環境的所有代碼都符合為應用程序建立的代碼標準。

GitLab CI/CD 由一個名為 .gitlab-ci.yml 的文件進行配置,改文件位於倉庫的根目錄下。文件中指定的腳本由GitLab Runner執行。

1. GitLab CI/CD 介紹

軟件開發的持續方法基於自動執行腳本,以最大程度地減少在開發應用程序時引入錯誤的機會。從開發新代碼到部署新代碼,他們幾乎不需要人工幹預,甚至根本不需要幹預。

它涉及到在每次小的迭代中就不斷地構建、測試和部署代碼更改,從而減少瞭基於已經存在bug或失敗的先前版本開發新代碼的機會。

Continuous Integration(持續集成)

假設一個應用程序,其代碼存儲在GitLab的Git倉庫中。開發人員每天都要多次推送代碼更改。對於每次向倉庫的推送,你都可以創建一組腳本來自動構建和測試你的應用程序,從而減少瞭向應用程序引入錯誤的機會。這種做法稱為持續集成,對於提交給應用程序(甚至是開發分支)的每項更改,它都會自動連續進行構建和測試,以確保所引入的更改通過你為應用程序建立的所有測試,準則和代碼合規性標準。

Continuous Delivery(持續交付)

持續交付是超越持續集成的更進一步的操作。應用程序不僅會在推送到代碼庫的每次代碼更改時進行構建和測試,而且,盡管部署是手動觸發的,但作為一個附加步驟,它也可以連續部署。此方法可確保自動檢查代碼,但需要人工幹預才能從策略上手動觸發以必輸此次變更。

Continuous Deployment(持續部署)

與持續交付類似,但不同之處在於,你無需將其手動部署,而是將其設置為自動部署。完全不需要人工幹預即可部署你的應用程序。

1.1. GitLab CI/CD 是如何工作的

為瞭使用GitLab CI/CD,你需要一個托管在GitLab上的應用程序代碼庫,並且在根目錄中的.gitlab-ci.yml文件中指定構建、測試和部署的腳本。

在這個文件中,你可以定義要運行的腳本,定義包含的依賴項,選擇要按順序運行的命令和要並行運行的命令,定義要在何處部署應用程序,以及指定是否 要自動運行腳本或手動觸發腳本。

為瞭可視化處理過程,假設添加到配置文件中的所有腳本與在計算機的終端上運行的命令相同。

一旦你已經添加瞭.gitlab-ci.yml到倉庫中,GitLab將檢測到該文件,並使用名為GitLab Runner的工具運行你的腳本。該工具的操作與終端類似。

這些腳本被分組到jobs,它們共同組成一個pipeline。一個最簡單的.gitlab-ci.yml文件可能是這樣的:

before_script:
- apt-get install rubygems ruby-dev -y
run-test:
script:
- ruby --version 6

发表回复

相关推荐

半導體物理——波矢與能帶

一、波矢在學習半導體物理和固體物理的過程中,我始終在疑惑一個問題,在這兩個科目中頻繁出現的波矢空間到底是什麼,當時老...

· 18分钟前

【筆記】托馬斯·阿奎那

*歡迎指出錯誤!(1)法律和正義托馬斯在信仰與理性的關系方面以及法律方面有一些獨特的觀點。1.共相問題共相問題的本質是信...

· 19分钟前

慧為智能:智能終端ODM制造商,佈局5G、AI等領域順應行業趨勢

(報告出品方/作者:開源證券,諸海濱,趙昊)1、公司情況:深耕智能終端產品,2021年營收上漲39%1.1、發展歷程:成立於2011...

· 48分钟前

刚刚拿到人力资源管理师证书,个人真实备考经历分享(踩雷避坑指南,3000字经验分享建议收藏!)

大家在考取各类证书之前是否都会先了解相关信息呢?报考条件、报名时间等等

· 49分钟前

最近相位分析:冥王刑火星——隐秘角落里的暗流

溪云初起日沉阁 山雨欲来风满楼 本月初火星已经和冥王星逐渐运行到90°,一个相刑的位置。并且这个相位要持续到10月底。火 ...

· 52分钟前

Copyright 2015-2025 www.icpchaxun.com ©All Rights Reserved.