.gitlab-ci.yml 2.66 KB
Newer Older
David GEISSBUHLER committed
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.
3

David GEISSBUHLER committed
4 5 6
# Definition of global variables (all stages)
variables:
  CONDA_ROOT: "${CI_PROJECT_DIR}/miniconda"
7

David GEISSBUHLER committed
8 9

# Definition of our build pipeline order
10 11 12
stages:
  - build
  - deploy
David GEISSBUHLER committed
13
  - pypi
14 15


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


David GEISSBUHLER committed
36
.build_linux_template: &linux_build_job
37 38
  <<: *build_job
  tags:
David GEISSBUHLER committed
39 40 41 42 43 44 45 46 47 48
    - docker
  image: continuumio/conda-concourse-ci
  artifacts:
    expire_in: 1 week
    paths:
      - _ci/
      - ${CONDA_ROOT}/conda-bld/linux-64/*.tar.bz2
  cache:
    <<: *build_caches
    key: "linux-cache"
49 50


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


David GEISSBUHLER committed
65 66 67 68
build_linux_27:
  <<: *linux_build_job
  variables:
    PYTHON_VERSION: "2.7"
69 70


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


85
build_macosx_27:
David GEISSBUHLER committed
86 87
  <<: *macosx_build_job
  variables:
88 89
    PYTHON_VERSION: "2.7"

David GEISSBUHLER committed
90 91 92 93 94 95 96 97 98 99 100 101 102 103

build_macosx_36:
  <<: *macosx_build_job
  variables:
    PYTHON_VERSION: "3.6"


# Deploy targets
.deploy_template: &deploy_job
  stage: deploy
  before_script:
    - ./_ci/install.sh _ci master #updates ci support scripts
  script:
    - ./_ci/deploy.sh
104
  dependencies:
David GEISSBUHLER committed
105 106
    - build_linux_27
    - build_linux_36
107
    - build_macosx_27
David GEISSBUHLER committed
108
    - build_macosx_36
109
  tags:
David GEISSBUHLER committed
110
    - deployer
111 112


David GEISSBUHLER committed
113 114 115 116 117
deploy_beta:
  <<: *deploy_job
  environment: beta
  only:
    - master
118 119


David GEISSBUHLER committed
120 121 122 123 124 125 126
deploy_stable:
  <<: *deploy_job
  environment: stable
  only:
    - /^v\d+\.\d+\.\d+([abc]\d*)?$/  # PEP-440 compliant version (tags)
  except:
    - branches
127 128


David GEISSBUHLER committed
129 130 131 132 133 134 135 136 137 138 139
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
140
  dependencies:
David GEISSBUHLER committed
141
    - build_linux_36
142
  tags:
David GEISSBUHLER committed
143
    - deployer