beer/.drone.yml

136 lines
3 KiB
YAML
Raw Normal View History

2020-02-15 16:11:36 +01:00
---
kind: pipeline
name: build
steps:
2020-02-15 00:42:17 +01:00
- name: build image
image: plugins/docker
settings:
repo: kleph/beer
2020-02-25 01:46:56 +01:00
tags: ${DRONE_COMMIT_SHA:0:8}
username:
2020-02-15 12:48:36 +01:00
from_secret: dockerhub_username
password:
2020-02-15 12:48:36 +01:00
from_secret: dockerhub_password
2020-02-15 17:02:19 +01:00
2020-02-25 02:03:01 +01:00
#depends_on:
#- unit tests
---
kind: pipeline
2020-02-25 02:08:18 +01:00
name: deploy-staging
2020-02-25 02:03:01 +01:00
steps:
2020-02-25 02:08:18 +01:00
- name: deploy-staging
2020-02-25 02:03:01 +01:00
image: sinlead/drone-kubectl
settings:
kubernetes_server:
from_secret: kubectl_uri
kubernetes_cert:
from_secret: kubectl_cert
kubernetes_token:
from_secret: kubectl_token
environment:
IMAGE_TAG: ${DRONE_COMMIT_SHA:0:8}
commands:
2020-02-25 02:08:18 +01:00
- export NAMESPACE=beer-staging-${DRONE_COMMIT_SHA:0:4}
- echo "== create staging namespace $${NAMESPACE}"
- sed "s/__NAMESPACE__/$${NAMESPACE}/g" kube/beer-namespace.yaml > kube/beer-namespace-staging.yaml
- kubectl apply -f kube/beer-namespace-staging.yaml
2020-02-25 02:03:01 +01:00
- echo "== deploy staging"
2020-02-25 02:08:18 +01:00
- sed "s/__IMAGE_TAG__/$${IMAGE_TAG}/g" kube/beer-deployment.yaml > kube/beer-deployment-staging.yaml
- kubectl apply -f kube/beer-deployment-staging.yaml --namespace=$${NAMESPACE}
- echo "== post deploy status:"
- kubectl get deployments --namespace=$${NAMESPACE}
- kubectl get pods --namespace=$${NAMESPACE}
2020-02-25 02:03:01 +01:00
2020-02-15 17:02:19 +01:00
depends_on:
2020-02-25 02:03:01 +01:00
- build
when:
branch:
exclude:
- master
2020-02-15 17:40:58 +01:00
---
kind: pipeline
name: deploy
steps:
- name: deploy
image: sinlead/drone-kubectl
settings:
kubernetes_server:
2020-02-15 17:40:58 +01:00
from_secret: kubectl_uri
kubernetes_cert:
from_secret: kubectl_cert
kubernetes_token:
from_secret: kubectl_token
2020-02-25 01:46:56 +01:00
environment:
IMAGE_TAG: ${DRONE_COMMIT_SHA:0:8}
2020-02-25 02:08:18 +01:00
NAMESPACE: beer
2020-02-15 17:40:58 +01:00
commands:
2020-02-25 01:46:56 +01:00
- echo "== pre deploy status:"
2020-02-22 02:52:32 +01:00
- kubectl get pods --namespace=beer
- kubectl get deployments --namespace=beer
- kubectl get svc --namespace=beer
2020-02-25 02:08:18 +01:00
- cat kube/beer-deployment.yaml
- sed "s/__NAMESPACE__/$${NAMESPACE}/g" kube/beer-deployment.yaml > kube/beer-deployment-prod.yaml
- cat kube/beer-deployment-prod.yaml
- sed "s/__IMAGE_TAG__/$${IMAGE_TAG}/g" kube/beer-deployment-prod.yaml > kube/beer-deployment-prod2.yaml
- echo "applying"
- cat kube/beer-deployment-prod2.yaml
- kubectl apply -f kube/beer-deployment-prod2.yaml --namespace=beer
2020-02-25 01:46:56 +01:00
- echo "== post deploy status:"
2020-02-25 02:08:18 +01:00
- kubectl get deployments --namespace=beer
- kubectl get pods --namespace=beer
2020-02-15 17:40:58 +01:00
depends_on:
2020-02-15 18:38:57 +01:00
- build
2020-02-25 02:03:01 +01:00
when:
branch:
2020-02-25 02:08:18 +01:00
include:
- master
#---
#kind: pipeline
#name: lint
#
#steps:
#- name: yaml lint
# image: cytopia/yamllint
# commands:
# - yamllint .
#
#- name: docker lint
# image: hadolint/hadolint
# commands:
# - hadolint Dockerfile # ignore pinning version in pip
#
#- name: w3c validator
# image: validator/validator:latest
# commands:
# - vnu static/*.html
#
#- name: markdown lint
# image: pipelinecomponents/markdownlint:latest
# commands:
# - mdl --style all --warnings .
#
#---
#kind: pipeline
#name: unit tests
#
#steps:
#- name: unit test
# image: python:slim
# commands:
# - pip install -r requirements.txt
# - pip install pylint
# - pylint beer/*.py tests/*.py
# - python -m pytest tests
#
#depends_on:
#- lint