diff --git a/src/monitoring/.gitlab-ci.yml b/src/monitoring/.gitlab-ci.yml index e40c1e9ee3c2c1410bcfca115396e050d9ba8e1e..17dc763252b1e478bf77bbfccecb5acc1cc91b0d 100644 --- a/src/monitoring/.gitlab-ci.yml +++ b/src/monitoring/.gitlab-ci.yml @@ -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 -