94 lines
2.2 KiB
YAML
94 lines
2.2 KiB
YAML
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:
|
|
REDIS_URL: "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: 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-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: 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: cache
|
|
image: redis
|
|
|
|
volumes:
|
|
- name: cache
|
|
host:
|
|
path: "/tmp/cache"
|