forked from Consensys/boilerplate-react
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
87 lines (80 loc) · 3.64 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
variables:
NAME: web
stages:
- test
- build
- deploy
services:
- docker:dind
test:
stage: test
image: node:10-alpine
script:
- yarn install
- CI=true yarn test -- --coverage
coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/
only:
refs:
- branches
- tags
build-on-branch:
image: docker:stable
stage: build
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
# Build image following http://label-schema.org/rc1/ label convention convention
- docker build --label org.label-schema.schema-version="1.0.0-rc1" --label org.label-schema.build-date=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --label org.label-schema.name="${NAME}" --label org.label-schema.version="dirty" --label org.label-schema.vcs-url="${CI_PROJECT_URL}" --label org.label-schema.vcs-ref="${CI_COMMIT_SHA:0:8}" --label org.label-schema.vendor="ConsenSys France" -t ${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_NAME}:${CI_COMMIT_SHA:0:8} -t ${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_NAME}:latest .
# Push image
- docker push ${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_NAME}:${CI_COMMIT_SHA:0:8}
- docker push ${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_NAME}:latest
after_script:
- docker logout
only:
- /^feature/[a-zA-Z0-9/-]*$/
- /^fix/[a-zA-Z0-9/-]*$/
build-on-master:
image: docker:stable
stage: build
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
# Build image following http://label-schema.org/rc1/ label convention convention
- docker build --label org.label-schema.schema-version="1.0.0-rc1" --label org.label-schema.build-date=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --label org.label-schema.name="${NAME}" --label org.label-schema.version="dirty" --label org.label-schema.vcs-url="${CI_PROJECT_URL}" --label org.label-schema.vcs-ref="${CI_COMMIT_SHA:0:8}" --label org.label-schema.vendor="ConsenSys France" -t ${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_NAME}:${CI_COMMIT_SHA:0:8} -t ${CI_REGISTRY_IMAGE}/master:latest -t ${CI_REGISTRY_IMAGE}:latest .
# Push image
- docker push ${CI_REGISTRY_IMAGE}/master:${CI_COMMIT_SHA:0:8}
- docker push ${CI_REGISTRY_IMAGE}/master:latest
- docker push ${CI_REGISTRY_IMAGE}:latest
after_script:
- docker logout
only:
- master
build-on-tag:
image: docker:stable
stage: build
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
# Build image following http://label-schema.org/rc1/ label convention convention
- docker build --label org.label-schema.schema-version="1.0.0-rc1" --label org.label-schema.build-date=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --label org.label-schema.name="${NAME}" --label org.label-schema.version="${CI_COMMIT_TAG}" --label org.label-schema.vcs-url="${CI_PROJECT_URL}" --label org.label-schema.vcs-ref="${CI_COMMIT_SHA:0:8}" --label org.label-schema.vendor="ConsenSys France" -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} .
# Push image
- docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
after_script:
- docker logout
only:
refs:
- tags
deploy-per-branch:
stage: deploy
script:
- |-
curl -X POST -f token=${TRIGGER_TOKEN} -f ref=${TRIGGER_REMOTE_REF} \
-f "variables[TRIGGER_REGISTRY]=${CI_REGISTRY}" \
-f "variables[TRIGGER_IMAGE_REPOSITORY]=${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_NAME}" \
-f "variables[TRIGGER_IMAGE_TAG]=${CI_COMMIT_SHA:0:8}" \
-f "variables[TRIGGER_REF_NAME]=${CI_COMMIT_REF_NAME}" \
-f "variables[TRIGGER_REF_SLUG]=${CI_COMMIT_REF_SLUG}" \
https://gitlab.com/api/v4/projects/${TRIGGER_PROJECT}/trigger/pipeline
only:
- /^feature/[a-zA-Z0-9/-]*$/
- /^fix/[a-zA-Z0-9/-]*$/