kind: pipeline type: docker name: default steps: - name: restore-cache-with-filesystem image: meltwater/drone-cache settings: backend: "filesystem" restore: true cache_key: "{{ .Repo.Name }}" archive_format: "gzip" filesystem_cache_root: "/tmp/cache" mount: - '.pipcache' volumes: - name: cache path: /tmp/cache - name: static_analysis image: python:3.8 commands: - pip3 install --cache-dir='./.pipcache' pylint bandit mccabe - pip3 install --cache-dir='./.pipcache' -r requirements.txt - find . -name "*.py" -exec python3 -m py_compile '{}' \; - find . -name "*.py" -exec pylint '{}' + || if [ $? -eq 1 ]; then echo "you fail"; fi - find . -name "*.py" -exec python3 -m mccabe --min 3 '{}' + || if [ $? -eq 1 ]; then echo "you fail"; fi - bandit -r . + || if [ $? -eq 1 ]; then echo "you fail"; fi - name: unit_test image: python:3.8 environment: PRODUCER_REDIS: cache commands: - pip3 install --cache-dir='./.pipcache' -r requirements.txt - pytest test.py - name: coverage image: python:3.8 environment: PRODUCER_REDIS: cache commands: - pip3 install --cache-dir='./.pipcache' -r requirements.txt - pip3 install --cache-dir='./.pipcache' coverage pytest - coverage run -m pytest test.py - coverage report -m - name: integration_test image: python:3.8 environment: PRODUCER_REDIS: cache commands: - pip3 install --cache-dir='./.pipcache' -r requirements.txt - pytest integtest.py - name: build-app image: banzaicloud/drone-kaniko settings: registry: registry.kmlabz.com repo: goldenpogacsa/${DRONE_REPO_NAME} username: from_secret: DOCKER_USERNAME password: from_secret: DOCKER_PASSWORD tags: - latest - ${DRONE_BUILD_NUMBER} - name: make_docs image: python:3.8 commands: - pip3 install --cache-dir='./.pipcache' Sphinx sphinx_rtd_theme - pip3 install --cache-dir='./.pipcache' -r requirements.txt - cd docs - make html - name: rebuild-cache-with-filesystem image: meltwater/drone-cache pull: true settings: backend: "filesystem" rebuild: true cache_key: "{{ .Repo.Name }}" archive_format: "gzip" filesystem_cache_root: "/tmp/cache" mount: - '.pipcache' volumes: - name: cache path: /tmp/cache - name: build_docs image: docker:stable-dind volumes: - name: dockersock path: /var/run environment: DOCKER_USERNAME: from_secret: DOCKER_USERNAME DOCKER_PASSWORD: from_secret: DOCKER_PASSWORD commands: - cd docs - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin registry.kmlabz.com - docker build -t="registry.kmlabz.com/goldenpogacsa/producer-docs" . - docker build -t="registry.kmlabz.com/goldenpogacsa/producer-docs:$DRONE_BUILD_NUMBER" . - docker push "registry.kmlabz.com/goldenpogacsa/producer-docs" - docker push "registry.kmlabz.com/goldenpogacsa/producer-docs:$DRONE_BUILD_NUMBER" - name: slack image: plugins/slack settings: webhook: from_secret: slack_webhook channel: alerts-ci icon_url: https://cloudcdn.tormakristof.eu/static/drone.svg when: status: [ failure ] services: - name: docker image: docker:stable-dind privileged: true volumes: - name: dockersock path: /var/run - name: cache image: redis volumes: - name: dockersock temp: {} - name: cache host: path: "/tmp/cache"