Что я должен использовать, чтобы контролировать свет на CI Build Failure? - PullRequest
1 голос
/ 06 января 2011

Я бы хотел настроить свет в нашем офисе, который включается всякий раз, когда наш сервер Hudson Continuous Integration сообщает об ошибке сборки.Какую технологию мне использовать, чтобы это произошло?

Ответы [ 2 ]

3 голосов
/ 06 января 2011

Github сделал нечто подобное со стоп-сигналом и своим собственным инструментом сборки CI Joe (вместо Хадсона, но я думаю, что процесс довольно похож).

https://github.com/blog/653-our-new-build-status-indicator

Они использовали Black Widow Arduino и открыли исходный код, чтобы заставить его работать: https://github.com/atduskgreg/GitHub-Stoplight

1 голос
/ 25 августа 2011

Шаг 1) Разорвите старый Thinkpad, пока не получите доступ к подсветке клавиатуры.

Шаг 2) Найдите подходящее реле, которое вы можете подключить вместо лампочки (чтобы включить больший свет).

Шаг 3) Измените следующий сценарий в соответствии с вашими потребностями (или он будет запущен как есть из того, что проверяет сборки):

#!/usr/bin/ruby
light_filename = '/proc/acpi/ibm/light'
num_cycles = 1

# see if we have an argument telling how many times to flash
ARGV.each do |a| 
    if a =~ /-c=(\d+)/ 
        num_cycles = $1.to_i 
    else 
        puts 'Unknown argument: ' + a
        exit
    end 
end

# method that reverses the state
def reverse(state)
        return 'on' if state.include? 'off'
        return 'off'
end

# find starting state
state = 'off'
File.open(light_filename, 'r') do |inf| 
    state='on' if inf.gets.include? 'on'
end

# double the cycle num to get how many times we should flip
flips = num_cycles * 2
# do the cycles
flips.times do |i|
    # reverse state
    File.open(light_filename, 'w') do |out| 
        state = reverse(state)
        out.write(state) 
    end
    # wait 1/4 sec before looping again
    sleep 0.250
end

(возможно, я украл этот код откуда-то, но это было так давно, что я не могу вспомнить)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...