.gitlab-industrial-ci-kinetic-with-rosinstall.yml 7.11 KB
Newer Older
1
image: tecnalia-docker-dev.artifact.tecnalia.com/docker:git
2
3

variables:
4
5
  TMPDIR: /builds/${CI_PROJECT_NAMESPACE}
  GIT_LFS_SKIP_SMUDGE: 1 # Avoid fetching the files from LFS when doing git fetch
6
7

services:
8
  - name: tecnalia-docker-dev.artifact.tecnalia.com/docker:dind
9
    alias: docker
10
11
12
13
14

stages:
  - build
  - postcheck

15
16
17
18
19
workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH

20
before_script:
21
  - apk add --update bash coreutils tar wget
Jon Azpiazu's avatar
Jon Azpiazu committed
22
  - docker login tecnalia-docker-dev.artifact.tecnalia.com -u ${ARTIFACT_CI_USER} -p ${ARTIFACT_CI_TOKEN}
23

24
.industrial_ci:
25
26
  stage: build
  before_script:
27
    - apk add --update bash coreutils tar
28
    - git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci.git .ci_config
29
    - docker login ${ARTIFACT_DOCKER_URL} -u ${ARTIFACT_CI_USER} -p ${ARTIFACT_CI_TOKEN}
Jon Azpiazu's avatar
Jon Azpiazu committed
30
    - docker login tecnalia-docker-dev.artifact.tecnalia.com -u ${ARTIFACT_CI_USER} -p ${ARTIFACT_CI_TOKEN}
31
32
  script: .ci_config/gitlab.sh
  variables:
33
    ADDITIONAL_DEBS: curl
34
35
    PARALLEL_BUILDS: 2 # keep this for now, since there seems to be memory limit issues in the ci VM
    UPSTREAM_WORKSPACE: .rosinstall
36
37
    AFTER_SETUP_UPSTREAM_WORKSPACE: "rosenv && bash <(curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/ci_run_entry_points.sh) $$current_ws"
    AFTER_SETUP_TARGET_WORKSPACE: "rosenv && bash <(curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/ci_run_entry_points.sh) $$current_ws"
38
    CMAKE_ARGS: '-DCMAKE_CXX_FLAGS=-Wno-ignored-attributes -Wno-int-in-bool-context'
39
40
  tags:
    - docker
41

42
industrial_ci_kinetic:
43
44
45
  extends: .industrial_ci
  variables:
    ROS_DISTRO: kinetic
46
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
47
48
49
50
51
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - if: $CI_COMMIT_REF_NAME =~ /^melodic-.*/
      when: never
52
53
    - if: $CI_COMMIT_REF_NAME =~ /^noetic-.*/
      when: never
54
    - when: always
55

Jon Azpiazu's avatar
Jon Azpiazu committed
56
57
58
59
60
industrial_ci_melodic:
  extends: .industrial_ci
  variables:
    ROS_DISTRO: melodic
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
61
62
63
  rules:
    - if: $CI_COMMIT_TAG
      when: never
64
65
    - if: $CI_COMMIT_REF_NAME =~ /^noetic-.*/
      when: never
66
    - if: $CI_COMMIT_REF_NAME =~ /^melodic-.*/
Jon Azpiazu's avatar
Jon Azpiazu committed
67

68
69
70
71
72
73
74
75
industrial_ci_noetic:
  extends: .industrial_ci
  variables:
    ROS_DISTRO: noetic
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
  rules:
    - if: $CI_COMMIT_TAG
      when: never
76
77
    - if: $CI_COMMIT_REF_NAME =~ /^melodic-.*/
      when: never
78
79
    - if: $CI_COMMIT_REF_NAME =~ /^noetic-.*/

80
industrial_ci_kinetic_deploy:
81
  extends: .industrial_ci
82
  variables:
83
    ROS_DISTRO: kinetic
84
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
85
    AFTER_SCRIPT: "wget -q -O - https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/pre-deploy-cleanup.bash | bash"
86
    DOCKER_COMMIT: industrial_ci_image
87
88
  script:
    - .ci_config/gitlab.sh
89
    - cd $(mktemp -d)
90
91
92
    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/-/archive/master/gitlab_templates-master.zip
    - unzip gitlab_templates-master.zip && cd gitlab_templates-master/deploy
    - cd base
93
    - chmod a+x ros_entrypoint.bash
94
95
    - docker build -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME} .
    - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}
96
97
98
99
100
    - cd ..
    - cd dev
    - docker build --build-arg APPLICATION_IMAGE=${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME} -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev .
    - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev
    - cd ..
101
102
  rules:
    - if: $CI_COMMIT_TAG
103

104
clang_format:
105
  stage: postcheck
106
107
108
109
110
  before_script:
    - apk add --update bash coreutils tar wget
    - git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci.git .ci_config -b legacy
    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/clang-format -O .clang-format
  script: .ci_config/gitlab.sh
111
112
113
  variables:
    ROS_DISTRO: kinetic
    CLANG_FORMAT_CHECK: file
114
    CLANG_FORMAT_VERSION: "3.8"
115
116
117
  when: always
  tags:
    - docker
118

119
120
121
122
123
##########################################################
## Simple check for basic Python syntax errors; this is much less thorough than
## other options like pylint, but much faster and less strict
##########################################################
python_syntax:
124
125
  before_script:
    - apk add --update python2
Jon Azpiazu's avatar
Jon Azpiazu committed
126
  stage: build
127
128
  script: python -m compileall -q .
  when: always
129
130
  tags:
    - docker
131
132

##########################################################
133
## Check for errors in bash/sh scripts
134
## Uses https://github.com/koalaman/shellcheck
135
136
##########################################################
bash_syntax:
137
138
  before_script:
    - apk add --update shellcheck
139
  stage: postcheck
140
141
  script:
    - RET=0
Jon Azpiazu's avatar
Jon Azpiazu committed
142
143
    - find . -type f -name '*.sh' -exec shellcheck -s sh {} + || RET=1
    - find . -type f -name '*.bash' -exec shellcheck -s bash {} + || RET=1
144
    - exit $RET
145
  when: always
146
147
  tags:
    - docker
148
149
150
151

##########################################################
## Check for errors in markdown files
## Uses https://github.com/cytopia/awesome-ci
152
153
154
## Disables the line length rule with --custom="-r ..."
## See other rules that can be configured in
## https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md
155
156
157
##########################################################
markdown_syntax:
  stage: postcheck
158
  script: docker run -v ${PWD}:/ac tecnalia-docker-dev.artifact.tecnalia.com/cytopia/awesome-ci syntax-markdown --path=/ac --extension=md --ignore=.ci_config --custom="-r ~MD013,~MD014"
159
  when: always
160
161
  tags:
    - docker
162
163
164
165
166
167
168
169
170
171
172

##########################################################
## Check for various syntax issues in files; currently
##  trailing white spaces
##  utf8 formatting
## Uses https://github.com/cytopia/awesome-ci
##########################################################
file_syntax:
  stage: postcheck
  script:
    - RET=0
173
174
    - docker run -v ${PWD}:/ac tecnalia-docker-dev.artifact.tecnalia.com/cytopia/awesome-ci file-trailing-space --path=/ac --extension=py,txt,cpp,h,md,sh,bash,xml,launch --ignore=.ci_config || RET=1
    - docker run -v ${PWD}:/ac tecnalia-docker-dev.artifact.tecnalia.com/cytopia/awesome-ci file-utf8 --path=/ac --extension=py,txt,cpp,h,md,sh,bash,xml,launch --ignore=.ci_config || RET=1
175
176
    - exit $RET
  when: always
177
178
  tags:
    - docker
179
180
181
182
183
184
185
186

##########################################################
## Check for errors in Asciidoctor files
## Could not find a proper linter for Asciidoctor format,
## so this is a custom-made "dirty" script
##########################################################
adoc_syntax:
  stage: postcheck
187
  image: tecnalia-docker-dev.artifact.tecnalia.com/alpine
188
189
190
  before_script:
    - apk add --update curl asciidoctor bash
  script:
191
    - curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/asciidoctor_syntax_check.bash | bash -s -- .
192
193
194
  tags:
    - docker
  when: always