Created
October 2, 2021 06:04
-
-
Save Adizbek/beac1aec67516043833666d99be1a77d to your computer and use it in GitHub Desktop.
Gitlab CI/CD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# To contribute improvements to CI/CD templates, please follow the Development guide at: | |
# https://docs.gitlab.com/ee/development/cicd/templates.html | |
# This specific template is located at: | |
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Docker.gitlab-ci.yml | |
# Build a Docker image with CI/CD and push to the GitLab registry. | |
# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html | |
# | |
# This template uses one generic job with conditional builds | |
# for the default branch and all other (MR) branches. | |
docker-build: | |
# Use the official docker image. | |
image: docker:latest | |
stage: build | |
services: | |
- docker:dind | |
before_script: | |
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY | |
# Default branch leaves tag empty (= latest tag) | |
# All other branches are tagged with the escaped branch name (commit ref slug) | |
script: | |
- | | |
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then | |
tag="" | |
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'" | |
else | |
tag=":$CI_COMMIT_REF_SLUG" | |
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag" | |
fi | |
- docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" . | |
- docker push "$CI_REGISTRY_IMAGE${tag}" | |
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" | |
# Run this job in a branch where a Dockerfile exists | |
rules: | |
- if: $CI_COMMIT_BRANCH | |
exists: | |
- Dockerfile |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment