1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Travis Ci 讓你的項(xiàng)目輕松加入持續(xù)集成測試

        共 2369字,需瀏覽 5分鐘

         ·

        2022-03-16 13:24

        不知道大家有沒有這種體驗(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]

        與 coveralls 的不解之緣

        參考資料

        [1]

        倉庫: 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/


        瀏覽 68
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            灌醉丝袜美熟女 视频在线 | 美女被狂揉下部羞羞69 | 欧美真人性爱精品 | 啊用力嗯轻一点h | 饥渴难耐少妇 | 国产偷拍自拍第一第一页 | 亚洲乱伦综合 | 伊人精品| 成人视频高清 | 男人天堂最新网站 |