blob: 3c438a08d9eeae4c86d40faf78b23c232c96118e [file] [log] [blame]
---
# 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:
name: bitnami/git:2
entrypoint: [""]
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:
name: cytopia/pylint
entrypoint: [""]
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:
name: jorisroovers/gitlint:0.16.0
entrypoint: [""]
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:
name: alpine/git:v2.24.1
entrypoint: [""]
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:
name: alpine/git:v2.24.1
entrypoint: [""]
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:
name: testthedocs/ttd-doc8
entrypoint: [""]
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:
name: python:3.7
entrypoint: [""]
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:
name: python:3.7
entrypoint: [""]
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:
name: manabu/checkbashisms-docker
entrypoint: [""]
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:
name: alpine/helm:3.6.3
entrypoint: [""]
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:
name: alpine/helm:3.6.3
entrypoint: [""]
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:
name: python:3.7
entrypoint: [""]
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:
name: busybox
entrypoint: [""]
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/**/*