Travis CI — розподілений вебсервіс для тестування програмного забезпечення. Інтегрується з GitHub (власне для нього і був розроблений першопочатково), і програмна частина сервісу теж розміщена на GitHub. Самі розробники рекомендують не застосовувати дане рішення в закритих проектахWhat is Travis CI#We Are Not Done Yet (2019).

Кілька проектів вищого рівня з відкритим кодом використовують його для запуску збірок і тестів на кожному коміті, серед них такі як Plone, Ruby on Rails, і Ruby. На грудень 2013, більше 8056 JavaScript-проектів використовували цю систему.

Мови програмування, що підтримуються C, C++, C#, Clojure, Crystal, D, Dart, Elm, Elixir, Erlang, F#, Generic, Go, Groovy, Haskell, Haxe, Java, JavaScript(з Node.js), Julia, Minimal, Nix, Objective-C, Perl (Perl 6), PHP, Python, R, Ruby, Rust, Scala, Smalltalk, Swift, Visual Basic.

Підтримка сервісів Підтримує велику кількість сторонніх програм і скриптів (git, docker, hubdocker, bash), а також безліч можливостей для розміщення (деплою) збірок на різні Хмаркові сервіси (Cloud Services):

Важлива можливість, підтримка шифрованих змінних і шифрованих файлів, що знаходяться у репозиторії проекту. Це необхідно для складання або поставки додатків на сервер, щоб не турбуватися про те, що паролі до БД або інші таємні дані можуть стати не таємними.

Налаштування Travis CI налаштовується шляхом додавання файлу з ім'ям .travis.yml, який є текстовим файлом формату YAML, до кореневого каталогу сховища. Цей файл визначає мову програмування, яку використовує проект, бажане середовище побудови та тестування (включаючи залежності, які повинні бути встановлені до того, як програмне забезпечення може бути побудовано та перевірено), а також інші параметри, які наприклад залежать від мови програмування проекту.

Принцип роботи Орієнтовні етапи: Розробники після локальної перевірки, відправлять зміни до загального репозиторію. Репозиторій відправляє запит вебхук (webhook) системі CI. CI-сервер з допомогою воркера (worker) запускає завдання (тести, покриття, перевірку синтаксису і т.д.). CI-сервер зберігає артефакти і випускає реліз(release) для тестування. У разі виникнення помилок (збірки або тестування) CI-сервер сповіщає команду, цикл повторюється.

Примітки

Див. також Безперервна інтеграція