diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000..4b15de00b1 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,269 @@ +--- +# Copyright © 2021 Orange +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +stages: + - linting + - build + - test + +cla_authors: + stage: linting + image: bitnami/git:2 + script: + - . .ci/common.sh + - title "Running cla authors retrieval..." + - exit_code=0 + - RESULT=$(.ci/check-cla-for-multiple-commits.sh 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + needs: [] + rules: + - if: $CI_MERGE_REQUEST_ID + + +pylint: + stage: linting + image: cytopia/pylint + script: + - . .ci/common.sh + - title "Running pylint check..." + - exit_code=0 + - RESULT=$(find kubernetes/ TOSCA/ docs/ -name '*.py' -print0 | xargs -0 pylint 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + needs: [] + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - '**/*.py' + +commit-message: + stage: linting + image: jorisroovers/gitlint:0.16.0 + script: + - . .ci/common.sh + - title "*** Running gitlint..." + - exit_code=0 + - RESULT=$(gitlint 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + needs: [] + rules: + - if: $CI_MERGE_REQUEST_ID + + +trailing-whitespaces: + stage: linting + image: alpine/git:v2.24.1 + script: + - . .ci/common.sh + - title "Running trailing whitespaces check..." + - exit_code=0 + - RESULT=$(.ci/find-trailing-whitespaces.sh 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + needs: [] + rules: + - if: $CI_MERGE_REQUEST_ID + +tabs: + stage: linting + image: alpine/git:v2.24.1 + script: + - . .ci/common.sh + - title "Running tabs check..." + - exit_code=0 + - RESULT=$(.ci/find-tabs.sh 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + needs: [] + rules: + - if: $CI_MERGE_REQUEST_ID + +documentation:doc8: + stage: linting + image: testthedocs/ttd-doc8 + script: + - . .ci/common.sh + - title "Running doc8 check..." + - exit_code=0 + - RESULT=$(doc8 docs 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - docs/**/* + needs: [] + +documentation:link-check: + stage: linting + image: python:3.7 + script: + - . .ci/common.sh + - pip install -r requirements.txt + -chttps://git.onap.org/doc/plain/etc/upper-constraints.os.txt + -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt + - title "Running documentation links check..." + - exit_code=0 + - RESULT=$(sphinx-build -W -b linkcheck -d /tmp/doctrees ./docs/ ./docs/_build/linkcheck 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - docs/**/* + needs: [] + +documentation:spelling: + stage: linting + image: python:3.7 + script: + - . .ci/common.sh + - apt-get update + - apt-get install -qq --yes curl libenchant-2-2 + - curl -LO https://git.onap.org/doc/plain/docs/spelling_wordlist.txt + - pip install -r requirements.txt + -chttps://git.onap.org/doc/plain/etc/upper-constraints.os.txt + -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt + - title "Running documentation spelling check..." + - exit_code=0 + - RESULT=$(sphinx-build -b spelling -d /tmp/doctrees ./docs/ ./docs/_build/spelling 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - docs/**/* + needs: [] + +bashisms: + stage: linting + image: manabu/checkbashisms-docker + script: + - . .ci/common.sh + - title "Running bashisms check..." + - exit_code=0 + - RESULT=$(.ci/check-bashisms 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + rules: + - if: $CI_MERGE_REQUEST_ID + needs: [] + +helm:fast: + stage: linting + services: + - name: bitnami/chartmuseum:latest + alias: chartmuseum + image: alpine/helm:3.6.3 + variables: + SKIP_LINT: "TRUE" + script: + - . .ci/common.sh + - apk add --no-cache make + - helm repo add local http://chartmuseum:8080/ + - helm plugin install --version v0.9.0 https://github.com/chartmuseum/helm-push.git + - title "Running helm fast check..." + - cd kubernetes + - exit_code=0 + - make all || exit_code=$? + - handle_test_result $exit_code "" + - exit $exit_code + needs: [] + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - kubernetes/**/* + +helm:full: + stage: build + services: + - name: bitnami/chartmuseum:latest + alias: chartmuseum + image: alpine/helm:3.6.3 + script: + - . .ci/common.sh + - apk add --no-cache make + - helm repo add local http://chartmuseum:8080/ + - helm plugin install --version v0.9.0 https://github.com/chartmuseum/helm-push.git + - title "Running full helm check..." + - cd kubernetes + - exit_code=0 + - make all || exit_code=$? + - handle_test_result $exit_code "" + - exit $exit_code + needs: + - helm:fast + timeout: 6h + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - kubernetes/**/* + +documentation: + stage: build + image: python:3.7 + script: + - . .ci/common.sh + - apt-get update + - apt-get install --yes graphviz plantuml + - pip install -r requirements.txt + -chttps://git.onap.org/doc/plain/etc/upper-constraints.os.txt + -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt + - title "Running documentation build..." + - exit_code=0 + - RESULT=$(sphinx-build -q -W -b html -d /tmp/doctrees ./docs/ ./docs/_build/html 2>&1) || exit_code=$? + - handle_test_result $exit_code "$RESULT" + - exit $exit_code + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - docs/* + needs: + - documentation:spelling + - documentation:link-check + - documentation:doc8 + +gating:launch: + stage: test + image: busybox + script: + - . .ci/common.sh + - title "Launching request for a gate" + needs: + - bashisms + - helm:fast + - tabs + - trailing-whitespaces + rules: + - if: $CI_MERGE_REQUEST_ID + changes: + - .ci/* + - .gitlab-ci.yml + - kubernetes/**/* |