.gitlab-industrial-ci-kinetic-no-rosinstall.yml 5.76 KB
Newer Older
1 2 3
image: docker:git

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 8 9 10 11 12 13 14 15 16 17

services:
  - docker:dind

stages:
  - precheck
  - build
  - postcheck

before_script:
  - apk add --update bash coreutils tar wget python

18
.industrial_ci:
19 20
  stage: build
  before_script:
21
    - apk add --update bash coreutils tar
22
    - git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci.git .ci_config -b legacy
Jon Azpiazu's avatar
Jon Azpiazu committed
23
    - docker login ${ARTIFACT_DOCKER_URL} -u ${ARTIFACT_CI_USER} -p ${ARTIFACT_CI_TOKEN}
24 25
  script: .ci_config/gitlab.sh
  variables:
26
    ADDITIONAL_DEBS: curl
27 28 29
    ROS_PARALLEL_JOBS: -j2 # keep this for now, since there seems to be memory limit issues in the ci VM
    BEFORE_SCRIPT: bash <(curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/ci_run_entry_points.sh) $$CATKIN_WORKSPACE
    CMAKE_ARGS: -DCMAKE_CXX_FLAGS=-Wno-ignored-attributes -Wno-int-in-bool-context
30
  when: always
31 32
  tags:
    - docker
33

34
industrial_ci_kinetic:
35 36 37
  extends: .industrial_ci
  variables:
    ROS_DISTRO: kinetic
38
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
39 40
  except:
    - tags
41
    - melodic-devel
42

Jon Azpiazu's avatar
Jon Azpiazu committed
43 44 45 46 47
industrial_ci_melodic:
  extends: .industrial_ci
  variables:
    ROS_DISTRO: melodic
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
48 49
  only:
    - melodic-devel
Jon Azpiazu's avatar
Jon Azpiazu committed
50 51 52 53
  except:
    - tags
  allow_failure: yes

54
industrial_ci_kinetic_deploy:
55
  extends: .industrial_ci
56
  variables:
57
    ROS_DISTRO: kinetic
58
    DOCKER_IMAGE: "${ARTIFACT_DOCKER_URL}/flexbotics-base-devel:${ROS_DISTRO}"
59
    AFTER_SCRIPT: "wget -q -O - https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/pre-deploy-cleanup.bash | bash"
60
    DOCKER_COMMIT: industrial_ci_image
61 62
  script:
    - .ci_config/gitlab.sh
63
    - cd $(mktemp -d)
64 65 66
    - 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
67
    - chmod a+x ros_entrypoint.bash
68 69
    - 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}
70 71 72 73 74
    - 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 ..
75 76 77
  only:
    - tags

78
clang_format:
79
  stage: postcheck
80 81 82 83 84
  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
85 86 87
  variables:
    ROS_DISTRO: kinetic
    CLANG_FORMAT_CHECK: file
88
    CLANG_FORMAT_VERSION: "3.8"
89 90 91
  when: always
  tags:
    - docker
92

93 94 95 96 97 98 99 100
##########################################################
## 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:
  stage: precheck
  script: python -m compileall -q .
  when: always
101 102
  tags:
    - docker
103 104 105 106 107 108 109 110 111 112 113 114 115

##########################################################
## Check for errors in bash/sh scripts
## Uses https://github.com/cytopia/awesome-ci
##########################################################
bash_syntax:
  stage: postcheck
  script:
    - RET=0
    - docker run -v ${PWD}:/ac cytopia/awesome-ci syntax-sh --path=/ac --extension=sh --ignore=.ci_config || RET=1
    - docker run -v ${PWD}:/ac cytopia/awesome-ci syntax-bash --path=/ac --extension=bash --ignore=.ci_config || RET=1
    - exit $RET
  when: always
116 117
  tags:
    - docker
118 119 120 121 122 123 124 125 126 127 128 129

##########################################################
## Check for errors in markdown files
## Uses https://github.com/cytopia/awesome-ci
## 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
##########################################################
markdown_syntax:
  stage: postcheck
  script: docker run -v ${PWD}:/ac cytopia/awesome-ci syntax-markdown --path=/ac --extension=md --ignore=.ci_config --custom="-r ~MD013"
  when: always
130 131
  tags:
    - docker
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

##########################################################
## 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
    - docker run -v ${PWD}:/ac 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 cytopia/awesome-ci file-utf8 --path=/ac --extension=py,txt,cpp,h,md,sh,bash,xml,launch --ignore=.ci_config || RET=1
    - exit $RET
  when: always
147 148
  tags:
    - docker
149 150 151 152 153 154 155 156 157 158 159 160

##########################################################
## 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
  image: alpine
  before_script:
    - apk add --update curl asciidoctor bash
  script:
161
    - curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/asciidoctor_syntax_check.bash | bash -s -- .
162 163 164
  tags:
    - docker
  when: always