Skip to content
Snippets Groups Projects
Commit b0821c80 authored by Sergio Gonzalez Diaz's avatar Sergio Gonzalez Diaz
Browse files

Update .gitlab-ci.yml

parent ec6a0998
No related branches found
No related tags found
1 merge request!54Release 2.0.0
......@@ -2,131 +2,80 @@
build monitoring:
variables:
IMAGE_NAME: 'monitoring' # name of the microservice
IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
stage: build
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- |-
if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then
docker build -t "$IMAGE_NAME:$CI_DEFAULT_BRANCH" -t "$IMAGE_NAME:$VERSION" -f ./src/$IMAGE_NAME/Dockerfile ./src/
docker tag "$IMAGE_NAME:$CI_DEFAULT_BRANCH" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH"
docker tag "$IMAGE_NAME:$VERSION" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION"
docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH"
docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION"
elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then
docker build -t "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" -f ./src/$IMAGE_NAME/Dockerfile ./src/
docker tag "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then
docker build -t "$IMAGE_NAME:$CI_COMMIT_BRANCH" -f ./src/$IMAGE_NAME/Dockerfile ./src/
docker tag "$IMAGE_NAME:$CI_COMMIT_BRANCH" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH"
docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH"
fi
- docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/
- docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
- docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
- if: '$CI_PIPELINE_SOURCE == "push"'
changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
- changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
# test if the Docker image can be pulled from the gitlab registry
test monitoring pull:
variables:
IMAGE_NAME: 'monitoring' # name of the microservice
IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
stage: test
needs:
- build monitoring
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- |-
if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then
docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH"
docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION"
elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then
docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then
docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH"
fi
- docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
- if: '$CI_PIPELINE_SOURCE == "push"'
changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
- changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
# test if the Docker image can be executed
test monitoring run:
variables:
IMAGE_NAME: 'monitoring' # name of the microservice
IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
stage: test
needs:
- build monitoring
before_script:
- if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
script:
- |-
if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then
docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_DEFAULT_BRANCH"
elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then
docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then
docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_COMMIT_BRANCH"
fi
- docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$IMAGE_TAG"
- docker ps
after_script:
- docker stop $IMAGE_NAME
- docker stop monitoring
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
- if: '$CI_PIPELINE_SOURCE == "push"'
changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
- changes:
- src/$IMAGE_NAME/*.{py,in,yml}
- src/$IMAGE_NAME/Dockerfile
- src/$IMAGE_NAME/tests/*.py
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
# apply unit test to the monitoring component
test monitoring pytest:
variables:
IMAGE_NAME: 'monitoring' # name of the microservice
IMAGE_NAME_TEST: 'monitoring-test' # name of the microservice
IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
stage: test
needs:
- build monitoring
script:
- docker build -t "$IMAGE_NAME_TEST" -f ./src/$IMAGE_NAME/tests/Dockerfile ./src/
- docker run -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" $IMAGE_NAME_TEST
- docker build -t "$IMAGE_NAME_TEST:$IMAGE_TAG" -f ./src/$IMAGE_NAME/tests/Dockerfile ./src/
- docker run -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" $IMAGE_NAME_TEST:$IMAGE_TAG
rules:
- changes:
- src/$IMAGE_NAME/*.{py,in,yml}
......@@ -150,6 +99,7 @@ deploy monitoring development:
- build monitoring
- test monitoring run
script:
- 'sed -i "s/image: .*/image: $CI_REGISTRY\/$CI_PROJECT_NAMESPACE\/$CI_PROJECT_NAME\/$IMAGE_NAME:$IMAGE_TAG/" manifests/$IMAGE_NAME.yaml'
- kubectl version
- kubectl get all
- kubectl apply -f "manifests/$IMAGE_NAME.yaml"
......@@ -180,6 +130,7 @@ deploy monitoring production:
- build monitoring
- test monitoring run
script:
- 'sed -i "s/image: .*/image: $CI_REGISTRY\/$CI_PROJECT_NAMESPACE\/$CI_PROJECT_NAME\/$IMAGE_NAME:$IMAGE_TAG/" manifests/$IMAGE_NAME.yaml'
- kubectl version
- kubectl get all
- kubectl apply -f "manifests/$IMAGE_NAME.yaml"
......@@ -199,4 +150,3 @@ deploy monitoring production:
- src/$IMAGE_NAME/tests/Dockerfile
- manifests/$IMAGE_NAME.yaml
- .gitlab-ci.yml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment