From 2dc5252f38a952bf3d5282789446ee7f3e9a788b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Wed, 3 Apr 2019 18:09:39 +0200 Subject: [PATCH 1/3] Install everything on Travis CI through snap This commit should setup kubectl in a way that it downloads a recent `kubeconfig` from Digitial Ocean with `doctl`. Thus, deployments will not fail after a kubeconfig has expired. Since it seems to be the recommended way to install `doctl` through [Snap](https://snapcraft.io/). I decided to install everything else through snap too, including chrome and docker. --- .travis.yml | 19 ++++++++---------- kubeconfig.yaml.enc | Bin 6048 -> 0 bytes package.json | 4 ++-- ...setup_kubernetes.sh => install_kubectl.sh} | 5 ----- 4 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 kubeconfig.yaml.enc rename scripts/{setup_kubernetes.sh => install_kubectl.sh} (68%) diff --git a/.travis.yml b/.travis.yml index 309beb07d..482145dd4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,10 @@ +dist: xenial language: generic -services: - - docker addons: - chrome: stable - apt: - sources: - - google-chrome - packages: - - google-chrome-stable + snaps: + - doctl + - docker + - chromium before_install: - yarn global add wait-on @@ -33,6 +30,8 @@ script: - yarn run cypress:run --record --key $CYPRESS_TOKEN after_success: + - doctl auth init --access-token $DOCTL_ACCESS_TOKEN + - doctl kubernetes cluster kubeconfig show nitro-staging > ~/.kube/config.yaml - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - chmod +x send.sh - ./send.sh success $WEBHOOK_URL @@ -41,15 +40,13 @@ after_success: chmod +x tester.sh && ./tester.sh staging $WEBHOOK_URL; fi + - ./scripts/install_kubernetes.sh after_failure: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - chmod +x send.sh - ./send.sh failure $WEBHOOK_URL -before_deploy: - - ./scripts/setup_kubernetes.sh - deploy: - provider: script script: scripts/docker_push.sh diff --git a/kubeconfig.yaml.enc b/kubeconfig.yaml.enc deleted file mode 100644 index c231b75851010a91b237c66ad468ba61cc9f68e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6048 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 Date: Wed, 3 Apr 2019 19:58:25 +0200 Subject: [PATCH 2/3] Install libgconf on Travis CI --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 482145dd4..cdd6b609d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ dist: xenial language: generic addons: + apt: + packages: + - libgconf-2-4 snaps: - doctl - docker From 335d2cf1d68baa789dd77a131c23eb6ff068ef85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Wed, 3 Apr 2019 21:34:07 +0200 Subject: [PATCH 3/3] Install kubectl via snap --- .travis.yml | 2 +- scripts/install_kubectl.sh | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) delete mode 100755 scripts/install_kubectl.sh diff --git a/.travis.yml b/.travis.yml index cdd6b609d..24de56d1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ addons: - doctl - docker - chromium + - 'kubectl --classic' before_install: - yarn global add wait-on @@ -43,7 +44,6 @@ after_success: chmod +x tester.sh && ./tester.sh staging $WEBHOOK_URL; fi - - ./scripts/install_kubernetes.sh after_failure: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh diff --git a/scripts/install_kubectl.sh b/scripts/install_kubectl.sh deleted file mode 100755 index d3afdae27..000000000 --- a/scripts/install_kubectl.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -# This script can be called multiple times for each `before_deploy` hook -# so let's exit successfully if kubectl is already installed: -command -v kubectl && exit 0 - -curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -chmod +x ./kubectl -sudo mv ./kubectl /usr/local/bin/kubectl -