include:
  #- local: 'ci_templates/.cic-template.yml' #kaniko build templates
  # these includes are app specific unit tests
  - local: 'apps/cic-eth/.gitlab-ci.yml'
  - local: 'apps/cic-ussd/.gitlab-ci.yml'
  - local: 'apps/cic-notify/.gitlab-ci.yml'
  - local: 'apps/cic-meta/.gitlab-ci.yml'
  - local: 'apps/cic-cache/.gitlab-ci.yml'
    #- local: 'apps/contract-migration/.gitlab-ci.yml'
    #- local: 'apps/data-seeding/.gitlab-ci.yml'

stages:
  - version
  - build
  - test
  - deploy

image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/docker-with-compose:latest

variables:
  DOCKER_BUILDKIT: "1"
  COMPOSE_DOCKER_CLI_BUILD: "1"
  CI_DEBUG_TRACE: "true"
  SEMVERBOT_VERSION: "0.2.0"

  #before_script:
  #  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

version:
  #image: python:3.7-stretch
  image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-version:b01318ae 
  stage: version
  tags:
    - integration
  script:
    - mkdir -p ~/.ssh && chmod 700 ~/.ssh
    - ssh-keyscan gitlab.com >> ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - git remote set-url origin git@gitlab.com:grassrootseconomics/cic-internal-integration.git
    - export TAG=$(sbot predict version -m auto)
    - |
      if [[ -z $TAG ]]
      then
        echo "tag could not be set $@"
        exit 1
      fi
    - echo $TAG > version
    - git tag -a v$TAG -m "ci tagged"
    - git push origin v$TAG
  artifacts:
    paths:
      - version
  rules:
  - if: $CI_COMMIT_REF_PROTECTED == "true"
    when: always
  - if: $CI_COMMIT_REF_NAME == "master"
    when: always

# runs on protected branches and pushes to repo
build-push:
  stage: build
  tags:
    - integration
  #script:
  #  - TAG=$CI_Cbefore_script:
  before_script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
  script:
    - TAG=latest ./scripts/build-push.sh
    - TAG=$(cat ./version) ./scripts/build-push.sh
  rules:
  - if: $CI_COMMIT_REF_PROTECTED == "true"
    when: always
  - if: $CI_COMMIT_REF_NAME == "master"
    when: always

deploy-dev:
  stage: deploy
  trigger: grassrootseconomics/devops
  when: manual
