Merge remote-tracking branch 'origin/web/release-3.12.1'
[tails.git] / features / build.feature
blob841d4f11cd22ce5ff9c85905ea993d30dcf502ed
1 @source
2 Feature: custom APT sources to build branches
3   As a Tails developer, when I build Tails, I'd be happy if
4   the proper APT sources were automatically picked depending
5   on which Git branch I am working on.
7   Scenario: build from an untagged stable branch where the config/APT_overlays.d directory is empty
8     Given I am working on the stable base branch
9     And the last version mentioned in debian/changelog is 1.0
10     And Tails 1.0 has not been released yet
11     And the config/APT_overlays.d directory is empty
12     When I successfully run tails-custom-apt-sources
13     Then I should see only the 'stable' suite
15   Scenario: build from an untagged stable branch where config/APT_overlays.d is not empty
16     Given I am working on the stable base branch
17     And the last version mentioned in debian/changelog is 1.0
18     And Tails 1.0 has not been released yet
19     And config/APT_overlays.d contains 'feature-foo'
20     And config/APT_overlays.d contains 'bugfix-bar'
21     When I successfully run tails-custom-apt-sources
22     Then I should see the 'stable' suite
23     And I should see the 'feature-foo' suite
24     And I should see the 'bugfix-bar' suite
25     But I should not see the '1.0' suite
27   Scenario: build from an untagged stable branch with no encoded time-based snapshot
28     Given I am working on the stable base branch
29     And Tails 0.10 has been released
30     And the last versions mentioned in debian/changelog are 0.10 and 1.0
31     And Tails 1.0 has not been released yet
32     And no frozen APT snapshot is encoded in config/APT_snapshots.d
33     When I successfully run "apt-snapshots-serials prepare-build"
34     And I run "apt-mirror debian"
35     Then it should fail
36     When I run "apt-mirror torproject"
37     Then it should fail
38     When I successfully run "apt-mirror debian-security"
39     Then I should see a time-based snapshot
41   Scenario: build from an untagged stable branch with encoded time-based snapshots
42     Given I am working on the stable base branch
43     And Tails 0.10 has been released
44     And the last versions mentioned in debian/changelog are 0.10 and 1.0
45     And Tails 1.0 has not been released yet
46     And frozen APT snapshots are encoded in config/APT_snapshots.d
47     When I successfully run "apt-snapshots-serials prepare-build"
48     And I successfully run "apt-mirror debian"
49     Then I should see a time-based snapshot
50     When I successfully run "apt-mirror torproject"
51     Then I should see a time-based snapshot
52     When I successfully run "apt-mirror debian-security"
53     Then I should see a time-based snapshot
55   Scenario: build from a tagged stable branch where the config/APT_overlays.d directory is empty
56     Given Tails 0.10 has been released
57     And the last version mentioned in debian/changelog is 0.10
58     And I am working on the stable base branch
59     And I checkout the 0.10 tag
60     And the config/APT_overlays.d directory is empty
61     When I successfully run tails-custom-apt-sources
62     Then I should see only the '0.10' suite
64   Scenario: build from a tagged stable branch where config/APT_overlays.d is not empty
65     Given Tails 0.10 has been released
66     And the last version mentioned in debian/changelog is 0.10
67     And I am working on the stable base branch
68     And I checkout the 0.10 tag
69     And config/APT_overlays.d contains 'feature-foo'
70     When I run tails-custom-apt-sources
71     Then it should fail
73   Scenario: build from a tagged stable branch with no encoded time-based snapshot
74     Given I am working on the stable base branch
75     And Tails 0.10 has been released
76     And the last version mentioned in debian/changelog is 0.10
77     And no frozen APT snapshot is encoded in config/APT_snapshots.d
78     And I checkout the 0.10 tag
79     When I successfully run "apt-snapshots-serials prepare-build"
80     And I run "apt-mirror debian"
81     Then it should fail
82     When I run "apt-mirror torproject"
83     Then it should fail
84     When I successfully run "apt-mirror debian-security"
85     Then I should see the 0.10 tagged snapshot
87   Scenario: build from a tagged stable branch with encoded time-based snapshots
88     Given I am working on the stable base branch
89     And Tails 0.10 has been released
90     And the last version mentioned in debian/changelog is 0.10
91     And frozen APT snapshots are encoded in config/APT_snapshots.d
92     And I checkout the 0.10 tag
93     When I successfully run "apt-snapshots-serials prepare-build"
94     And I successfully run "apt-mirror debian"
95     Then I should see the 0.10 tagged snapshot
96     When I successfully run "apt-mirror torproject"
97     Then I should see the 0.10 tagged snapshot
98     When I successfully run "apt-mirror debian-security"
99     Then I should see the 0.10 tagged snapshot
101   Scenario: build from a bugfix branch without overlays for a stable release
102     Given Tails 0.10 has been released
103     And the last version mentioned in debian/changelog is 0.10.1
104     And Tails 0.10.1 has not been released yet
105     And I am working on the bugfix/disable_gdomap branch based on stable
106     And the config/APT_overlays.d directory is empty
107     When I successfully run tails-custom-apt-sources
108     Then I should see only the 'stable' suite
110   Scenario: build from a bugfix branch with overlays for a stable release
111     Given Tails 0.10 has been released
112     And the last version mentioned in debian/changelog is 0.10.1
113     And Tails 0.10.1 has not been released yet
114     And I am working on the bugfix/disable_gdomap branch based on stable
115     And config/APT_overlays.d contains 'bugfix-disable-gdomap'
116     And config/APT_overlays.d contains 'bugfix-bar'
117     When I successfully run tails-custom-apt-sources
118     Then I should see the 'stable' suite
119     And I should see the 'bugfix-disable-gdomap' suite
120     And I should see the 'bugfix-bar' suite
121     But I should not see the '0.10' suite
123   Scenario: build from a bugfix branch with no encoded time-based snapshot for a stable release
124     Given Tails 0.10 has been released
125     And the last version mentioned in debian/changelog is 0.10.1
126     And Tails 0.10.1 has not been released yet
127     And I am working on the bugfix/disable_gdomap branch based on stable
128     And no frozen APT snapshot is encoded in config/APT_snapshots.d
129     When I successfully run "apt-snapshots-serials prepare-build"
130     And I run "apt-mirror debian"
131     Then it should fail
132     When I run "apt-mirror torproject"
133     Then it should fail
134     When I successfully run "apt-mirror debian-security"
135     Then I should see a time-based snapshot
137   Scenario: build from a bugfix branch with encoded time-based snapshots for a stable release
138     Given Tails 0.10 has been released
139     And the last version mentioned in debian/changelog is 0.10.1
140     And Tails 0.10.1 has not been released yet
141     And I am working on the bugfix/disable_gdomap branch based on stable
142     And frozen APT snapshots are encoded in config/APT_snapshots.d
143     When I successfully run "apt-snapshots-serials prepare-build"
144     And I successfully run "apt-mirror debian"
145     Then I should see a time-based snapshot
146     When I successfully run "apt-mirror torproject"
147     Then I should see a time-based snapshot
148     When I successfully run "apt-mirror debian-security"
149     Then I should see a time-based snapshot
151   Scenario: build from an untagged testing branch where the config/APT_overlays.d directory is empty
152     Given I am working on the testing base branch
153     And the last version mentioned in debian/changelog is 0.11
154     And Tails 0.11 has not been released yet
155     And the config/APT_overlays.d directory is empty
156     When I successfully run tails-custom-apt-sources
157     Then I should see the 'testing' suite
158     And I should not see the '0.11' suite
159     And I should not see the 'feature-foo' suite
160     And I should not see the 'bugfix-bar' suite
162   Scenario: build from an untagged testing branch where config/APT_overlays.d is not empty
163     Given I am working on the testing base branch
164     And the last version mentioned in debian/changelog is 0.11
165     And Tails 0.11 has not been released yet
166     And config/APT_overlays.d contains 'feature-foo'
167     And config/APT_overlays.d contains 'bugfix-bar'
168     When I successfully run tails-custom-apt-sources
169     Then I should see the 'testing' suite
170     And I should see the 'feature-foo' suite
171     And I should see the 'bugfix-bar' suite
172     But I should not see the '0.11' suite
174   Scenario: build from an untagged testing branch with no encoded time-based snapshot
175     Given I am working on the testing base branch
176     And Tails 0.10 has been released
177     And the last versions mentioned in debian/changelog are 0.10 and 1.0
178     And Tails 1.0 has not been released yet
179     And no frozen APT snapshot is encoded in config/APT_snapshots.d
180     When I successfully run "apt-snapshots-serials prepare-build"
181     And I run "apt-mirror debian"
182     Then it should fail
183     When I run "apt-mirror torproject"
184     Then it should fail
185     When I successfully run "apt-mirror debian-security"
186     Then I should see a time-based snapshot
188   Scenario: build from an untagged testing branch with encoded time-based snapshots
189     Given I am working on the testing base branch
190     And Tails 0.10 has been released
191     And the last versions mentioned in debian/changelog are 0.10 and 1.0
192     And Tails 1.0 has not been released yet
193     And frozen APT snapshots are encoded in config/APT_snapshots.d
194     When I successfully run "apt-snapshots-serials prepare-build"
195     And I successfully run "apt-mirror debian"
196     Then I should see a time-based snapshot
197     When I successfully run "apt-mirror torproject"
198     Then I should see a time-based snapshot
199     When I successfully run "apt-mirror debian-security"
200     Then I should see a time-based snapshot
202   Scenario: build from a tagged testing branch where the config/APT_overlays.d directory is empty
203     Given I am working on the testing base branch
204     And the last version mentioned in debian/changelog is 0.11
205     And Tails 0.11 has been released
206     And the config/APT_overlays.d directory is empty
207     And I checkout the 0.11 tag
208     When I successfully run tails-custom-apt-sources
209     Then I should see only the '0.11' suite
211   Scenario: build from a tagged testing branch where config/APT_overlays.d is not empty
212     Given I am working on the testing base branch
213     And the last version mentioned in debian/changelog is 0.11
214     And Tails 0.11 has been released
215     And config/APT_overlays.d contains 'feature-foo'
216     And I checkout the 0.11 tag
217     When I run tails-custom-apt-sources
218     Then it should fail
220   Scenario: build from a tagged testing branch with no encoded time-based snapshot
221     Given I am working on the testing base branch
222     And the last version mentioned in debian/changelog is 0.11
223     And Tails 0.11 has been released
224     And no frozen APT snapshot is encoded in config/APT_snapshots.d
225     And I checkout the 0.11 tag
226     When I successfully run "apt-snapshots-serials prepare-build"
227     And I run "apt-mirror debian"
228     Then it should fail
229     When I run "apt-mirror torproject"
230     Then it should fail
231     When I successfully run "apt-mirror debian-security"
232     Then I should see the 0.11 tagged snapshot
234   Scenario: build from a tagged testing branch with encoded time-based snapshots
235     Given I am working on the testing base branch
236     And the last version mentioned in debian/changelog is 0.11
237     And Tails 0.11 has been released
238     And frozen APT snapshots are encoded in config/APT_snapshots.d
239     And I checkout the 0.11 tag
240     When I successfully run "apt-snapshots-serials prepare-build"
241     And I successfully run "apt-mirror debian"
242     Then I should see the 0.11 tagged snapshot
243     When I successfully run "apt-mirror torproject"
244     Then I should see the 0.11 tagged snapshot
245     When I successfully run "apt-mirror debian-security"
246     Then I should see the 0.11 tagged snapshot
248   Scenario: build a release candidate from a tagged testing branch
249     Given I am working on the testing base branch
250     And Tails 0.11 has been released
251     And the last version mentioned in debian/changelog is 0.12~rc1
252     And Tails 0.12-rc1 has been tagged
253     And the config/APT_overlays.d directory is empty
254     And I checkout the 0.12-rc1 tag
255     When I successfully run tails-custom-apt-sources
256     Then I should see only the '0.12-rc1' suite
258   Scenario: build a release candidate from a tagged testing branch where config/APT_overlays.d is not empty
259     Given I am working on the testing base branch
260     And Tails 0.11 has been released
261     And the last version mentioned in debian/changelog is 0.12~rc1
262     And Tails 0.12-rc1 has been tagged
263     And config/APT_overlays.d contains 'bugfix-bar'
264     And I checkout the 0.12-rc1 tag
265     When I run tails-custom-apt-sources
266     Then it should fail
268   Scenario: build from a bugfix branch with no encoded time-based snapshot for a major release
269     Given I am working on the testing base branch
270     And Tails 0.10~rc1 has been released
271     And the last versions mentioned in debian/changelog are 0.10~rc1 and 0.10
272     And Tails 0.10 has not been released yet
273     And I am working on the bugfix/disable_gdomap branch based on testing
274     And no frozen APT snapshot is encoded in config/APT_snapshots.d
275     When I successfully run "apt-snapshots-serials prepare-build"
276     And I run "apt-mirror debian"
277     Then it should fail
278     When I run "apt-mirror torproject"
279     Then it should fail
280     When I successfully run "apt-mirror debian-security"
281     Then I should see a time-based snapshot
283   Scenario: build from a bugfix branch with encoded time-based snapshots for a major release
284     Given I am working on the testing base branch
285     And Tails 0.10~rc1 has been released
286     And the last versions mentioned in debian/changelog are 0.10~rc1 and 0.10
287     And Tails 0.10 has not been released yet
288     And I am working on the bugfix/disable_gdomap branch based on testing
289     And frozen APT snapshots are encoded in config/APT_snapshots.d
290     When I successfully run "apt-snapshots-serials prepare-build"
291     And I successfully run "apt-mirror debian"
292     Then I should see a time-based snapshot
293     When I successfully run "apt-mirror torproject"
294     Then I should see a time-based snapshot
295     When I successfully run "apt-mirror debian-security"
296     Then I should see a time-based snapshot
298   Scenario: build from the devel branch without overlays
299     Given I am working on the devel base branch
300     And the config/APT_overlays.d directory is empty
301     When I successfully run tails-custom-apt-sources
302     Then I should see only the 'devel' suite
304   Scenario: build from the devel branch with overlays
305     Given I am working on the devel base branch
306     And config/APT_overlays.d contains 'feature-foo'
307     And config/APT_overlays.d contains 'bugfix-bar'
308     When I successfully run tails-custom-apt-sources
309     Then I should see the 'devel' suite
310     And I should see the 'feature-foo' suite
311     And I should see the 'bugfix-bar' suite
313   Scenario: build from the devel branch with no encoded time-based snapshot
314     Given I am working on the devel base branch
315     And no frozen APT snapshot is encoded in config/APT_snapshots.d
316     When I successfully run "apt-snapshots-serials prepare-build"
317     And I successfully run "apt-mirror debian"
318     Then I should see a time-based snapshot
319     When I successfully run "apt-mirror torproject"
320     Then I should see a time-based snapshot
321     When I successfully run "apt-mirror debian-security"
322     Then I should see a time-based snapshot
324   Scenario: build from the devel branch with encoded time-based snapshots
325     Given I am working on the devel base branch
326     And frozen APT snapshots are encoded in config/APT_snapshots.d
327     When I successfully run "apt-snapshots-serials prepare-build"
328     And I run "apt-mirror debian"
329     Then it should fail
330     When I run "apt-mirror torproject"
331     Then it should fail
332     When I successfully run "apt-mirror debian-security"
333     Then I should see a time-based snapshot
335   Scenario: build from the feature/jessie branch without overlays
336     Given I am working on the feature/jessie base branch
337     And the config/APT_overlays.d directory is empty
338     When I successfully run tails-custom-apt-sources
339     Then I should see only the 'feature-jessie' suite
341   Scenario: build from the feature/jessie branch with overlays
342     Given I am working on the feature/jessie base branch
343     And config/APT_overlays.d contains 'feature-7756-reintroduce-whisperback'
344     When I successfully run tails-custom-apt-sources
345     Then I should see the 'feature-jessie' suite
346     And I should see the 'feature-7756-reintroduce-whisperback' suite
348   Scenario: build from a feature branch with overlays based on devel
349     Given I am working on the feature/thunderbird branch based on devel
350     And config/APT_overlays.d contains 'feature-thunderbird'
351     And config/APT_overlays.d contains 'bugfix-bar'
352     When I successfully run tails-custom-apt-sources
353     Then I should see the 'devel' suite
354     And I should see the 'feature-thunderbird' suite
355     And I should see the 'bugfix-bar' suite
357   Scenario: build from a feature branch without overlays based on devel
358     Given I am working on the feature/thunderbird branch based on devel
359     And the config/APT_overlays.d directory is empty
360     When I successfully run tails-custom-apt-sources
361     Then I should see only the 'devel' suite
363   Scenario: build from a feature branch based on devel with no encoded time-based snapshot
364     Given I am working on the feature/thunderbird branch based on devel
365     And no frozen APT snapshot is encoded in config/APT_snapshots.d
366     When I successfully run "apt-snapshots-serials prepare-build"
367     And I successfully run "apt-mirror debian"
368     Then I should see a time-based snapshot
369     When I successfully run "apt-mirror torproject"
370     Then I should see a time-based snapshot
371     When I successfully run "apt-mirror debian-security"
372     Then I should see a time-based snapshot
374   Scenario: build from a feature branch based on devel with encoded time-based snapshots
375     Given I am working on the feature/thunderbird branch based on devel
376     And frozen APT snapshots are encoded in config/APT_snapshots.d
377     When I successfully run "apt-snapshots-serials prepare-build"
378     And I run "apt-mirror debian"
379     Then it should fail
380     When I run "apt-mirror torproject"
381     Then it should fail
382     When I successfully run "apt-mirror debian-security"
383     Then I should see a time-based snapshot
385   Scenario: build from a feature branch with overlays based on feature/jessie
386     Given I am working on the feature/7756-reintroduce-whisperback branch based on feature/jessie
387     And config/APT_overlays.d contains 'feature-7756-reintroduce-whisperback'
388     And config/APT_overlays.d contains 'bugfix-bar'
389     When I successfully run tails-custom-apt-sources
390     Then I should see the 'feature-jessie' suite
391     And I should see the 'feature-7756-reintroduce-whisperback' suite
392     And I should see the 'bugfix-bar' suite
394   Scenario: build from a feature branch without overlays based on feature/jessie
395     Given I am working on the feature/thunderbird branch based on feature/jessie
396     And the config/APT_overlays.d directory is empty
397     When I successfully run tails-custom-apt-sources
398     Then I should see only the 'feature-jessie' suite
400   Scenario: build from a feature branch based on devel with dots in its name
401     Given I am working on the feature/live-boot-3.x branch based on devel
402     And config/APT_overlays.d contains 'feature-live-boot-3.x'
403     When I successfully run tails-custom-apt-sources
404     Then I should see the 'devel' suite
405     And I should see the 'feature-live-boot-3.x' suite
407   Scenario: build from a branch that has no config/APT_overlays.d directory
408     Given I am working on the stable base branch
409     And the config/APT_overlays.d directory does not exist
410     When I run tails-custom-apt-sources
411     Then it should fail
413   Scenario: build from a branch that has no config/base_branch file
414     Given I am working on the stable base branch
415     And the config/base_branch file does not exist
416     When I run tails-custom-apt-sources
417     Then it should fail
419   Scenario: build from a branch where config/base_branch is empty
420     Given I am working on the stable base branch
421     And the config/base_branch file is empty
422     When I run tails-custom-apt-sources
423     Then it should fail