Travis Ci 讓你的項(xiàng)目輕松加入持續(xù)集成測試
不知道大家有沒有這種體驗(yàn),代碼寫完之后,要花大量的時(shí)間進(jìn)行構(gòu)建和測試,就拿 Python 來說吧,寫完代碼后,編寫測試用例,準(zhǔn)備測試環(huán)境,執(zhí)行測試,完成構(gòu)建,部署到服務(wù)器。
后面每改動一次代碼,都要準(zhǔn)備測試環(huán)境,執(zhí)行測試,完成構(gòu)建,部署到服務(wù)器,執(zhí)行這一系列過程,相當(dāng)耗時(shí),尤其是在多個(gè) Python 版本間進(jìn)行測試時(shí),簡直就是體力活。
不過,現(xiàn)在這個(gè)問題不存在了,只要你會用 Travis Ci 這個(gè)持續(xù)集成工具。
Travis Ci 是一個(gè)基于云的, 綁定 GitHub 上的項(xiàng)目后,只要有新的代碼提交,就會自動執(zhí)行測試,完成構(gòu)建,部署到服務(wù)器這一系列重復(fù)枯燥的過程,每次代碼的小幅變更,我們就能很快看到運(yùn)行結(jié)果,從而不斷累積小的變更。這種及時(shí)反饋可以大大提升開發(fā)效率。
比如我有一個(gè) GitHub 倉庫,里面寫好了單元測試,然后修改了代碼之后提交到 GitHub,很快就可以看到構(gòu)建的結(jié)果是 pass 還是 failed:

當(dāng)然,這個(gè)過程是需要我們配置的。
接下來分享下如何簡單的使用 Travis Ci ,工具是開源免費(fèi)的。
1、前提條件
你需要在代碼托管平臺有一個(gè)項(xiàng)目,或者叫倉庫,英文 repositories。
代碼托管平臺目前支持 GitHub、Bitbucket、GitLab、Assembla。
你是倉庫的所有者。
2、為倉庫編寫配置文件
在倉庫[1]的根目錄添加一個(gè) .travis.yml 配置文件,來告訴 travis-ci 做什么。
比如我這里的一個(gè) .travis.yml 配置文件如下所示:
language:?python
python:
??-?"3.7"
??-?"3.8"
??-?"3.9"
#?command?to?install?dependencies
#install:
#??-?pip?install?tox
#?command?to?run?tests
script:
??-?python?setup.py?sdist?bdist_wheel
notifications:
??email:
????recipients:
??????-?[email protected]
????on_success:?change
????on_failure:?always
上面代碼中:
language 字段指定了編程語言,目前支持大部分主流編程語言 python 設(shè)定使用 Python 環(huán)境的版本 script 字段指定要運(yùn)行的腳本,如果 script: true 表示不執(zhí)行任何腳本,狀態(tài)直接設(shè)為成功
如果有多個(gè)腳本,可以寫成下面的形式:
script:
??-?command1
??-?command2
如果 command1 失敗,command2 會繼續(xù)執(zhí)行。但是,整個(gè)構(gòu)建階段的狀態(tài)是失敗。如果 command2 只有在 command1 成功后才能執(zhí)行,就要寫成這樣 script: command1 && command2
notifications 就是通知了,script 執(zhí)行失敗的話發(fā)郵件通知
還有 install 命令我注釋掉了,該字段用來指定安裝依賴,如果有多個(gè)命令要執(zhí)行,可以寫成下面的形式。
install:
??-?command1
??-?command2
上面代碼中,如果 command1 失敗了,整個(gè)構(gòu)建就會停下來,不再往下進(jìn)行。如果不需要安裝,即跳過安裝階段,就直接設(shè)為true。
配置文件之前,我們需要自己本地執(zhí)行一下 script 里面的命令,沒有問題時(shí)再提交 .travis.yml 進(jìn)行下一步。
2、登錄 travis-ci,監(jiān)聽這個(gè)項(xiàng)目
訪問 https://app.travis-ci.com/signin 并使用一個(gè)平臺賬號登錄:

以 GitHub 為例,登進(jìn)去后,我們會看到自己的倉庫列表。

選擇倉庫前面的小圓圈,激活該倉庫。
這里看到 dbinterface 已經(jīng)激活了,點(diǎn)擊進(jìn)去,可以查看提交、構(gòu)建的情況,只有我們 git push 這個(gè)倉庫,就會自動構(gòu)建,也可以點(diǎn)擊按鈕重新構(gòu)建。

點(diǎn)擊下方的構(gòu)建條目可以看到詳細(xì)的日志:

3、其他騷操作
script 階段結(jié)束以后,除了設(shè)置通知步驟(notification)還可以進(jìn)行部署(deployment)比如,要部署到 Github Pages,可以寫成下面這樣。
deploy:
??provider:?pages
??skip_cleanup:?true
??github_token:?$GITHUB_TOKEN?#?在?travis-ci.com?面板設(shè)置
??on:
????branch:?master
其他部署方式,請看官方文檔[2]。
不過 GitHub Actions 更為方便,可以查看前文:GitHub Actions入門教程:自動化部署靜態(tài)博客
最后的話
如果你是 Github 的愛好者,那么 Travis 絕對值得一試。如果覺得本文有幫助,還請點(diǎn)個(gè)在看,感謝老鐵支持。
掃碼關(guān)注
推薦閱讀
Travis Ci 官網(wǎng)提供的教程 Python[3]
參考資料
倉庫: https://github.com/somenzz/dbinterface
[2]官方文檔: https://docs.travis-ci.com/user/deployment/
[3]Travis Ci 官網(wǎng)提供的教程 Python: http://docs.travis-ci.com/user/languages/python/
