.gitlab-ci.yml 5.52 KB
Newer Older
Guilhem Bonnefille's avatar
Guilhem Bonnefille committed
1
2
3
4
5
# WARNING!
# OTB uses Git-LFS to store the (large) tests data.
# Git-LFS is mostly transparent for the user and recent versions
# are able to use Git-LFS quite efficiently.
# But Git fails to manage efficiently numerous LFS data.
Guilhem Bonnefille's avatar
Guilhem Bonnefille committed
6
# We have to use directly git-lfs wrapping commands to have an
Guilhem Bonnefille's avatar
Guilhem Bonnefille committed
7
# efficient cloning step.
8
# Furthermore, Git-LFS and Gitlab sufer a bug preventing usage of
Guilhem Bonnefille's avatar
Guilhem Bonnefille committed
9
10
# GIT_STRATEGY=fetch (https://gitlab.com/gitlab-org/gitlab-runner/issues/3318)

Sébastien Dinot's avatar
Sébastien Dinot committed
11
variables:
12
  BUILD_IMAGE_REGISTRY: $CI_REGISTRY/gbonnefille/otb-build-env
Sébastien Dinot's avatar
Sébastien Dinot committed
13
  DOCKER_DRIVER: overlay2
14
  GIT_DEPTH: "3"
Guilhem Bonnefille's avatar
Guilhem Bonnefille committed
15
  # Disable automatic checkout to let us fetch LFS before
16
  GIT_CHECKOUT: "false"
Guilhem Bonnefille's avatar
Guilhem Bonnefille committed
17
  # The fetch strategy fails with LFS and GitLab
18
  GIT_STRATEGY: "clone"
19

20
21
22
23
24
25
26
27
28
29
#~ before_script:
  #~ # make sure LFS hooks are installed
  #~ - git lfs install
  #~ # Provision efficiently the local LFS cache before checkout
  #~ - git lfs fetch origin $CI_COMMIT_SHA
  #~ # Checkout the expected branch
  #~ - git checkout $CI_COMMIT_REF_NAME
#~ 
#~ after_script:
  #~ - python3 CI/cdash_handler.py $CI_COMMIT_SHA $CI_PROJECT_ID $CI_PROJECT_DIR $K8S_SECRET_CDASH
30

Sébastien Dinot's avatar
Sébastien Dinot committed
31
stages:
Guillaume Pasero's avatar
Guillaume Pasero committed
32
  - precheck
aregimbe's avatar
aregimbe committed
33
  - prepare
Sébastien Dinot's avatar
Sébastien Dinot committed
34
35
  - build

36
.general:
Sébastien Dinot's avatar
Sébastien Dinot committed
37
38
39
40
41
42
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#~ fast-build:
  #~ extends: .general
  #~ only: [merge_requests, branches]
  #~ stage: precheck
  #~ image: $CI_REGISTRY/gpasero/otb/otb-install-ubuntu-native
  #~ before_script:
    #~ - export GIT_LFS_SKIP_SMUDGE=1
    #~ - git checkout $CI_COMMIT_REF_NAME
    #~ - python3 CI/check_twin_pipelines.py
  #~ script:
    #~ - ctest -V -S CI/main_ci.cmake -DIMAGE_NAME:string=ubuntu-18.04-fast
    #~ - ccache -s
#~ 
#~ .common-build:
  #~ extends: .general
  #~ only: [merge_requests]
  #~ stage: build
#~ 
#~ debian-build:
  #~ extends: .common-build
  #~ image: $BUILD_IMAGE_REGISTRY/otb-debian-native:unstable
  #~ script:
    #~ - xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_ci.cmake -DIMAGE_NAME:string=debian-unstable-gcc
#~ 
#~ ubuntu-llvm:
  #~ extends: .common-build
  #~ image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-native:18.04
  #~ script:
    #~ - xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_ci.cmake -DIMAGE_NAME:string=ubuntu-18.04-llvm
  #~ artifacts:
    #~ paths:
      #~ - build/CookBook-*-html.tar.gz
      #~ - build/Documentation/Cookbook/latex/CookBook-*.pdf
      #~ - build/Documentation/Doxygen/OTB-Doxygen-*.tar.bz2
#~ 
#~ .common-prepare:
  #~ extends: .general
  #~ only: [merge_requests]
  #~ stage: prepare
  #~ before_script:
#~ # This override the previous before_script
    #~ - git checkout $CI_COMMIT_REF_NAME
#~ # We are now doing the git-lfs install
#~ # This is done after the checkout so we avoid downloading Data
#~ # But we need it to upload the archive
    #~ - git-lfs install
    #~ - git config --global user.email "otbbot@orfeo-toolbox.org"
    #~ - git config --global user.name "otbbot"
    #~ - eval $(ssh-agent -s)
    #~ - ssh-add <(echo "$K8S_SECRET_SSH")
#~ # This is for debug, we are checking the owner of the ssh key
    #~ - ssh -o StrictHostKeyChecking=no -T git@gitlab.orfeo-toolbox.org
  #~ after_script:
    #~ - echo "Nothing to do for after_script"
  #~ artifacts:
    #~ expire_in: 24 hrs
    #~ paths:
      #~ # This recovers logs from superbuild build
      #~ - build/*/*/*/*.log
      #~ - sb_branch.txt
#~ 
#~ ubuntu-superbuild-prepare:
  #~ extends: .common-prepare
  #~ image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:18.04
  #~ script:
    #~ - ctest -V -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=otb-ubuntu-superbuild-base
#~ 
#~ centos-superbuild-prepare:
  #~ extends: .common-prepare
  #~ image: $BUILD_IMAGE_REGISTRY/otb-centos-superbuild-base:6.6
  #~ script:
    #~ - ctest -V -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=otb-centos-superbuild-base
#~ 
#~ ubuntu-superbuild-build:
  #~ extends: .common-build
  #~ image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:18.04
  #~ script:
    #~ - xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=otb-ubuntu-superbuild-base
  #~ dependencies:
    #~ - ubuntu-superbuild-prepare
#~ 
#~ centos-superbuild-build:
  #~ extends: .common-build
  #~ image: $BUILD_IMAGE_REGISTRY/otb-centos-superbuild-base:6.6
  #~ script:
    #~ - xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=otb-centos-superbuild-base
  #~ dependencies:
    #~ - centos-superbuild-prepare
Guillaume Pasero's avatar
Guillaume Pasero committed
131

132
windows-prepare:
133
  extends: .general
134
135
136
  # only: [merge_requests]
  tags:
    - windows
aregimbe's avatar
aregimbe committed
137
138
139
  stage: prepare
  before_script:
# This override the previous before_script
140
141
    - git lfs install
    - set GIT_LFS_SKIP_SMUDGE=1
142
    - git checkout %CI_COMMIT_REF_NAME%
143
    - set GIT_LFS_SKIP_SMUDGE=0
aregimbe's avatar
aregimbe committed
144
145
    - git config --global user.email "otbbot@orfeo-toolbox.org"
    - git config --global user.name "otbbot"
146
147
148
149
150
    #~ - set PATH=%PATH%;C:\tools\Git\usr\bin
    #~ - start-ssh-agent
    #~ - echo %K8S_SECRET_SSH% > key.txt
    #~ - ssh-add key.txt
    #~ - del key.txt
aregimbe's avatar
aregimbe committed
151
# This is for debug, we are checking the owner of the ssh key
152
    #~ - ssh -o StrictHostKeyChecking=no -T git@gitlab.orfeo-toolbox.org
153
    - call ./CI/dev_env.bat x64
154
    - echo Now start clcache server
155
156
157
    - start /b clcache-server.exe
  script:
    - ctest -V -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=otb-windows-superbuild-base
158
  after_script:
159
    - taskkill /f /im clcache-server.exe
aregimbe's avatar
aregimbe committed
160
161
162
163
164
  artifacts:
    expire_in: 24 hrs
    paths:
      # This recovers logs from superbuild build
      - build/*/*/*/*.log
165
      - sb_branch.txt