forked from Flagsmith/flagsmith-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
90 lines (84 loc) · 2.85 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
stages:
- test
- build
- deploy
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
test:
image: kylessg/bullet-train-nightwatch:1.1
stage: test
script:
- google-chrome --version
- node -v
- npm i
- if [ $CI_COMMIT_REF_NAME == "staging" ]; then export ENV=staging; echo 'Setting env to' $ENV; npm run env; fi;
- if [ $CI_COMMIT_REF_NAME == "develop" ]; then export ENV=dev; echo 'Setting env to' $ENV; npm run env; fi;
- if [ $CI_COMMIT_REF_NAME == "master" ]; then export ENV=prod; echo 'Setting env to' $ENV; npm run env; fi;
- npm run test
only:
- master
- staging
# - develop
build-dockerhub:
stage: build
image:
# TODO: use latest instead of debug once we get to the bottom of issue using latest tag
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
variables:
DOCKER_HUB_AUTH: $DOCKER_HUB_AUTH
script:
- if [ "$CI_COMMIT_REF_NAME" == "master" ]; then IMAGE_TAG="latest"; else IMAGE_TAG=$CI_COMMIT_REF_SLUG; fi
- echo $CI_COMMIT_REF_NAME > $CI_PROJECT_DIR/CI_COMMIT_REF_NAME
- echo $CI_COMMIT_SHA > $CI_PROJECT_DIR/CI_COMMIT_SHA
- echo $IMAGE_TAG > $CI_PROJECT_DIR/IMAGE_TAG
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_HUB_AUTH\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination flagsmith/flagsmith-frontend:$IMAGE_TAG
only:
- master
- tags
- develop
deploymaster:
image: kylessg/bullet-train-gcloud:1.0
stage: deploy
script:
- npm i
- export ENV=prod; npm run env
- npm run dotenv
- npm run bundle
- echo $DEPLOY_KEY_FILE_PROD > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud config set project bullet-train-front-end-prod
- gcloud app deploy
only:
- master
deploystaging:
image: kylessg/bullet-train-gcloud:1.0
stage: deploy
script:
- npm i
- export ENV=staging; npm run env
- npm run dotenv
- npm run bundlestaging
- echo $DEPLOY_KEY_FILE_STAGING > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud config set project bullet-train-front-end-staging
- gcloud app deploy
only:
- staging
deploydevelop:
image: kylessg/bullet-train-gcloud:1.0
stage: deploy
script:
- npm i
- export ENV=dev; npm run env
- npm run dotenv
- npm run bundledev
- echo $DEPLOY_KEY_FILE_DEV > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud config set project bullet-train-front-end-dev
- gcloud app deploy
only:
- develop