Travis Ci — простой способ получения статуса

Иногда возникает необходимость получить статус тестовой сборки в Travis Ci.

Случаев для этого можно придумать великое множество, но лично у меня это необходимо для моей Моргалки.

В настройках проекта можно получить ссылку на xml файл - в котором описывается статус сборки

Из которого очень легко вырвать статус.

Пример XML файла Trvis CI:

1
2
3
<Projects>
<Project name="GitHubUser/GitRepo" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="9" lastBuildTime="2015-02-04T20:42:17.000+0000" webUrl="https://travis-ci.org/GitHubUser/GitRepo"/>
</Projects>

Тут нас интересует только параметр “lastBuildStatus=

Пример на Ruby:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require 'open-uri'
require 'string_color'
xml_data = open('https://api.travis-ci.org/repos/LalalLa/SuperPuper/cc.xml').read
status = xml_data.scan(%r{lastBuildStatus="(.*)"})[0][0]

case status
  when 'Success'
    puts 'Ok'.green
  when 'Failure'
    puts 'Not Ok'.red
  when 'Unknown'
    puts 'Unknown status'.yellow
  else
    puts 'No data'.red
end

Осталось только засунуть это всё в Cron и в CASE написать что-то полезное :)

Комментарии