.gitlab-ci.yml 2.46 KB
Newer Older
1 2
# This build file uses template features from YAML so it is generic enough for
# any Bob project. Don't modify it unless you know what you're doing.
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
3

4 5 6
# Definition of global variables (all stages)
variables:
  CONDA_ROOT: "${CI_PROJECT_DIR}/miniconda"
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
7

8 9

# Definition of our build pipeline order
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
10 11
stages:
  - build
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
12
  - deploy
13
  - pypi
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
14 15


16
# Build targets
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
17 18 19
.build_template: &build_job
  stage: build
  before_script:
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
20 21 22
    - mkdir _ci
    - curl --silent "https://gitlab.idiap.ch/bob/bob.admin/raw/master/gitlab/install.sh" > _ci/install.sh
    - chmod 755 _ci/install.sh
23
    - ./_ci/install.sh _ci master #installs ci support scripts
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
24
    - ./_ci/before_build.sh
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
25
  script:
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
26
    - ./_ci/build.sh
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
27
  after_script:
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
28
    - ./_ci/after_build.sh
29 30 31 32 33 34 35 36 37 38 39 40
  cache: &build_caches
    paths:
      - miniconda.sh
      - ${CONDA_ROOT}/pkgs/*.tar.bz2
      - ${CONDA_ROOT}/pkgs/urls.txt


.build_linux_template: &linux_build_job
  <<: *build_job
  tags:
    - docker
  image: continuumio/conda-concourse-ci
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
41
  artifacts:
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
42
    expire_in: 1 week
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
43
    paths:
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
44
      - _ci/
45 46 47 48
      - ${CONDA_ROOT}/conda-bld/linux-64/*.tar.bz2
  cache:
    <<: *build_caches
    key: "linux-cache"
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
49 50


51 52 53 54 55 56 57 58 59 60 61 62
.build_macosx_template: &macosx_build_job
  <<: *build_job
  tags:
    - macosx
  artifacts:
    expire_in: 1 week
    paths:
      - _ci/
      - ${CONDA_ROOT}/conda-bld/osx-64/*.tar.bz2
  cache:
    <<: *build_caches
    key: "macosx-cache"
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
63 64


65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
build_linux_36:
  <<: *linux_build_job
  variables:
    PYTHON_VERSION: "3.6"
    BUILD_EGG: "true"
  artifacts:
    expire_in: 1 week
    paths:
      - _ci/
      - dist/*.zip
      - sphinx
      - ${CONDA_ROOT}/conda-bld/linux-64/*.tar.bz2


build_macosx_36:
  <<: *macosx_build_job
  variables:
    PYTHON_VERSION: "3.6"
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
83 84


85
# Deploy targets
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
86 87 88
.deploy_template: &deploy_job
  stage: deploy
  before_script:
89
    - ./_ci/install.sh _ci master #updates ci support scripts
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
90
  script:
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
91
    - ./_ci/deploy.sh
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
92
  dependencies:
93 94
    - build_linux_36
    - build_macosx_36
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
95
  tags:
96
    - deployer
Pavel KORSHUNOV's avatar
Pavel KORSHUNOV committed
97 98


99
deploy_beta:
100
  <<: *deploy_job
101 102 103
  environment: beta
  only:
    - master
104 105


106 107 108 109 110 111 112
deploy_stable:
  <<: *deploy_job
  environment: stable
  only:
    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
  except:
    - branches
113 114


115 116 117 118 119 120 121 122 123 124 125
pypi:
  stage: pypi
  environment: pypi
  only:
    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
  except:
    - branches
  before_script:
    - ./_ci/install.sh _ci master #updates ci support scripts
  script:
    - ./_ci/pypi.sh
126
  dependencies:
127
    - build_linux_36
128
  tags:
129
    - deployer