.gitlab-ci.yml
changeset 13 ccb2abb60b46
child 18 25f3738c920e
equal deleted inserted replaced
12:fc3542685741 13:ccb2abb60b46
       
     1 image: python:3.5
       
     2 
       
     3 stages:
       
     4     - test
       
     5     - dist
       
     6     - quality
       
     7 
       
     8 cache:
       
     9     paths:
       
    10         - bin/
       
    11         - eggs/
       
    12         - parts/
       
    13 
       
    14 before_script:
       
    15     - export http_proxy=http://172.17.0.1:3128/
       
    16     - export HTTP_PROXY=http://172.17.0.1:3128/
       
    17     - export https_proxy=http://172.17.0.1:3128/
       
    18     - export HTTPS_PROXY=http://172.17.0.1:3128/
       
    19 
       
    20 bootstrap:
       
    21     stage: .pre
       
    22     script:
       
    23         - python3.5 bootstrap.py --buildout-version=2.12.0
       
    24         - ./bin/buildout
       
    25 
       
    26 test:
       
    27     stage: test
       
    28     script:
       
    29         - pip install anybadge
       
    30         - mkdir ./coverage
       
    31         - ./bin/test --coverage coverage | tee ./coverage/coverage.log
       
    32         - GLOBAL_COVER=$(grep -e '^[[:space:]]*[[:digit:]]\+[[:space:]]\+[[:digit:]]\+\%' ./coverage/coverage.log |
       
    33               awk 'BEGIN { lines=0; cov=0 }
       
    34                    { lines = lines + $1; cov = cov + $1 * $2 / 100 }
       
    35                    END { printf "%.2f", cov / lines * 100 }')
       
    36         - anybadge --label=Coverage --file=./coverage/coverage.svg --value=$GLOBAL_COVER 20=red 40=orange 60=yellow 80=green
       
    37         - echo "Global tests coverage is $GLOBAL_COVER %"
       
    38     artifacts:
       
    39         paths:
       
    40             - ./coverage/
       
    41 
       
    42 dist:
       
    43     stage: dist
       
    44     script:
       
    45         - ./bin/buildout setup setup.py clean --all sdist bdist_egg bdist_wheel
       
    46     artifacts:
       
    47         paths:
       
    48             - ./dist
       
    49 
       
    50 pylint:
       
    51     stage: quality
       
    52     allow_failure: true
       
    53     script:
       
    54         - pip install pylint-exit anybadge
       
    55         - mkdir ./pylint
       
    56         - ./bin/pylint src/pyams_viewlet/ | tee ./pylint/pylint.log || pylint-exit $?
       
    57         - PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log)
       
    58         - anybadge --label=Pylint --file=./pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green
       
    59         - echo "Pylint score is $PYLINT_SCORE"
       
    60     artifacts:
       
    61         paths:
       
    62             - ./pylint/
       
    63 
       
    64 quality:
       
    65     stage: quality
       
    66     allow_failure: true
       
    67     image: docker:stable
       
    68     services:
       
    69         - docker:stable-dind
       
    70     variables:
       
    71         DOCKER_DRIVER: overlay2
       
    72         DOCKER_TLS_CERTDIR: ""
       
    73     script:
       
    74         - |
       
    75             if ! docker info &>/dev/null; then
       
    76               if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then
       
    77                 export DOCKER_HOST='tcp://localhost:2375'
       
    78               fi
       
    79             fi
       
    80         - docker run
       
    81             --env SOURCE_CODE="$PWD"
       
    82             --volume "$PWD":/code
       
    83             --volume /var/run/docker.sock:/var/run/docker.sock
       
    84             "registry.gitlab.com/gitlab-org/security-products/codequality:12-0-stable" /code
       
    85     artifacts:
       
    86         reports:
       
    87             codequality: gl-code-quality-report.json
       
    88         expire_in: 1 week
       
    89     dependencies: []
       
    90     only:
       
    91         refs:
       
    92             - branches
       
    93             - tags
       
    94     except:
       
    95         variables:
       
    96             - $CODE_QUALITY_DISABLED