Newer
Older
variables:
DOCKER_HOST: $DOCKER_HOST_BIO
PROJECT_NAME: "frontend"
cache:
key: $CI_COMMIT_REF_NAME
paths:
- build/
stages:
- build
# ===========================================================================
# Stage: build
# ===========================================================================
docker-build-latest:
stage: build
image: docker:git
except:
variables:
- $CI_COMMIT_TAG
before_script:
- mkdir -p build
- docker build -t $DOCKER_NAMESPACE/$PROJECT_NAME:latest .
- docker save -o build/image.tar $DOCKER_NAMESPACE/$PROJECT_NAME:latest
docker-build-tag:
stage: build
image: docker:git
only:
variables:
- $CI_COMMIT_TAG
before_script:
script:
- docker build -t $DOCKER_NAMESPACE/$PROJECT_NAME:$CI_COMMIT_TAG .
- docker save -o build/image.tar $DOCKER_NAMESPACE/$PROJECT_NAME:$CI_COMMIT_TAG
artifacts:
paths:
- build/image.tar
expire_in: 10 mins # Optional: Set an expiration time for the artifact
# ===========================================================================
# Stage: test
#
# TODO
# ===========================================================================
# ===========================================================================
# Stage: publish
# ===========================================================================
docker-push-latest:
stage: publish
image: docker
before_script:
- docker login -u $DOCKER_USERNAME -p $DOCKER_TOKEN $DOCKER_REGISTRY
script:
- docker load -i build/image.tar
- docker push $DOCKER_NAMESPACE/$PROJECT_NAME:latest
docker-push-tag:
stage: publish
image: docker
only:
variables:
- $CI_COMMIT_TAG
before_script:
- docker login -u $DOCKER_USERNAME -p $DOCKER_TOKEN $DOCKER_REGISTRY
script:
- docker load -i build/image.tar
- docker push $DOCKER_NAMESPACE/$PROJECT_NAME:$CI_COMMIT_TAG