include:
  - template: Code-Quality.gitlab-ci.yml
  - template: Dependency-Scanning.gitlab-ci.yml
  - template: License-Scanning.gitlab-ci.yml
  - template: SAST.gitlab-ci.yml
  - template: Secret-Detection.gitlab-ci.yml

stages:
  - build
  - test

build:
  stage: build
  script:
    - rm -rf .git/modules/docs .git/modules/libraries/fc ./docs ./libraries/fc
    - git submodule sync
    - git submodule update --init --recursive
    - rm -rf build
    - mkdir build
    - cd build
    - cmake -DCMAKE_BUILD_TYPE=Release ..
    - make -j4
  artifacts:
    untracked: true
    paths:
      - build/libraries/
      - build/programs/
      - build/tests/
  tags:
    - builder

dockerize:
  stage: build
  variables:
    IMAGE: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA
  before_script:
    - docker info
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    - docker build -t $IMAGE .
    - docker push $IMAGE
  tags:
    - builder
  when: manual
  timeout: 3h

test:
  stage: test
  dependencies:
    - build
  script:
    - ./build/tests/betting_test --log_level=message
    - ./build/tests/chain_test --log_level=message
    - ./build/tests/cli_test --log_level=message
  tags:
    - builder
