.gitlab-ci.yml 10.4 KB
Newer Older
1 2 3 4 5 6 7
before_script:
  - echo "Setup done"

after_script:
  - echo "Done with the work"

stages:
8 9
  - test_scala_toolflow
  - build_scala_toolflow
Jaco Hofmann's avatar
Jaco Hofmann committed
10 11
  - build_kernel
  - build_runtime
12
  - build_hw
Jaco Hofmann's avatar
Jaco Hofmann committed
13

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
.test_tapasco_centos:
  stage: test_scala_toolflow
  retry: 2
  dependencies: []
  tags:
    - High
  script:
    - yum -y install which java-openjdk findutils
    - ./tapasco-init.sh && source tapasco-setup.sh
    - cd ${TAPASCO_HOME_TOOLFLOW}/scala
    - ./gradlew test

test_tapasco_centos_7:
  image: centos:7
  extends: .test_tapasco_centos

test_tapasco_centos_8:
  image: centos:8
  extends: .test_tapasco_centos

34
.test_tapasco_ubuntu:
35
  stage: test_scala_toolflow
Carsten Heinz's avatar
Carsten Heinz committed
36
  retry: 2
37
  dependencies: []
Jaco Hofmann's avatar
Jaco Hofmann committed
38
  tags:
39 40
    - High
  script:
41
    - apt-get -y update && apt-get -y install unzip git zip findutils curl default-jdk
42
    - ./tapasco-init.sh && source tapasco-setup.sh
43 44
    - cd ${TAPASCO_HOME_TOOLFLOW}/scala
    - ./gradlew test
45

46 47 48 49 50 51 52 53 54
test_tapasco_ubuntu_16_04:
  image: ubuntu:xenial
  extends: .test_tapasco_ubuntu

test_tapasco_ubuntu_18_04:
  image: ubuntu:bionic
  extends: .test_tapasco_ubuntu

.test_tapasco_fedora:
55
  stage: test_scala_toolflow
56 57 58 59 60 61 62 63 64 65 66 67 68
  retry: 2
  tags:
    - High
  before_script:
    - dnf -y install which java-openjdk findutils
  script:
    - ./tapasco-init.sh && source tapasco-setup.sh
    - cd ${TAPASCO_HOME_TOOLFLOW}/scala
    - ./gradlew test

test_tapasco_fedora_30:
  image: fedora:30
  extends: .test_tapasco_fedora
69 70
  before_script:
  - dnf -y install which findutils java-11-openjdk
71 72 73 74

test_tapasco_fedora_31:
  image: fedora:31
  extends: .test_tapasco_fedora
75

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
.build_scala_tapasco_centos:
  stage: build_scala_toolflow
  retry: 2
  dependencies: []
  tags:
    - High
  before_script:
    - yum -y install which java-openjdk findutils
  script:
    - ./tapasco-init.sh && source tapasco-setup.sh
    - cd ${TAPASCO_HOME_TOOLFLOW}/scala
    - tapasco-build-toolflow

build_scala_tapasco_centos_7:
  image: centos:7
  extends: .build_scala_tapasco_centos

build_scala_tapasco_centos_8:
  image: centos:8
  extends: .build_scala_tapasco_centos

97
.build_scala_tapasco_fedora:
98
  stage: build_scala_toolflow
Carsten Heinz's avatar
Carsten Heinz committed
99
  retry: 2
100
  dependencies: []
Jaco Hofmann's avatar
Jaco Hofmann committed
101
  tags:
Jaco Hofmann's avatar
Jaco Hofmann committed
102
    - High
103
  before_script:
104
    - dnf -y install which java-openjdk findutils
Jaco Hofmann's avatar
Jaco Hofmann committed
105
  script:
106
    - ./tapasco-init.sh && source tapasco-setup.sh
107
    - cd ${TAPASCO_HOME_TOOLFLOW}/scala
108
    - tapasco-build-toolflow
109 110 111
    - ./gradlew buildRPM
  artifacts:
    paths:
Jaco Hofmann's avatar
Jaco Hofmann committed
112
      - toolflow/scala/build/distributions/tapasco-2020-04.x86_64.rpm
113

114
build_scala_tapasco_fedora_30:
115
  image: fedora:30
116
  extends: .build_scala_tapasco_fedora
117 118
  before_script:
    - dnf -y install which findutils java-11-openjdk
119

120
build_scala_tapasco_fedora_31:
121
  image: fedora:31
122
  extends: .build_scala_tapasco_fedora
123

124
.build_scala_tapasco_ubuntu:
125 126
  stage: build_scala_toolflow
  retry: 2
127
  dependencies: []
128 129
  tags:
    - High
130
  before_script:
131
    - apt-get -y update && apt-get -y install default-jdk findutils
132
  script:
133
    - ./tapasco-init.sh && source tapasco-setup.sh
134
    - cd ${TAPASCO_HOME_TOOLFLOW}/scala
135
    - tapasco-build-toolflow
136
    - ./gradlew buildDEB
137 138
  artifacts:
    paths:
Jaco Hofmann's avatar
Jaco Hofmann committed
139
      - toolflow/scala/build/distributions/tapasco_2020-04_amd64.deb
140

141
build_scala_tapasco_ubuntu_16_04:
142
  image: ubuntu:xenial
143
  extends: .build_scala_tapasco_ubuntu
144

145
build_scala_tapasco_ubuntu_18_04:
146
  image: ubuntu:bionic
147
  extends: .build_scala_tapasco_ubuntu
148

149 150 151
# build kernel module
# as we are running in a docker instance, we cannot use tapasco-build-libs
.build_kernel_ubuntu:
Jaco Hofmann's avatar
Jaco Hofmann committed
152
  stage: build_kernel
Carsten Heinz's avatar
Carsten Heinz committed
153
  retry: 2
154
  dependencies: []
155 156
  variables:
    MODE: "release"
157 158 159
  tags:
    - Normal
  script:
160
    - apt-get -y update && apt-get -y install build-essential linux-headers-generic python3 libelf-dev
161
    - ./tapasco-init.sh && source tapasco-setup.sh
162
    - for d in `ls /lib/modules`; do echo "Building for linux headers in $d"; pushd runtime/kernel; make LINUX_HOME="/lib/modules/$d/build" clean && make LINUX_HOME=/lib/modules/$d/build -j 1 $MODE; popd; done
163 164
  artifacts:
    paths:
165
      - runtime/kernel/tlkm.ko
166

167 168 169 170
build_kernel_ubuntu_16_04:
  image: ubuntu:xenial
  extends: .build_kernel_ubuntu

171
build_kernel_ubuntu_18_04:
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
  image: ubuntu:bionic
  extends: .build_kernel_ubuntu

build_kernel_ubuntu_16_04_debug:
  variables:
    MODE: "all"
  image: ubuntu:xenial
  extends: .build_kernel_ubuntu

build_kernel_ubuntu_18_04_debug:
  variables:
    MODE: "all"
  image: ubuntu:bionic
  extends: .build_kernel_ubuntu

187
build_kernel_arm32v7_debug:
Carsten Heinz's avatar
Carsten Heinz committed
188
  stage: build_kernel
189 190
  variables:
    MODE: "all"
191 192 193 194 195 196 197 198 199
  image: arm32v7/ubuntu:16.04
  extends: .build_kernel_ubuntu

build_kernel_arm64v8_debug:
  stage: build_kernel
  variables:
    MODE: "all"
  image: arm64v8/ubuntu:16.04
  extends: .build_kernel_ubuntu
200

201
.build_kernel_fedora:
Jaco Hofmann's avatar
Jaco Hofmann committed
202
  stage: build_kernel
Carsten Heinz's avatar
Carsten Heinz committed
203
  retry: 2
204
  dependencies: []
205 206
  variables:
    MODE: "release"
207 208 209 210
  tags:
    - Normal
  script:
    - dnf -y install kernel-devel make gcc gcc-c++ elfutils-libelf-devel
211
    - ./tapasco-init.sh && source tapasco-setup.sh
212
    - for d in `ls /usr/src/kernels/`; do echo "Building for linux headers in $d"; pushd runtime/kernel; make LINUX_HOME="/usr/src/kernels/$d" clean && make LINUX_HOME=/usr/src/kernels/$d -j 1 $MODE; popd; done
213 214
  artifacts:
    paths:
215
      - runtime/kernel/tlkm.ko
216

217 218 219
build_kernel_fedora_30:
  image: fedora:30
  extends: .build_kernel_fedora
220

221 222 223 224 225 226 227 228 229 230 231 232 233 234 235
build_kernel_fedora_31:
  image: fedora:31
  extends: .build_kernel_fedora

build_kernel_fedora_30_debug:
  variables:
    MODE: "all"
  image: fedora:30
  extends: .build_kernel_fedora

build_kernel_fedora_31_debug:
  variables:
    MODE: "all"
  image: fedora:31
  extends: .build_kernel_fedora
236

237
.build_tapasco:
Jaco Hofmann's avatar
Jaco Hofmann committed
238
  stage: build_runtime
Carsten Heinz's avatar
Carsten Heinz committed
239
  retry: 2
240 241
  variables:
    MODE: "release"
242
    TARGET: ""
243
  dependencies: []
244 245 246
  tags:
    - Normal
  script:
247
    - ./tapasco-init.sh && source tapasco-setup.sh
248 249
    - tapasco-build-libs --mode=$MODE --target=$TARGET --skip_driver
    - cd build* && make package
250

251 252
.build_tapasco_fedora:
  before_script:
253
    - dnf -y install kernel-devel make gcc gcc-c++ elfutils-libelf-devel cmake ncurses-devel python3 libatomic git rpm-build
254
  artifacts:
Jaco Hofmann's avatar
Jaco Hofmann committed
255
    paths:
256
      - build/tapasco-*-Linux.rpm
257 258 259 260 261
  extends: .build_tapasco

build_tapasco_fedora_30:
  image: fedora:30
  extends: .build_tapasco_fedora
262

Carsten Heinz's avatar
Carsten Heinz committed
263 264 265 266
build_tapasco_fedora_31:
  image: fedora:31
  extends: .build_tapasco_fedora

267 268 269 270 271 272
build_tapasco_fedora_30_debug:
  variables:
    MODE: "debug"
  image: fedora:30
  extends: .build_tapasco_fedora

Carsten Heinz's avatar
Carsten Heinz committed
273 274 275 276 277 278
build_tapasco_fedora_31_debug:
  variables:
    MODE: "debug"
  image: fedora:31
  extends: .build_tapasco_fedora

279 280
.build_tapasco_ubuntu:
  before_script:
281
    - apt-get -y update && apt-get -y install build-essential linux-headers-generic python3 cmake libelf-dev libncurses-dev git rpm
282
  artifacts:
Jaco Hofmann's avatar
Jaco Hofmann committed
283
    paths:
284
      - build/tapasco-*-Linux.deb
285 286 287 288 289 290 291 292 293 294
  extends: .build_tapasco

build_tapasco_ubuntu_16_04:
  image: ubuntu:xenial
  extends: .build_tapasco_ubuntu

build_tapasco_ubuntu_18_04:
  image: ubuntu:bionic
  extends: .build_tapasco_ubuntu

295
build_tapasco_ubuntu_16_04_cross:
296 297
  variables:
    TARGET: "zynq"
298
  image: ubuntu:xenial
299
  before_script:
300
    - apt-get -y update && apt-get -y install build-essential linux-headers-generic python3 cmake libelf-dev libncurses-dev git rpm gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
301 302
  extends: .build_tapasco_ubuntu

303
build_tapasco_ubuntu_16_04_clang:
304 305
  variables:
    TARGET: "clang"
306
  image: ubuntu:xenial
307
  before_script:
308
    - apt-get -y update && apt-get -y install build-essential linux-headers-generic python3 cmake libelf-dev libncurses-dev git rpm clang
309 310
  extends: .build_tapasco_ubuntu

311 312 313 314 315 316 317 318 319 320 321 322
build_tapasco_ubuntu_16_04_debug:
  variables:
    MODE: "debug"
  image: ubuntu:xenial
  extends: .build_tapasco_ubuntu

build_tapasco_ubuntu_18_04_debug:
  variables:
    MODE: "debug"
  image: ubuntu:bionic
  extends: .build_tapasco_ubuntu

323 324 325 326 327 328 329 330 331 332 333 334
build_tapasco_arm32v7_debug:
  variables:
    MODE: "debug"
  image: arm32v7/ubuntu:16.04
  extends: .build_tapasco_ubuntu

build_tapasco_arm64v8_debug:
  variables:
    MODE: "debug"
  image: arm64v8/ubuntu:16.04
  extends: .build_tapasco_ubuntu

335
build_tapasco_ubuntu_16_04_cross_debug:
336 337 338
  variables:
    MODE: "debug"
    TARGET: "zynq"
339
  image: ubuntu:xenial
340
  before_script:
341
    - apt-get -y update && apt-get -y install build-essential linux-headers-generic python3 cmake libelf-dev libncurses-dev git rpm gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
342 343
  extends: .build_tapasco_ubuntu

Jaco Hofmann's avatar
Jaco Hofmann committed
344
tapasco_compose_ubuntu:
345
  stage: build_hw
346
  retry: 2
347
  variables:
348
    VIVADO_VERSION: "2019.1"
349 350 351 352
    XILINX_VIVADO: "/opt/cad/xilinx/vivado/Vivado/${VIVADO_VERSION}"
    XILINXD_LICENSE_FILE: "/opt/cad/keys/xilinx"
  tags:
    - CAD
353
  image: ubuntu:bionic
354
  dependencies:
355
    - build_scala_tapasco_ubuntu_18_04
356 357
  script:
    - source $XILINX_VIVADO/settings64.sh
358
    - apt-get -y update
Jaco Hofmann's avatar
Jaco Hofmann committed
359
    - apt-get -y install libtinfo5 build-essential
Jaco Hofmann's avatar
Jaco Hofmann committed
360
    - apt -y install ./toolflow/scala/build/distributions/tapasco_2020-04_amd64.deb
361 362
    - /opt/tapasco/tapasco-init-toolflow.sh
    - source tapasco-setup-toolflow.sh
Jaco Hofmann's avatar
Jaco Hofmann committed
363
    - tapasco -v hls counter -p pynq
364
    - tapasco -v --maxThreads 3 compose [counter x 3] @ 100 MHz -p pynq
365 366 367

.tapasco_compose:
  stage: build_hw
Carsten Heinz's avatar
Carsten Heinz committed
368
  retry: 2
369
  variables:
370
    VIVADO_VERSION: "2019.1"
371 372
    XILINX_VIVADO: "/opt/cad/xilinx/vivado/Vivado/${VIVADO_VERSION}"
    XILINXD_LICENSE_FILE: "/opt/cad/keys/xilinx"
373
    PLATFORM: "pynq"
374 375
  tags:
    - CAD
376
    - High
377
  image: fedora:30
378
  dependencies:
379
    - build_scala_tapasco_fedora_30
380
  before_script:
381
    - dnf -y install which unzip git zip tar findutils libX11 gcc gcc-c++ python3
382 383 384 385 386
    - ln -s /lib64/libtinfo.so.6 /lib64/libtinfo.so.5
  script:
    - source $XILINX_VIVADO/settings64.sh
    - which vivado
    - which vivado_hls
Jaco Hofmann's avatar
Jaco Hofmann committed
387
    - dnf -y install toolflow/scala/build/distributions/tapasco-2020-04.x86_64.rpm
388 389 390
    - /opt/tapasco/tapasco-init-toolflow.sh
    - source tapasco-setup-toolflow.sh
    - tapasco hls counter -p $PLATFORM --skipEvaluation
391
    - tapasco -v --maxThreads 3 compose [counter x 3] @ 100 MHz -p $PLATFORM
Carsten Heinz's avatar
Carsten Heinz committed
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411

tapasco_compose_17_4:
  variables:
    VIVADO_VERSION: "2017.4"
  extends: .tapasco_compose

tapasco_compose_18_1:
  variables:
    VIVADO_VERSION: "2018.1"
  extends: .tapasco_compose

tapasco_compose_18_2:
  variables:
    VIVADO_VERSION: "2018.2"
  extends: .tapasco_compose

tapasco_compose_18_3:
  variables:
    VIVADO_VERSION: "2018.3"
  extends: .tapasco_compose
412

Carsten Heinz's avatar
Carsten Heinz committed
413 414 415 416 417
tapasco_compose_19_1:
  variables:
    VIVADO_VERSION: "2019.1"
  extends: .tapasco_compose

Carsten Heinz's avatar
Carsten Heinz committed
418 419 420 421 422
tapasco_compose_19_2:
  variables:
    VIVADO_VERSION: "2019.2"
  extends: .tapasco_compose

423 424 425 426 427
tapasco_compose_pcie:
  variables:
    VIVADO_VERSION: "2018.3"
    PLATFORM: "vc709"
  extends: .tapasco_compose