Continuous integration 我应该使用什么来控制CI构建失败指示灯?

Continuous integration 我应该使用什么来控制CI构建失败指示灯?,continuous-integration,Continuous Integration,我想在我们的办公室里设置一盏大灯,每当我们的Hudson Continuous Integration服务器报告构建失败时,它就会打开。我应该使用什么技术来实现这一点?Github使用了一个红绿灯和他们自己开发的CI Joe构建工具(而不是Hudson,但我认为过程相当类似) 他们使用了一个黑寡妇Arduino并将代码开源以使其工作:Github使用了一个红绿灯和他们自己开发的CI Joe构建工具(而不是Hudson,但我认为过程相当类似) 他们使用了一个黑寡妇Arduino,并将代码开源以

我想在我们的办公室里设置一盏大灯,每当我们的Hudson Continuous Integration服务器报告构建失败时,它就会打开。我应该使用什么技术来实现这一点?

Github使用了一个红绿灯和他们自己开发的CI Joe构建工具(而不是Hudson,但我认为过程相当类似)


他们使用了一个黑寡妇Arduino并将代码开源以使其工作:

Github使用了一个红绿灯和他们自己开发的CI Joe构建工具(而不是Hudson,但我认为过程相当类似)

他们使用了一个黑寡妇Arduino,并将代码开源以使其正常工作:

第1步)撕开你的旧Thinkpad,直到你可以使用键盘灯

第2步)找到一个合适的继电器,你们可以用它代替电灯(运行你们的大电灯)

步骤3)修改以下脚本以满足您的需要(或者让它从任何检查构建的地方按原样运行):

(我可能从某个地方偷了那段代码,但那是很久以前的事了,现在我想不起来了)

步骤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