Files
docker-seafile-client/.gitlab-ci.yml

39 lines
1.2 KiB
YAML

image: docker:latest
services:
- docker:dind
stages:
- build
staging:
stage: build
before_script:
- echo $CI_JOB_TOKEN | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
script:
- docker build -t $CI_REGISTRY_IMAGE:staging .
- docker push $CI_REGISTRY_IMAGE:staging
only:
- staging
production:
stage: build
before_script:
- echo $CI_JOB_TOKEN | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
- if ! [[ "$CI_COMMIT_TAG" =~ ^[0-9]+[.][0-9]+[.][0-9]+$ ]]; then echo "Version number must match major.minor.revision!"; exit 1; fi
script:
- MAJOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $1'})
- MINOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $2'})
- REVISION_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $3'})
- MAJOR=$MAJOR_NUMBER
- MINOR=$MAJOR.$MINOR_NUMBER
- REVISION=$MINOR.$REVISION_NUMBER
- docker build -t $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:$MAJOR -t $CI_REGISTRY_IMAGE:$MINOR -t $CI_REGISTRY_IMAGE:$REVISION .
- docker push $CI_REGISTRY_IMAGE:latest
- docker push $CI_REGISTRY_IMAGE:$MAJOR
- docker push $CI_REGISTRY_IMAGE:$MINOR
- docker push $CI_REGISTRY_IMAGE:$REVISION
only:
- tags
except:
- branches