Travis CI
Travis CI — розподілений веб-сервіс для тестування програмного забезпечення. Інтегрується з GitHub (власне для нього і був розроблений першопочатково), і програмна частина сервісу теж розміщена на GitHub[2]. Самі розробники рекомендують не застосовувати дане рішення в закритих проектах[3].
Тип | Неперервна інтеграція |
---|---|
Розробник | Travis CI community |
Репозиторій | https://github.com/travis-ci/travis-ci |
Платформа | Web |
Мова програмування | Ruby |
Доступні мови | (англ.) |
Українська | ні |
Стан розробки | активний |
Ліцензія | MIT License[1] |
Вебсайт | travis-ci.org (Free) travis-ci.com (Pro) |
Travis CI у Вікісховищі |
Кілька проектів вищого рівня з відкритим кодом використовують його для запуску збірок і тестів на кожному коміті, серед них такі як Plone, Ruby on Rails, і Ruby[4][5][6]. На грудень 2013, більше 8056 JavaScript-проектів використовували цю систему[7].
Мови програмування, що підтримуються
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[8].
Підтримка сервісів
Підтримує велику кількість сторонніх програм і скриптів (git, docker, hubdocker, bash), а також безліч можливостей для розміщення (деплою) збірок на різні Хмаркові сервіси (Cloud Services):
- Anynines
- Atlas
- AWS Codedeploy
- AWS Elastic Beanstalk
- AWS Lambda
- AWS Opsworks
- AWS S3
- Azure Web Apps
- Bintray
- Bitballoon
- Bluemix Cloudfoundry
- Boxfuse
- Catalyze
- Chef Supermarket
- Cloud 66
- Cloudfoundry
- Cargo
- Deis
- Engine Yard
- Github Pages
- Github Releases
- Google App Engine
- Google Cloud Storage
- Google Firebase
- Hackage
- Heroku
- Launchpad
- Npm
- Openshift
- Packagecloud
- Puppet Forge
- Pypi
- Rackspace Cloud Files
- Rubygems
- Scalingo
- Script
- Snap Store
- Surge
- Testfairy
Важлива можливість, підтримка шифрованих змінних і шифрованих файлів, що знаходяться у репозиторії проекту. Це необхідно для складання або поставки додатків на сервер, щоб не турбуватися про те, що паролі до БД або інші таємні дані можуть стати не таємними.
Налаштування
Travis CI налаштовується шляхом додавання файлу з ім'ям .travis.yml, який є текстовим файлом формату YAML, до кореневого каталогу сховища. Цей файл визначає мову програмування, яку використовує проект, бажане середовище побудови та тестування (включаючи залежності, які повинні бути встановлені до того, як програмне забезпечення може бути побудовано та перевірено), а також інші параметри, які наприклад залежать від мови програмування проекту[9].
Принцип роботи
Орієнтовні етапи:
- Розробники після локальної перевірки, відправлять зміни до загального репозиторію.
- Репозиторій відправляє запит вебхук (webhook) системі CI.
- CI-сервер з допомогою воркера (worker) запускає завдання (тести, покриття, перевірку синтаксису і т.д.).
- CI-сервер зберігає артефакти і випускає реліз(release) для тестування.
- У разі виникнення помилок (збірки або тестування) CI-сервер сповіщає команду, цикл повторюється.
Примітки
- Travis CI LICENSE
- travis-ci (Travis CI)
- What is Travis CI#We Are Not Done Yet (2019)
- Plone developer documentation. Процитовано 2 червня 2013.
- Manuel Pais (23 лютого 2012). Travis CI Announces Support for Java and Plans for Travis Pro. InfoQ. Процитовано 27 травня 2012.
- Rails now tested on Travis CI. Процитовано 27 травня 2012.
- Tim Heckel (18 лютого 2013). Meet Travis CI: Open Source Continuous Integration. InfoQ. Процитовано 28 червня 2013.
- Travis documentation. Процитовано 27 лютого 2015.
- Customizing the Build