--- 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