.gitlab-ci.yml 2.66 KB
Newer Older
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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.
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
3

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

Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
8
9

# Definition of our build pipeline order
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
10
11
12
stages:
  - build
  - deploy
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
13
  - pypi
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
14
15


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
16
# Build targets
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
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
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
23
    - ./_ci/install.sh _ci master #installs ci support scripts
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
24
25
26
27
28
    - ./_ci/before_build.sh
  script:
    - ./_ci/build.sh
  after_script:
    - ./_ci/after_build.sh
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
29
  cache: &build_caches
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
30
    paths:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
31
32
33
      - miniconda.sh
      - ${CONDA_ROOT}/pkgs/*.tar.bz2
      - ${CONDA_ROOT}/pkgs/urls.txt
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
34
35


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
36
.build_linux_template: &linux_build_job
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
37
38
  <<: *build_job
  tags:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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"
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
49
50


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
51
.build_macosx_template: &macosx_build_job
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
52
53
  <<: *build_job
  tags:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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"
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
63
64


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
65
66
67
68
build_linux_27:
  <<: *linux_build_job
  variables:
    PYTHON_VERSION: "2.7"
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
69
70
71


build_linux_36:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
72
73
  <<: *linux_build_job
  variables:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
74
    PYTHON_VERSION: "3.6"
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
83
84
85


build_macosx_27:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
86
87
  <<: *macosx_build_job
  variables:
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
88
89
    PYTHON_VERSION: "2.7"

Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
104
  dependencies:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
105
106
    - build_linux_27
    - build_linux_36
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
107
    - build_macosx_27
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
108
    - build_macosx_36
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
109
  tags:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
110
    - deployer
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
111
112


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
113
114
115
116
117
deploy_beta:
  <<: *deploy_job
  environment: beta
  only:
    - master
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
118
119


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
127
128


Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira 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
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
140
  dependencies:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
141
    - build_linux_36
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
142
  tags:
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
143
    - deployer