Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 4.88 KiB
image: alpine:3.11

stages:
 - build
 - test
 - notify

.template:only:merge: &only-merge
  only:
    - merge_requests

.template:only:master: &only-master
  only:
    refs:
      - master

.template:only:tag: &only-tag
  only:
    - /^v.*$/
  except:
    - branches

#######################################################################################################################
# build + test

.template:build:
  dependencies: []
  stage: build
  tags:
    - altbuilder
  script:
    - mkdir -p build && cd build
    - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -GNinja ..
    - ninja
    - DESTDIR="." ninja install
  artifacts:
    paths:
      - build/
    expire_in: 1 day

.template:test:
  dependencies: []
  stage: test
  tags:
    - altbuilder
  script:
    - cd build
    - ctest . --output-on-failure -j $(grep -c processor /proc/cpuinfo)

# -----------------------------------------------------------------------------
# .config:alpine: &distro_alpine
#   <<: *only-merge
#   image: alpine:3.11
#
# 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
# -----------------------------------------------------------------------------

.config:builder: &distro_builder