Travis CI 配置文件 .travis.yml 的语法介绍和一些用法举例
在 Github 項(xiàng)目文件夾下面添加 .travis.yml 文件。
為了運(yùn)行構(gòu)建,Travis CI 的系統(tǒng)將觸發(fā)構(gòu)建的存儲(chǔ)庫克隆到構(gòu)建環(huán)境。 構(gòu)建環(huán)境是一個(gè)隔離的虛擬機(jī)或 LXD 容器,一旦構(gòu)建完成就會(huì)終止。 克隆僅在構(gòu)建請求之后發(fā)生,因此僅適用于在 GitHub 設(shè)置中明確啟用的存儲(chǔ)庫。
一個(gè)例子:
為了設(shè)置構(gòu)建環(huán)境并準(zhǔn)備構(gòu)建,Travis CI 的系統(tǒng)從存儲(chǔ)庫和構(gòu)建請求中明確指定的分支中獲取并處理 .travis.yml 配置文件,由 GitHub 觸發(fā)。
這個(gè) .travis.yml 配置文件的語法在官網(wǎng)可以找到。
比如,dist: bionic 的意思是,構(gòu)建虛擬系統(tǒng)的類型,bionic 是其中一個(gè)枚舉值。
Travis CI 支持 Linux 構(gòu)建的兩種虛擬化類型:“Full VM”和“LXD”。 最重要的是,Linux 構(gòu)建可以在多個(gè) CPU 架構(gòu)上運(yùn)行。
Full VM 是啟用 sudo 的,每個(gè)構(gòu)建的完整虛擬機(jī),運(yùn)行 Linux.
雖然啟動(dòng)緩慢(與 LXD 容器相比增加了構(gòu)建時(shí)間)但沒有任何限制。
它分配了固定數(shù)量的 vCPU 和 RAM。
而 LXD 環(huán)境,盡可能接近容器世界中的虛擬機(jī)。 Linux 環(huán)境在非特權(quán) LXD 容器中運(yùn)行。
和 Full VM 相比,其啟動(dòng)速度更快(與完整 VM 相比減少了構(gòu)建時(shí)間)但確實(shí)存在一些限制。
它從最少 2 個(gè) vCPU 開始,如果有更多的計(jì)算時(shí)間可用,主機(jī)可以動(dòng)態(tài)分配它以加快構(gòu)建速度。
又比如 branches 關(guān)鍵字和 only 的組合,下列例子的語義是,僅當(dāng) develop, epic, release, integration-libs 等 分支出現(xiàn)代碼提交時(shí)才觸發(fā) Travis.
.travis.yml 是一個(gè) YAML 格式的配置文件,下面是一些高級(jí)用法。
在更高級(jí)的用例中,為了減少大型構(gòu)建配置文件中的重復(fù),一個(gè)好的做法是使用 YAML 的機(jī)制來定義和重用共享配置部分作為 YAML 錨點(diǎn)和別名。
例如,不要像這樣為兩個(gè)不同的部署目標(biāo)重復(fù)部署配置, 這是不好的實(shí)踐:
deploy: - provider: herokuapi_key: ...app: app-productionon:branch: master - provider: herokuapi_key: ...app: app-stagingon:branch: staging使用下列的語法,重用某塊 yaml 定義:
deploy: - &deployprovider: herokuapi_key: ...app: app-productionon:branch: master - <<: *deployapp: app-stagingon:branch: staging更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的Travis CI 配置文件 .travis.yml 的语法介绍和一些用法举例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP 产品线中写法很接近,容易混淆的几
- 下一篇: 什么是 SAP HCEA