-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path.gitlab-ci.yml
139 lines (125 loc) · 4.71 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
image:
name: alpine:3.11
stages:
- publish
- deploy
include:
- project: 'xpring/xpring-ci-templates'
file: '/templates/build_for_gcr.yml'
variables:
GCR_PROJECT_ID: xpring-dev-sandbox
GCLOUD_PROJECT_ID: xpring-dev-sandbox
CLUSTER_NAME: poc1-cluster
CLUSTER_REGION: us-central1
RELEASE_NAME: testnet-faucet
RELEASE_ENV: dev
# Build a docker image and push it to the GCR associated with $GCLOUD_PROJECT_ID
build/publish:
stage: publish
extends: .publish
when: manual
image: gcr.io/xpring-dev-sandbox/xpring_util_image:0.0.4
variables:
GCLOUD_PROJECT_ID: $GCR_PROJECT_ID
script:
- git clone --single-branch --branch master https://github.com/xpring-eng/testnet-faucet.git
- export GOOGLE_APPLICATION_CREDENTIALS=/tmp/kaniko-secret.json
- echo $GCP_SA > $GOOGLE_APPLICATION_CREDENTIALS
- /usr/local/bin/executor --cache=true --context testnet-faucet --dockerfile testnet-faucet/Dockerfile
--destination gcr.io/${GCLOUD_PROJECT_ID}/${RELEASE_NAME}:latest
.deploy_faucet:
extends: .deploy
needs: ["build/publish"]
when: manual
script:
- git clone --single-branch --branch master https://github.com/xpring-eng/testnet-faucet.git
- cd testnet-faucet
- mkdir dependency_charts
- git clone --single-branch --branch master https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.in.ripplex.dev/xpring-eng/xpring_nginx.git dependency_charts/xpring_nginx
- kubectl create namespace ${RELEASE_NAME}-${RELEASE_ENV} || true
- helm dep update ./charts
- helm upgrade --install --namespace ${RELEASE_NAME}-${RELEASE_ENV}
--set releaseEnv=$RELEASE_ENV
--set faucet.rippledUri="${RIPPLED_URI}"
--set faucet.fundingAddr="${FUNDING_ADDR}"
--set faucet.fundingSecret="${FUNDING_SECRET}"
--set faucet.bigQueryPrivateKey="${BIGQUERY_PRIVATE_KEY}"
--set faucet.bigQueryClientEmail="${BIGQUERY_CLIENT_EMAIL}"
--set faucet.bigQueryProjectId="${BIGQUERY_PROJECT_ID}"
--set faucet.bigQueryDatasetId="${BIGQUERY_DATASET_ID}"
--set faucet.bigQueryTableId="${BIGQUERY_TABLE_ID}"
--set faucetng.domainName="${FAUCETNG_DNS}"
--set faucetng.proxiedService="http://${RELEASE_NAME}-${RELEASE_ENV}-faucet:3000"
${RELEASE_NAME}-${RELEASE_ENV} ./charts
###################### STAGING DEPLOYMENTS #######################
.deploy_to_stg:
stage: deploy
extends: .deploy_faucet
variables:
GCLOUD_PROJECT_ID: xpring-testnet
CLUSTER_NAME: xpring-testnet-cluster01
CLUSTER_REGION: us-central1
deploy to testnet stg:
stage: deploy
extends: .deploy_to_stg
variables:
RELEASE_ENV: stg-testnet
FUNDING_ADDR: $FUNDING_ADDR_TEST_STG
FUNDING_SECRET: $FUNDING_SECRET_TEST_STG
FAUCETNG_DNS: $FAUCETNG_DNS_TEST_STG
RIPPLED_URI: $RIPPLED_URI_TEST
BIGQUERY_PRIVATE_KEY: $BIGQUERY_PRIVATE_KEY
BIGQUERY_CLIENT_EMAIL: $BIGQUERY_CLIENT_EMAIL
BIGQUERY_PROJECT_ID: $BIGQUERY_PROJECT_ID
BIGQUERY_DATASET_ID: $BIGQUERY_DATASET_ID
BIGQUERY_TABLE_ID: $BIGQUERY_TABLE_ID
deploy to devnet stg:
stage: deploy
extends: .deploy_to_stg
variables:
RELEASE_ENV: stg-devnet
FUNDING_ADDR: $FUNDING_ADDR_DEV_STG
FUNDING_SECRET: $FUNDING_SECRET_DEV_STG
FAUCETNG_DNS: $FAUCETNG_DNS_DEV_STG
RIPPLED_URI: $RIPPLED_URI_DEV
BIGQUERY_PRIVATE_KEY: $BIGQUERY_PRIVATE_KEY
BIGQUERY_CLIENT_EMAIL: $BIGQUERY_CLIENT_EMAIL
BIGQUERY_PROJECT_ID: $BIGQUERY_PROJECT_ID
BIGQUERY_DATASET_ID: $BIGQUERY_DATASET_ID
BIGQUERY_TABLE_ID: $BIGQUERY_TABLE_ID
###################### PRODUCTION DEPLOYMENTS ######################
.deploy_to_prod:
stage: deploy
extends: .deploy_faucet
variables:
GCLOUD_PROJECT_ID: xpring-testnet
CLUSTER_NAME: xpring-testnet-cluster01
CLUSTER_REGION: us-central1
deploy to testnet prod:
stage: deploy
extends: .deploy_to_prod
variables:
RELEASE_ENV: prod-testnet
FUNDING_ADDR: $FUNDING_ADDR_TEST_PROD
FUNDING_SECRET: $FUNDING_SECRET_TEST_PROD
FAUCETNG_DNS: $FAUCETNG_DNS_TEST_PROD
RIPPLED_URI: $RIPPLED_URI_TEST
BIGQUERY_PRIVATE_KEY: $BIGQUERY_PRIVATE_KEY
BIGQUERY_CLIENT_EMAIL: $BIGQUERY_CLIENT_EMAIL
BIGQUERY_PROJECT_ID: $BIGQUERY_PROJECT_ID
BIGQUERY_DATASET_ID: $BIGQUERY_DATASET_ID
BIGQUERY_TABLE_ID: $BIGQUERY_TABLE_ID
deploy to devnet prod:
stage: deploy
extends: .deploy_to_prod
variables:
RELEASE_ENV: prod-devnet
FUNDING_ADDR: $FUNDING_ADDR_DEV_PROD
FUNDING_SECRET: $FUNDING_SECRET_DEV_PROD
FAUCETNG_DNS: $FAUCETNG_DNS_DEV_PROD
RIPPLED_URI: $RIPPLED_URI_DEV
BIGQUERY_PRIVATE_KEY: $BIGQUERY_PRIVATE_KEY
BIGQUERY_CLIENT_EMAIL: $BIGQUERY_CLIENT_EMAIL
BIGQUERY_PROJECT_ID: $BIGQUERY_PROJECT_ID
BIGQUERY_DATASET_ID: $BIGQUERY_DATASET_ID
BIGQUERY_TABLE_ID: $BIGQUERY_TABLE_ID