-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
26 lines (23 loc) · 1.11 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
image: docker:stable
stages:
- build
before_script:
- export IMAGE_PREFIX=`[ ! -z $CI_MERGE_REQUEST_ID ] && echo "MR$CI_MERGE_REQUEST_ID" || echo $CI_COMMIT_REF_NAME`
- export IMAGE_TAG=$IMAGE_PREFIX`[ ! -z $CI_COMMIT_TAG ] && echo "" || echo "-$CI_COMMIT_SHORT_SHA"`
- export LATEST_IMAGE_TAG=`[ -z $CI_COMMIT_TAG ] && echo "$IMAGE_PREFIX-" || echo ''`latest
- export RELEASE=`[[ ! -z $CI_COMMIT_TAG ]] && echo "$CI_COMMIT_TAG" || echo "$CI_COMMIT_SHORT_SHA"`
docker:
stage: build
only:
- tags
- release
services:
- docker:dind
script:
- apk update && (which curl || apk add curl)
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build --build-arg VERSION=$RELEASE -t $CI_REGISTRY_IMAGE:$IMAGE_TAG .
- docker tag $CI_REGISTRY_IMAGE:$IMAGE_TAG $CI_REGISTRY_IMAGE:$LATEST_IMAGE_TAG
- docker push $CI_REGISTRY_IMAGE:$IMAGE_TAG
- docker push $CI_REGISTRY_IMAGE:$LATEST_IMAGE_TAG
- '[ ! -z $SENTRY_RELEASE_URL ] && curl $SENTRY_RELEASE_URL -X POST -H "Content-Type: application/json" -d "{\"version\": \"$RELEASE\"}" || echo "Sentry not configured"'