在查閱GitLab官網(wǎng)的CI/CD功能說(shuō)明時(shí),全是英文看起來(lái)不方便,通過(guò)翻譯軟件自動(dòng)翻譯后“內(nèi)容失真”,看起來(lái)很變扭。查閱了百度上的資料發(fā)現(xiàn)很多翻譯很老舊,有些甚至是掛羊頭賣(mài)狗肉。痛定思痛,決定自己翻譯分享出來(lái)。
下面是第一篇翻譯,如有不對(duì)的地方請(qǐng)指正。
翻譯源文件:
https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html
正文:
在使用GitLab CI / CD之前,您需要先具備下面2個(gè)條件:
一個(gè)托管在Git存儲(chǔ)庫(kù)中的應(yīng)用程序代碼庫(kù);
在該倉(cāng)庫(kù)根目錄下創(chuàng)建一個(gè)叫.gitlab-ci.yml的CI/CD的配置文件。
在.gitlab-ci.yml
文件中,可以做下面定義:
需要運(yùn)行的腳本;
需要引用的其他配置文件和模板;
依賴關(guān)系和緩存;
串行與并行的運(yùn)行命令;
程序可以部署到哪個(gè)環(huán)境;
關(guān)鍵環(huán)節(jié)是依然自動(dòng)化運(yùn)行還是需要手動(dòng)觸發(fā)繼續(xù)運(yùn)行。
script要被劃分在相應(yīng)的job中,各個(gè)job組成了一個(gè)很大的pipeline。你可以將多個(gè)獨(dú)立的job組織在一個(gè)按定義順序運(yùn)行的stages中。
你應(yīng)該合理的組織job順序,該順序應(yīng)該與你實(shí)際的測(cè)試流程一致。為了可視化該過(guò)程,假設(shè)添加到作業(yè)中的腳本與你在電腦上運(yùn)行的CLI命令相同。
當(dāng).gitlab-ci.yml
文件添加到倉(cāng)庫(kù)根目錄里時(shí),GitLab會(huì)自動(dòng)檢測(cè)到它,然后GitLab Runner程序會(huì)自動(dòng)運(yùn)行.gitlab-ci.yml中定義的每個(gè)job。
示例:一個(gè).gitlab-ci.yml
文件可能包含下面內(nèi)容:
stages: - build - testbuild-code-job: stage: build script: - echo "Check the ruby version, then build some Ruby project files:"- ruby -v - raketest-code-job1: stage: test script: - echo "If the files are built successfully, test some files with one command:"- rake test1test-code-job2: stage: test script: - echo "If the files are built successfully, test other files with a different command:"- rake test2
上面例子中,定義在stages中的build stage會(huì)先運(yùn)行,本例中的build stage只有1個(gè):build-code-job,該job的script塊中定義了3個(gè)腳本:首先打印一些構(gòu)建提示信息,然后輸出Ruby版本,最后運(yùn)行rake命令
構(gòu)建項(xiàng)目文件。如果build-code-job成功運(yùn)行了,則會(huì)同時(shí)運(yùn)行stages中的所有test stage,本例中的test stage有2個(gè),job名稱分別叫test-code-job1、test-code-job2。
該示例中的完整pipeline由3個(gè)job組成,分為兩個(gè)stages:build
和test
。代碼倉(cāng)庫(kù)里的任何分支下的任何文件的修改都會(huì)觸發(fā)pipeline的自動(dòng)運(yùn)行。
GitLab CI / CD不僅可以執(zhí)行作業(yè),還會(huì)向你顯示執(zhí)行期間發(fā)生的情況,類似下面的截圖:
你可以為代碼程序創(chuàng)建構(gòu)建策略,GitLab會(huì)根據(jù)你定義的內(nèi)容運(yùn)行pipeline。你的pipeline狀態(tài)也會(huì)通過(guò)GitLab展示:
如果有任何問(wèn)題,可以 回滾更改:
聯(lián)系客服