1: variables:
2: DEBIAN_FRONTEND: noninteractive
3: LC_ALL: C
4: GIT_STRATEGY: fetch
5: DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/"
6: IMG_BASE: registry.labs.nic.cz/labs/bird
7:
8: stages:
9: - image
10: - build
11:
12: .docker: &docker_build
13: stage: image
14: allow_failure: true
15: script:
16: - $DOCKER_CMD login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.labs.nic.cz
17: # Make sure we refresh the base image if it updates (eg. security updates, etc)
18: # If we do just the build, cache is always reused and the freshness of the
19: # base image is never checked. However, pull always asks and updates the
20: # image only if it changed ‒ therefore, the cache is used unless there's a
21: # change.
22: - $DOCKER_CMD pull `sed -ne 's/^FROM //p' "misc/docker/$IMG_NAME/Dockerfile"`
23: - $DOCKER_CMD build -t "bird:$IMG_NAME" "misc/docker/$IMG_NAME"
24: - $DOCKER_CMD tag "bird:$IMG_NAME" "$IMG_BASE:$IMG_NAME"
25: - $DOCKER_CMD push "$IMG_BASE:$IMG_NAME"
26: after_script:
27: - rm -f "$HOME/.docker/$CI_JOB_ID/" # cleanup the credentials
28: tags:
29: # That's Docker in Docker
30: - dind
31:
32: docker_debian-7-amd64:
33: variables:
34: IMG_NAME: "debian-7-amd64"
35: <<: *docker_build
36:
37: docker_debian-8-amd64:
38: variables:
39: IMG_NAME: "debian-8-amd64"
40: <<: *docker_build
41:
42: docker_debian-9-amd64:
43: variables:
44: IMG_NAME: "debian-9-amd64"
45: <<: *docker_build
46:
47: docker_debian-testing-amd64:
48: variables:
49: IMG_NAME: "debian-testing-amd64"
50: <<: *docker_build
51:
52: docker_debian-7-i386:
53: variables:
54: IMG_NAME: "debian-7-i386"
55: <<: *docker_build
56:
57: docker_debian-8-i386:
58: variables:
59: IMG_NAME: "debian-8-i386"
60: <<: *docker_build
61:
62: docker_debian-9-i386:
63: variables:
64: IMG_NAME: "debian-9-i386"
65: <<: *docker_build
66:
67: docker_debian-testing-i386:
68: variables:
69: IMG_NAME: "debian-testing-i386"
70: <<: *docker_build
71:
72: docker_fedora-25-amd64:
73: variables:
74: IMG_NAME: "fedora-25-amd64"
75: <<: *docker_build
76:
77: docker_fedora-26-amd64:
78: variables:
79: IMG_NAME: "fedora-26-amd64"
80: <<: *docker_build
81:
82: docker_centos-7-amd64:
83: variables:
84: IMG_NAME: "centos-7-amd64"
85: <<: *docker_build
86:
87: docker_opensuse-42_3-amd64:
88: variables:
89: IMG_NAME: "opensuse-42.3-amd64"
90: <<: *docker_build
91:
92: docker_ubuntu-14_04-amd64:
93: variables:
94: IMG_NAME: "ubuntu-14.04-amd64"
95: <<: *docker_build
96:
97: docker_ubuntu-16_04-amd64:
98: variables:
99: IMG_NAME: "ubuntu-16.04-amd64"
100: <<: *docker_build
101:
102: .debian-7-i386: &debian-7-i386_env
103: image: registry.labs.nic.cz/labs/bird:debian-7-i386
104: tags:
105: - docker
106: - linux
107: - amd64
108:
109: .debian-8-i386: &debian-8-i386_env
110: image: registry.labs.nic.cz/labs/bird:debian-8-i386
111: tags:
112: - docker
113: - linux
114: - amd64
115:
116: .debian-9-i386: &debian-9-i386_env
117: image: registry.labs.nic.cz/labs/bird:debian-9-i386
118: tags:
119: - docker
120: - linux
121: - amd64
122:
123: .debian-testing-i386: &debian-testing-i386_env
124: image: registry.labs.nic.cz/labs/bird:debian-testing-i386
125: tags:
126: - docker
127: - linux
128: - amd64
129:
130: .debian-7-amd64: &debian-7-amd64_env
131: image: registry.labs.nic.cz/labs/bird:debian-7-amd64
132: tags:
133: - docker
134: - linux
135: - amd64
136:
137: .debian-8-amd64: &debian-8-amd64_env
138: image: registry.labs.nic.cz/labs/bird:debian-8-amd64
139: tags:
140: - docker
141: - linux
142: - amd64
143:
144: .debian-9-amd64: &debian-9-amd64_env
145: image: registry.labs.nic.cz/labs/bird:debian-9-amd64
146: tags:
147: - docker
148: - linux
149: - amd64
150:
151: .debian-testing-amd64: &debian-testing-amd64_env
152: image: registry.labs.nic.cz/labs/bird:debian-testing-amd64
153: tags:
154: - docker
155: - linux
156: - amd64
157:
158: .fedora-25-amd64: &fedora-25-amd64_env
159: image: registry.labs.nic.cz/labs/bird:fedora-25-amd64
160: tags:
161: - docker
162: - linux
163: - amd64
164:
165: .fedora-26-amd64: &fedora-26-amd64_env
166: image: registry.labs.nic.cz/labs/bird:fedora-26-amd64
167: tags:
168: - docker
169: - linux
170: - amd64
171:
172: .centos-7-amd64: ¢os-7-amd64_env
173: image: registry.labs.nic.cz/labs/bird:centos-7-amd64
174: tags:
175: - docker
176: - linux
177: - amd64
178:
179: .opensuse-42_3-amd64: &opensuse-42_3-amd64_env
180: image: registry.labs.nic.cz/labs/bird:opensuse-42.3-amd64
181: tags:
182: - docker
183: - linux
184: - amd64
185:
186: .ubuntu-14_04-amd64: &ubuntu-14_04-amd64_env
187: image: registry.labs.nic.cz/labs/bird:ubuntu-14.04-amd64
188: tags:
189: - docker
190: - linux
191: - amd64
192:
193: .ubuntu-16_04-amd64: &ubuntu-16_04-amd64_env
194: image: registry.labs.nic.cz/labs/bird:ubuntu-16.04-amd64
195: tags:
196: - docker
197: - linux
198: - amd64
199:
200: # TODO We want to copy these BSDs to our own virtual machines, to make sure someone doesn't update them by accident.
201: .freebsd-11-i386: &freebsd-11-i386_env
202: tags:
203: - freebsd
204: - i386
205: #only:
206: #- master
207: #- triggers
208: #- tags
209:
210: .freebsd-11-amd64: &freebsd-11-amd64_env
211: tags:
212: - freebsd
213: - amd64
214: #only:
215: #- master
216: #- triggers
217: #- tags
218:
219: .build: &build_job
220: stage: build
221: script:
222: - autoreconf
223: - ./configure CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS"
224: # Detect which make is available
225: - MAKE=make
226: - which gmake 2>/dev/null >/dev/null && MAKE=gmake
227: - $MAKE
228: # Run tests if they are available
229: - $MAKE check
230:
231: build-debian-7-amd64:
232: <<: *debian-7-amd64_env
233: <<: *build_job
234:
235: build-debian-8-amd64:
236: <<: *debian-8-amd64_env
237: <<: *build_job
238:
239: build-debian-9-amd64:
240: <<: *debian-9-amd64_env
241: <<: *build_job
242:
243: build-debian-testing-amd64:
244: <<: *debian-testing-amd64_env
245: <<: *build_job
246:
247: build-fedora-25-amd64:
248: <<: *fedora-25-amd64_env
249: <<: *build_job
250:
251: build-fedora-26-amd64:
252: <<: *fedora-26-amd64_env
253: <<: *build_job
254:
255: build-centos-7-amd64:
256: <<: *centos-7-amd64_env
257: <<: *build_job
258:
259: build-opensuse-42_3-amd64:
260: <<: *opensuse-42_3-amd64_env
261: <<: *build_job
262:
263: build-ubuntu-14_04-amd64:
264: <<: *ubuntu-14_04-amd64_env
265: <<: *build_job
266:
267: build-ubuntu-16_04-amd64:
268: <<: *ubuntu-16_04-amd64_env
269: <<: *build_job
270:
271: build-debian-7-i386:
272: <<: *debian-7-i386_env
273: <<: *build_job
274:
275: build-debian-8-i386:
276: <<: *debian-8-i386_env
277: <<: *build_job
278:
279: build-debian-9-i386:
280: <<: *debian-9-i386_env
281: <<: *build_job
282:
283: build-debian-testing-i386:
284: <<: *debian-testing-i386_env
285: <<: *build_job
286:
287: build-freebsd-11-amd64:
288: <<: *freebsd-11-amd64_env
289: <<: *build_job
290:
291: build-freebsd-11-i386:
292: <<: *freebsd-11-i386_env
293: <<: *build_job
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>