Newer
Older
#######################################################################################################################
#######################################################################################################################
#######################################################################################################################
# build + test
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro.yml
script:
- cd build
- ctest . --output-on-failure -j $(grep -c processor /proc/cpuinfo)
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_alpine.yml
# -----------------------------------------------------------------------------
build:alpine:
<<: *distro_alpine
extends: .template:build
before_script:
- apk add --no-cache bash build-base cmake ninja python3 libexecinfo-dev libxml2-dev tclap-dev readline-dev qt5-qtbase-dev graphviz-dev jsoncpp-dev
test:alpine:
<<: *distro_alpine
extends: .template:test
dependencies:
- build:alpine
before_script:
- apk add --no-cache bash bc coreutils python3 cmake libexecinfo libxml2 tclap readline qt5-qtbase qt5-qtbase-x11 graphviz jsoncpp
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_arch.yml
.config:archlinux: &distro_archlinux
image: archlinux/base
only:
- merge_requests
# -----------------------------------------------------------------------------
build:archlinux:
<<: *distro_archlinux
extends: .template:build
before_script:
- pacman -Syu --noconfirm base-devel cmake ninja python libxml2 tclap readline qt5-base graphviz jsoncpp
# - pacman -Syu --noconfirm binutils && strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5 # qt hack
test:archlinux:
<<: *distro_archlinux
extends: .template:test
dependencies:
- build:archlinux
- pacman -Syu --noconfirm base-devel bash bc coreutils cmake ninja python libxml2 tclap readline qt5-base graphviz jsoncpp
# - pacman -Syu --noconfirm binutils && strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5 # qt hack
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_builder.yml
.config:builder: &distro_builder
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/ci-docker-images/alt-builder:latest
except:
- tags
.build:builder:
<<: *distro_builder
extends: .template:build
.test:builder:
<<: *distro_builder
extends: .template:test
# -----------------------------------------------------------------------------
test:builder:gcc:
extends: .test:builder
dependencies:
- build:builder:gcc
test:builder:clang:
extends: .test:builder
dependencies:
- build:builder:clang
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_debian.yml
.config:debian: &distro_debian
image: amd64/debian:testing-slim
only:
- merge_requests
# -----------------------------------------------------------------------------
build:debian:
<<: *distro_debian
extends: .template:build
- apt-get update
- apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
test:debian:
<<: *distro_debian
extends: .template:test
dependencies:
- build:debian
- apt-get update
- apt-get install -y build-essential bash cmake libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_opensuse.yml
.config:opensuse:leap: &distro_opensuse-leap
image: opensuse/leap:latest
only:
- merge_requests
# -----------------------------------------------------------------------------
build:opensuse:leap:
<<: *distro_opensuse-leap
extends: .template:build
Tomáš Pecka
committed
before_script:
- zypper -n install python3 cmake gcc-c++ bash ninja libxml2-devel tclap readline-devel libQt5Widgets-devel libQt5Xml-devel graphviz-devel jsoncpp-devel
Tomáš Pecka
committed
test:opensuse:leap:
<<: *distro_opensuse-leap
extends: .template:test
dependencies:
- build:opensuse:leap
before_script:
- zypper -n install bash cmake libxml2 readline libQt5Widgets5 libQt5Xml5 graphviz libjsoncpp19
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_ubuntu-lts.yml
.config:ubuntu:lts: &distro_ubuntu-lts
image: ubuntu:latest
only:
- merge_requests
# -----------------------------------------------------------------------------
Tomáš Pecka
committed
build:ubuntu:lts:
Tomáš Pecka
committed
before_script:
- apt-get update
- apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
test:ubuntu:lts:
<<: *distro_ubuntu-lts
extends: .template:test
dependencies:
- build:ubuntu:lts
before_script:
- apt-get update
- apt-get install -y build-essential bash cmake libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_ubuntu-rolling.yml
.config:ubuntu:rolling: &distro_ubuntu-rolling
image: ubuntu:rolling
only:
- merge_requests
# -----------------------------------------------------------------------------
Tomáš Pecka
committed
build:ubuntu:rolling:
<<: *distro_ubuntu-rolling
extends: .template:build
before_script:
- apt-get update
- apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
test:ubuntu:rolling:
<<: *distro_ubuntu-rolling
extends: .template:test
Tomáš Pecka
committed
before_script:
- apt-get update
- apt-get install -y build-essential bash cmake libxml2 libreadline8 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
dependencies:
- build:ubuntu:rolling
Tomáš Pecka
committed
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# doc.yml
doc:doc:
stage: build
before_script:
- apk add --no-cache doxygen graphviz
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# static-analysis.yml
.template:static-analysis:
stage: build
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/ci-docker-images/alt-builder:latest
before_script:
- mkdir -p build && pushd build
- ../CMake/generate.py -wm
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. -GNinja
- popd
allow_failure: true # TODO: Remove
dependencies: []
only:
- merge_requests
- branches
except:
- tags
# -----------------------------------------------------------------------------
static-analysis:cppcheck:
extends: .template:static-analysis
- cppcheck -q --enable=all --project=build/compile_commands.json --suppress="*:*/contrib/*" --error-exitcode=1
static-analysis:clang-tidy:
extends: .template:static-analysis
script:
- jq ".[].file" build/compile_commands.json | tr -d "\"" | grep -v "test-src" | xargs -n1 -P$(grep -c processor /proc/cpuinfo) clang-tidy-8 -p build/
#######################################################################################################################
#######################################################################################################################
#######################################################################################################################
# package + release
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# release.yml
.template:only:snapshot: &release_snapshot
.template:only:tag: &release_stable
only:
- tags
- /^v.*$/
.template:package:
stage: package
tags:
- altbuilder
- LINUX=$(echo "$CI_JOB_NAME" | cut -d":" -f2)
- MODE=$(echo "$CI_JOB_NAME" | cut -d":" -f4)
- export DISTRIBUTION=$(echo "$CI_JOB_NAME" | cut -d":" -f3)
- if [[ $LINUX == "ubuntu" ]]; then LINUX="debian"; fi
- ./extra/scripts/CD/packaging/package.sh $MODE $LINUX package .
.docker: &docker
image: docker:dind
cache: {} # disable
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
- apk add docker bash
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker info
.package:docker:
<<: *docker
extends: .template:package
artifacts:
paths:
- images.tar
expire_in: 1 day
package:docker::snapshot:
<<: *release_snapshot
extends: .package:docker
package:docker::stable:
<<: *release_stable
extends: .package:docker
.package:sources:
image: alpine:latest
extends: .template:package
before_script:
- apk add bash
artifacts:
paths:
- "*.tar.gz*"
expire_in: 1 day
package:sources::snapshot:
<<: *release_snapshot
extends: .package:sources
package:sources::stable:
<<: *release_stable
extends: .package:sources
image: archlinux/base
extends: .template:package
artifacts:
paths:
- "*.pkg.tar.xz*"
expire_in: 1 day
variables:
PACKAGER: "Tomáš Pecka <peckato1@fit.cvut.cz>"
package:archlinux::snapshot:
<<: *release_snapshot
Tomáš Pecka
committed
package:archlinux::stable:
<<: *release_stable
.package:debian:
- "*.deb"
- "*.ddeb"
- "*.changes"
- "*.buildinfo"
variables:
LOGNAME: "peckato1"
DEBFULLNAME: "Tomáš Pecka"
DEBEMAIL: "peckato1@fit.cvut.cz"
# ---------------------------
.package:debian:buster:
image: amd64/debian:buster
extends: .package:debian
.package:debian:bullseye:
image: amd64/debian:bullseye
extends: .package:debian
package:debian:buster:snapshot:
<<: *release_snapshot
extends: .package:debian:buster
package:debian:buster:stable:
<<: *release_stable
extends: .package:debian:buster
package:debian:bullseye:snapshot:
<<: *release_snapshot
extends: .package:debian:bullseye
package:debian:bullseye:stable:
<<: *release_stable
extends: .package:debian:bullseye
# ---------------------------
.package:ubuntu:bionic:
image: ubuntu:bionic
extends: .package:debian
.package:ubuntu:cosmic:
image: ubuntu:bionic
extends: .package:debian
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
.package:ubuntu:disco:
image: ubuntu:bionic
extends: .package:debian
package:ubuntu:bionic:snapshot:
<<: *release_snapshot
extends: .package:ubuntu:bionic
package:ubuntu:bionic:stable:
<<: *release_stable
extends: .package:ubuntu:bionic
package:ubuntu:cosmic:snapshot:
<<: *release_snapshot
extends: .package:ubuntu:cosmic
package:ubuntu:cosmic:stable:
<<: *release_stable
extends: .package:ubuntu:cosmic
package:ubuntu:disco:snapshot:
<<: *release_snapshot
extends: .package:ubuntu:disco
package:ubuntu:disco:stable:
<<: *release_stable
extends: .package:ubuntu:disco
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# release.yml
.template:release:
stage: release
dependencies: []
tags:
- altvm
script:
- LINUX=$(echo "$CI_JOB_NAME" | cut -d":" -f2)
- MODE=$(echo "$CI_JOB_NAME" | cut -d":" -f4)
- export DISTRIBUTION=$(echo "$CI_JOB_NAME" | cut -d":" -f3)
- if [[ $LINUX == "ubuntu" ]]; then LINUX="debian"; fi
- extra/scripts/CD/packaging/package.sh $MODE $LINUX deploy .
.release:docker:
tags:
- altbuilder
environment:
name: docker-nightly
url: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/container_registry
release:docker::snapshot:
<<: *release_snapshot
extends: .release:docker
- package:docker::snapshot
release:docker::stable:
<<: *release_stable
extends: .release:docker
dependencies:
- package:docker::stable
.release:archlinux:
name: archlinux
url: https://repository.alt.pecka.me/archlinux/
release:archlinux::snapshot:
<<: *release_snapshot
extends: .release:archlinux
- package:archlinux::snapshot
release:archlinux:release:
<<: *release_stable
extends: .release:archlinux
dependencies:
- package:archlinux::stable
.release:debian:
extends: .template:release
environment:
name: debian
url: https://repository.alt.pecka.me/debian/
release:debian:buster:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:debian:buster:snapshot
release:debian:buster:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:debian:buster:stable
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
release:debian:bullseye:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:debian:bullseye:snapshot
release:debian:bullseye:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:debian:bullseye:stable
release:ubuntu:bionic:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:ubuntu:bionic:snapshot
release:ubuntu:bionic:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:ubuntu:bionic:stable
release:ubuntu:cosmic:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:ubuntu:cosmic:snapshot
release:ubuntu:cosmic:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:ubuntu:cosmic:stable
release:ubuntu:disco:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:ubuntu:disco:snapshot
release:ubuntu:disco:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:ubuntu:disco:stable
extends: .template:release
environment:
name: sources
url: https://repository.alt.pecka.me/sources/
release:sources::snapshot:
<<: *release_snapshot
extends: .release:sources
dependencies:
- package:sources::snapshot
release:sources::stable:
<<: *release_stable
extends: .release:sources
dependencies:
- package:sources::stable
#######################################################################################################################
#######################################################################################################################
#######################################################################################################################
# notify
only:
refs:
- master
# -----------------------------------------------------------------------------
- curl -X POST -F token="$TOKEN_TRIGGER_PYALIB" -F ref=master https://gitlab.fit.cvut.cz/api/v4/projects/11497/trigger/pipeline
notify:website:
extends: .template:notify
script:
- curl -X POST -F token="$TOKEN_TRIGGER_WEBSITE" -F ref=master https://gitlab.fit.cvut.cz/api/v4/projects/15509/trigger/pipeline