forked from psykube/psykube
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
70 lines (66 loc) · 2.29 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
variables:
PSYKUBE_DEBUG: "true"
CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE: "True"
CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
PSYKUBE_CONTEXT: gke_waldrip-net_us-central1-a_waldrip-net
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
stages:
- Test
- Release
Spec:
image: crystallang/crystal
services:
- docker:dind
stage: Test
before_script:
- apt-get update
- apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
- apt-key fingerprint 0EBFCD88
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- apt-get update
- apt install -y docker-ce-cli
- 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
- mv ./kubectl /usr/local/bin/kubectl
- shards install
- shards build
- mv bin/psykube /usr/local/bin/psykube
script:
- cd spec
- export NAMESPACE="psykube-test-$(openssl rand -hex 4)"
- psykube init --overwrite --namespace=$NAMESPACE --name=psykube-test --registry-host=$CI_REGISTRY --registry-user=$CI_DEPLOY_USER --registry-password=$CI_DEPLOY_PASSWORD --port http=80
- psykube create-namespace
- psykube generate
- psykube apply --docker-credentials=$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD
- psykube status
- psykube push
- psykube exec -- echo 'hello world'
# - psykube logs -t 100
- psykube copy-namespace $NAMESPACE $NAMESPACE-copy --force
- psykube delete -y
- psykube delete-namespace
- kubectl delete ns $NAMESPACE
Release Package:
image: crystallang/crystal
stage: Release
only:
- tags
script:
- shards build --release --no-debug
- tar -czC ./bin psykube > ./psykube-linux-$CI_COMMIT_TAG.tar.gz
Release Dockerfile:
image: crystallang/crystal
services:
- docker:dind
stage: Release
only:
- tags
script:
- apt update -y
- apt install -y docker-ce-cli
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
- docker pull psykube/psykube || true
- docker build -t psykube/psykube .
- docker push psykube/psykube