X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=.gitlab-ci.yml;h=8379c87799f6f7d06aadf0ccdde9ee8fd26ea884;hb=339492ad21180a64575742f3eb71f7bfafb3b91a;hp=8651a08989a91b06c4340a248e5bddfbedd63a8d;hpb=d69212b3bbfb3f9ffd044b8cba3c2d7204fd166b;p=mpd-sima.git diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8651a08..8379c87 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,62 +1,82 @@ # Official language image. Look for the different tagged releases at: -# https://hub.docker.com/r/library/python/ +# https://hub.docker.com/_/python image: python:3 -stages: - - test - - build +include: + - local: .gitlab/gitlab-templates.yml + - local: .gitlab/pylint.yml + - template: Security/SAST.gitlab-ci.yml -# Change pip's cache directory to be inside the project directory since we can -# only cache local items. variables: - PIP_CACHE_DIR: "$CI_PROJECT_DIR/cache" + #XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache" + PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache" -# Pip's cache doesn't store the python packages -# https://pip.pypa.io/en/stable/reference/pip_install/#caching -# -# If you want to also cache the installed packages, you have to install -# them in a virtualenv and cache it as well. cache: paths: - - cache/pip - - venv/ + - .cache -before_script: - - python -V # Print out python version for debugging - - python -m venv venv - - source venv/bin/activate +stages: + - test + - build -test: +smoketest: stage: test script: - - pip install pytest-cov - - py.test -q --cov=sima tests + - pip install requests python-musicpd sphinx - python setup.py test - - pip install tox flake8 - - tox -e py36,flake8 - -run: - stage: test - script: + # build wheel and source - python setup.py bdist_wheel sdist - - pip install dist/* + # manual and HTML documentation + - python setup.py build_sphinx + # install + - pip install dist/*.whl + # smoke test - mpd-sima --help - cache: - paths: dist/ - policy: pull artifacts: + expire_in: 1 hour paths: - dist/*.whl + - dist/*.tar.gz + - dist/*.zip + +unittests: + stage: test + script: + - pip install pytest-cov requests python-musicpd + - py.test -q --cov=sima --junitxml=report.xml tests + artifacts: + when: always + reports: + junit: report.xml + +vinstall: + stage: test + script: + # test virtualenv install + - python3 ./vinstall.py + # smoke test + - ./vmpd-sima --help + artifacts: + expire_in: 1 hour + +sast: + variables: + SAST_EXCLUDED_ANALYZERS: brakeman, eslint, flawfinder, gosec, kubesec, nodejs-scan, + phpcs-security-audit, pmd-apex, security-code-scan, semgrep, sobelow, spotbugs + stage: test tag_release: stage: build + dependencies: + - smoketest script: - - python -V + - python -V artifacts: paths: - dist/*.whl - dist/*.tar.gz - dist/*.zip name: "$CI_PROJECT_NAME-$CI_COMMIT_TAG" + cache: {} only: - tags