Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 2.97 KiB
# You can override the included template(s) by including variable overrides
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
# Note that environment variables can be set in several places
# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence

stages:
  - build
  - test

sast:
  stage: test
include:
- template: Security/SAST.gitlab-ci.yml

image: ubuntu:focal

linux:build:
  only:
    - main
    - merge_requests
  
  stage: build
  tags:
    - docker

  script:
    - DEBIAN_FRONTEND=noninteractive apt update && apt install -y g++ libmsgpack-dev liburiparser-dev libgnutls28-dev snap && snapd install --classic cmake
    - mkdir build && cd build
    - cmake $CI_PROJECT_DIR -GNinja -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -DUSE_CPPCHECK=FALSE -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=DEB
    - ninja

  cache: # use artifacts instead if multiple runners available
    key: $CI_COMMIT_SHORT_SHA
    paths:
      - build/

linux:test:
  only:
    - main
    - merge_requests

  stage: test
  tags:
    - docker
  
  needs: ["linux:build"]
  script:
    - cd build
    - ctest -V --output-junit report.xml

  artifacts:
    when: always
    reports:
      junit: build/report.xml

  cache:
    key: $CI_COMMIT_SHORT_SHA
    paths:
      - build/

### Windows

#windows:build:
#  only:
#    - main
#    - merge_requests