CI all the things!
authorTom Powell <tom@powell.io>
Thu, 15 Nov 2018 04:38:22 +0000 (20:38 -0800)
committerTom Powell <tom@powell.io>
Thu, 15 Nov 2018 04:38:22 +0000 (20:38 -0800)
.gitlab-ci.yml

index bef5d6d2a5ec3810fe1ad0bac853440d91a7e758..862c1d1b1ee725e1bef7697595a32ef77a802ac4 100644 (file)
@@ -1,6 +1,7 @@
 stages:
   - test
   - build
 stages:
   - test
   - build
+  - deploy
 
 test:
   stage: test
 
 test:
   stage: test
@@ -25,7 +26,22 @@ build:
     - docker login $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
     - docker build . -t $CI_REGISTRY_IMAGE:$CI_PIPELINE_IID
     - docker push $CI_REGISTRY_IMAGE:$CI_PIPELINE_IID
     - docker login $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
     - docker build . -t $CI_REGISTRY_IMAGE:$CI_PIPELINE_IID
     - docker push $CI_REGISTRY_IMAGE:$CI_PIPELINE_IID
-
+deploy:
+  stage: deploy
+  variables:
+    KUBECONFIG: /kubeconfig.yml
+  script:
+    - curl -sLo /usr/local/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/v1.12.2/bin/linux/amd64/kubectl
+    - chmod +x /usr/local/bin/kubectl
+    - mkdir ~/.kube/
+    - echo $KUBE_CONFIG | base64 -d > $KUBECONFIG
+    - kubectl config view
+    - kubectl config set-credentials gitlab --token=$KUBE_TOKEN
+    - kubectl -n builds set image deployment/builds $CI_REGISTRY_IMAGE:$CI_PIPELINE_IID
+    - kubectl -n builds rollout status --timeout 60s deploy/builds || (kubectl -n builds rollout undo deploy/builds && false)
+  only:
+    refs:
+      - master
 
 # EVERYTHING BELOW HERE CAN BE IGNORED
 # DO NOT TOUCH ANYTHING BELOW THIS LINE
 
 # EVERYTHING BELOW HERE CAN BE IGNORED
 # DO NOT TOUCH ANYTHING BELOW THIS LINE