Skip to content
Snippets Groups Projects
.gitlab-ci.yaml 7.69 KiB
# https://hub.docker.com/r/library/python/tags/
image: "python:3.7"

stages:
- build
- test
- data-supply
- deploy
- e2e-test
- post-deploy

variables:
  GIT_DEPTH: 1
  LC_ALL: "C"
  GIT_STRATEGY: clone
  GIT_SUBMODULE_STRATEGY: recursive
  GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_COMMIT_REF_SLUG/$CI_CONCURRENT_ID/project-name

  HIVEMIND_SOURCE_HIVED_URL: $HIVEMIND_SOURCE_HIVED_URL
  HIVEMIND_DB_NAME: "hive_$CI_COMMIT_REF_SLUG"
  HIVEMIND_HTTP_PORT: $((HIVEMIND_HTTP_PORT + CI_CONCURRENT_ID))
  # Configured at gitlab repository settings side
  POSTGRES_USER: $HIVEMIND_POSTGRES_USER
  POSTGRES_PASSWORD: $HIVEMIND_POSTGRES_PASSWORD
  POSTGRES_HOST_AUTH_METHOD: trust
  # official way to provide password to psql: http://www.postgresql.org/docs/9.3/static/libpq-envars.html
  PGPASSWORD: $HIVEMIND_POSTGRES_PASSWORD

before_script:
  - pwd
  - echo "CI_NODE_TOTAL is $CI_NODE_TOTAL"
  - echo "CI_NODE_INDEX is $CI_NODE_INDEX"
  - echo "CI_CONCURRENT_ID is $CI_CONCURRENT_ID"
  - echo "CI_COMMIT_REF_SLUG is $CI_COMMIT_REF_SLUG"

hivemind_build:
  stage: build
  script:
    - pip3 install --user --upgrade pip setuptools
    - git fetch --tags
    - git tag -f ci_implicit_tag
    - echo $PYTHONUSERBASE
    - "python3 setup.py bdist_egg"
    - ls -l dist/*
  artifacts:
    paths:
      - dist/
    expire_in: 1 week

  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: always
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH == "develop"'
      when: always
    - when: always

  tags:
     - hivemind

hivemind_sync:
  stage: data-supply

  environment:
      name: "hive sync built from branch $CI_COMMIT_REF_NAME targeting database $HIVEMIND_DB_NAME"

  needs:
    - job: hivemind_build
      artifacts: true
  variables:
    GIT_STRATEGY: none