1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/usr/bin/env bash
- set -o pipefail
- set -o errexit
- set -o nounset
- # set -o xtrace
- # Set magic variables for current FILE & DIR
- __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- __kube="${__dir}"
- __companion="$(dirname "$(dirname "${__kube}")")"
- # Install kubectl
- curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.1/bin/linux/amd64/kubectl
- chmod +x ./kubectl
- mkdir -p ${HOME}/.local/bin/
- export PATH="${HOME}/.local/bin/:$PATH"
- mv ./kubectl ${HOME}/.local/bin/
- # Store the new image in docker hub
- docker build -t transloadit/companion:latest -t transloadit/companion:$TRAVIS_COMMIT .;
- docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
- # Push the commit tagged docker image.
- docker push transloadit/companion:$TRAVIS_COMMIT;
- # If this build includes a git tag, tag the image with the git version tag and push the version.
- if [[ ! -z "${TRAVIS_TAG}" ]]; then
- docker tag transloadit/companion:$TRAVIS_COMMIT transloadit/companion:$TRAVIS_TAG;
- docker push transloadit/companion:$TRAVIS_TAG;
- fi
- # Lastly, update the pointer to latest.
- docker push transloadit/companion:latest;
- echo "Create directory..."
- mkdir ${HOME}/.kube
- echo "Writing KUBECONFIG to file..."
- echo $KUBECONFIGVAR | python -m base64 -d > ${HOME}/.kube/config
- echo "KUBECONFIG file written"
- sleep 10s # This cost me some precious debugging time.
- kubectl set image statefulset companion --namespace=companion companion=docker.io/transloadit/companion:$TRAVIS_COMMIT
- sleep 10s
- kubectl get pods --namespace=companion
- kubectl get service --namespace=companion
- kubectl get deployment --namespace=companion
- function cleanup {
- printf "Cleaning up...\n"
- rm -vf ${HOME}/.kube/config
- printf "Cleaning done."
- }
- trap cleanup EXIT
|