怎麼用 Travis CI 測試 Roles?
Last updated
Was this helpful?
Last updated
Was this helpful?
在「好的 Roles 應具備什麼?」一節裡,凍仁曾提過好的 Roles 應導入 Travis CI 整合測試,有了持續整合 (CI) 才能確保每次提交的品質。
接下來將以 chusiang.helloworld
這個簡單的 role 為例,讓凍仁帶大家串起 GitHub, Galaxy 和 Travis CI 三個服務。
將左方的開關切換至 on。
於 Git Repository 裡新增 .travis.yml
。
使用 git push
即會觸發 Travis CI。
chusiang.helloworld/.travis.yml
的內容如下。
此例用了 --syntax-check
參數進行基本的語法檢測,較進階的作法則是藉由 Docker 進行測試。
使用 notifications
和 webhooks
發送通訊給 Galaxy。
以上,恭喜您學會了在 Roles 加入 Travis CI 自動化測試的技能。
凍仁提醒您:「當 build state badge 顯示 fail 時,記得回頭修一下 Roles 喔!」
此文發佈不到一天,凍仁就收到熱心網友回報的 bug issue。百忙之中上了 hotfix 修正,並確認 Travis CI 測試無誤。
仔細回想,要是當初沒這麼做,誰又可以確保半年前寫的 code 現在還可以正常運作呢!
撰寫一個 Role,並上傳至 GitHub。 https://github.com/chusiang/helloworld.ansible.role
於 Galaxy 網站進行匯入,詳請請參考「怎麼在 Galaxy 匯入 Roles?」一節。 https://galaxy.ansible.com/chusiang/helloworld/
進入 Travis CI 網站。
點擊左上角的 ✚ 整合新 Repository。
只需三個步驟即可整合 Travis CI。
將範例 Role 左方的開關切至 on 以整合 Travis CI。
建立完畢,等待觸發,這時的 build state 會是 unknown。
使用 git push
到 GitHub 後,Travis CI 會自動觸發。
若想把 build state 的 badge 放入 README.md
,可點擊該 badge 獲得各式語法。
回到 Galaxy 網站,會發現多了 build state 的 badge。