我算是 Travis CI 的老用戶了。
以前 Travis CI 很慢,對 Docker 不友善,又很難 debug,讓我一度將重心轉移到後起之秀 CircleCI。後來 Travis CI 向 CircleCI 看齊,讓我們能夠 ssh 進去虛擬機 debug,兩者的差距已經逐漸縮小。所以,我自己的重要專案,總是盡量同時掛上 Travis CI 及 CircleCI,讓 CI pipeline 的核心在某種程度上也能盡量 reproducible 不被 lock in。
Travis CI 也提供許多常見的程式語言及伺服器軟體,以方便做 CI 測試。我個人的習慣是,盡量不去使用這些功能,而是直接用 Docker 或 Docker Compose 來組裝,以降低對於 Travis CI 的依賴(尤其我還要兼顧 CircleCI)。
不過,如果是與人合作的專案,就得顧及其他人的習慣。我在使用 Travis CI 提供的伺服器軟體 Postgres、Cassandra、RabbitMQ 時,遇到一些雷,特地記錄下來,供有類似困擾的人參考。