diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..2924cfd --- /dev/null +++ b/.drone.yml @@ -0,0 +1,53 @@ +kind: pipeline +type: docker +name: default + +steps: +- name: static_analysis + image: python:3 + commands: + - pip3 install pylint bandit mccabe + - pip3 install -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: build + image: docker:stable-dind + volumes: + - name: dockersock + path: /var/run + environment: + DOCKER_USERNAME: + from_secret: DOCKER_USERNAME + DOCKER_PASSWORD: + from_secret: DOCKER_PASSWORD + commands: + - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + - docker build -t="$DOCKER_USERNAME/producer" . + - docker build -t="$DOCKER_USERNAME/producer:$DRONE_BUILD_NUMBER" . + - docker push "$DOCKER_USERNAME/producer" + - docker push "$DOCKER_USERNAME/producer:$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 + +volumes: +- name: dockersock + temp: {}