怎麼用 Travis CI 測試 Roles?
Last updated
Last updated
在「好的 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。