blob: fd001ff431fa36110a0e0827fc0b0b0ae7f44f2a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
Given /^Tails ([[:alnum:].]+) has been released$/ do |version|
create_git unless git_exists?
old_branch = current_branch
fatal_system "git checkout --quiet stable"
old_entries = File.open('debian/changelog') { |f| f.read }
File.open('debian/changelog', 'w') do |changelog|
changelog.write(<<END_OF_CHANGELOG)
tails (#{version}) stable; urgency=low
* New upstream release.
-- Tails developers <tails@boum.org> Tue, 31 Jan 2012 15:12:57 +0100
#{old_entries}
END_OF_CHANGELOG
end
fatal_system "git commit --quiet debian/changelog -m 'Release #{version}'"
fatal_system "git tag '#{version}'"
if old_branch != 'stable'
fatal_system "git checkout --quiet '#{old_branch}'"
fatal_system "git merge --quiet 'stable'"
end
end
Given /^Tails ([[:alnum:].-]+) has been tagged$/ do |version|
fatal_system "git tag '#{version}'"
end
Given /^Tails ([[:alnum:].]+) has not been released yet$/ do |version|
!File.exists? ".git/refs/tags/#{version}"
end
Given /^the last version mentioned in debian\/changelog is ([[:alnum:]~.]+)$/ do |version|
last = `dpkg-parsechangelog | awk '/^Version: / { print $2 }'`.strip
raise StandardError.new('dpkg-parsechangelog failed.') if $? != 0
if last != version
fatal_system "debchange -v '#{version}' 'New upstream release'"
end
end
Given %r{I am working on the ([[:alnum:]./_-]+) base branch$} do |branch|
create_git unless git_exists?
if current_branch != branch
fatal_system "git checkout --quiet '#{branch}'"
end
File.open('config/base_branch', 'w+') do |base_branch_file|
base_branch_file.write("#{branch}\n")
end
end
Given %r{I am working on the ([[:alnum:]./_-]+) branch based on ([[:alnum:]./_-]+)$} do |branch, base|
create_git unless git_exists?
if current_branch != branch
fatal_system "git checkout --quiet -b '#{branch}' '#{base}'"
end
File.open('config/base_branch', 'w+') do |base_branch_file|
base_branch_file.write("#{base}\n")
end
end
When /^I successfully run ([[:alnum:]-]+)$/ do |command|
@output = `#{File.expand_path("../../../auto/scripts/#{command}", __FILE__)}`
raise StandardError.new("#{command} failed. Exit code: #{$?}") if $? != 0
end
When /^I run ([[:alnum:]-]+)$/ do |command|
@output = `#{File.expand_path("../../../auto/scripts/#{command}", __FILE__)}`
@exit_code = $?.exitstatus
end
Then /^I should see the ['"]?([[:alnum:].-]+)['"]? suite$/ do |suite|
@output.should have_suite(suite)
end
Then /^I should see only the ['"]?([[:alnum:].-]+)['"]? suite$/ do |suite|
assert_equal(1, @output.lines.count)
@output.should have_suite(suite)
end
Then /^I should not see the ['"]?([[:alnum:].-]+)['"]? suite$/ do |suite|
@output.should_not have_suite(suite)
end
Given(/^the config\/APT_overlays\.d directory is empty$/) do
Dir.glob('config/APT_overlays.d/*').empty? \
or raise "config/APT_overlays.d/ is not empty"
end
Given(/^config\/APT_overlays\.d contains ['"]?([[:alnum:].-]+)['"]?$/) do |suite|
FileUtils.touch("config/APT_overlays.d/#{suite}")
end
Then(/^it should fail$/) do
assert_not_equal(0, @exit_code)
end
Given(/^the (config\/base_branch) file does not exist$/) do |file|
File.delete(file)
end
Given(/^the (config\/APT_overlays\.d) directory does not exist$/) do |dir|
Dir.rmdir(dir)
end
Given(/^the config\/base_branch file is empty$/) do
File.truncate('config/base_branch', 0)
end
|