beer/.drone.yml
kleph 43f338ecf3
Some checks failed
continuous-integration/drone/push Build is failing
[CI] Fix templating
2020-02-25 23:53:19 +01:00

135 lines
3 KiB
YAML

---
kind: pipeline
name: build
steps:
- name: build image
image: plugins/docker
settings:
repo: kleph/beer
tags: ${DRONE_COMMIT_SHA:0:8}
username:
from_secret: dockerhub_username
password:
from_secret: dockerhub_password
#depends_on:
#- unit tests
---
kind: pipeline
name: deploy-staging
steps:
- name: deploy-staging
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:
- 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
- echo "== deploy staging"
- 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}
depends_on:
- build
when:
branch:
exclude:
- master
---
kind: pipeline
name: deploy
steps:
- name: deploy
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}
NAMESPACE: beer
commands:
- echo "== pre deploy status:"
- kubectl get pods --namespace=beer
- kubectl get deployments --namespace=beer
- kubectl get svc --namespace=beer
- 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
- echo "== post deploy status:"
- kubectl get deployments --namespace=beer
- kubectl get pods --namespace=beer
depends_on:
- build
when:
branch:
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