From d7bd2f768ac97536445911b9252bf4b97d0724c6 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:05:42 +0100 Subject: [PATCH 01/14] test --- .gitlab-ci.yml | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 8 +++++++ requirements.txt | 10 ++++++++ test_mymodule.py | 53 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 131 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile create mode 100644 requirements.txt create mode 100644 test_mymodule.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..64c2d18 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,60 @@ +stages: + - build + - test + +variables: + DOCKER_DRIVER: overlay2 + IMAGE_NAME: registry.gitlab.com/$CI_PROJECT_PATH/app + DOCKER_TLS_CERTDIR: "" + +build_image: + stage: build + image: docker:25.0.3 + services: + - docker:25.0.3-dind + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + changes: + - Dockerfile + - requirements.txt + + - if: '$CI_COMMIT_BRANCH == "develop"' + changes: + - Dockerfile + - requirements.txt + - when: never + + script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + + - docker pull $IMAGE_NAME:cache || true + + - docker build \ + --cache-from=$IMAGE_NAME:cache \ + -t $IMAGE_NAME:$CI_COMMIT_SHA \ + -t $IMAGE_NAME:cache \ + . + + - docker push $IMAGE_NAME:$CI_COMMIT_SHA + - docker push $IMAGE_NAME:cache + + artifacts: + expire_in: 1 week + reports: + dotenv: build.env + after_script: + - echo "IMAGE_TAG=$CI_COMMIT_SHA" >> build.env + +test_documentation: + stage: test + image: $IMAGE_NAME:$CI_COMMIT_SHA + needs: ["build_image"] + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: '$CI_COMMIT_BRANCH == "develop"' + - when: never + variables: + GIT_STRATEGY: clone + script: + - ls -la + - python -m unittest discover -s ./doc/tests -t ./doc \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8ded3f5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.12 + +WORKDIR /app +COPY requirements.txt . + +RUN pip install --no-cache-dir -r requirements.txt + +CMD ["python", "-m", "unittest", "discover", "-s", "./doc/tests", "-t", "./doc"] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e26df1e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,10 @@ +# python3.11 project +robotframework==6.1.1 +robotframework-jsonlibrary==0.5 +robotframework-requests==0.9.6 +deepdiff==6.7.1 +prettydiff==0.1.0 +robotframework-httpctrl==0.3.1 +robotframework-tidy==4.11.0 +paho-mqtt==1.6.1 +robotframework-mqttlibrary==0.7.1.post3 diff --git a/test_mymodule.py b/test_mymodule.py new file mode 100644 index 0000000..926819d --- /dev/null +++ b/test_mymodule.py @@ -0,0 +1,53 @@ +import unittest + + +class TestMyModule(unittest.TestCase): + + def setUp(self): + """Set up test fixtures before each test method""" + pass + + def tearDown(self): + """Clean up after each test method""" + pass + + def test_addition(self): + """Test basic addition""" + result = 2 + 2 + self.assertEqual(result, 4) + + def test_subtraction(self): + """Test basic subtraction""" + result = 5 - 3 + self.assertEqual(result, 2) + + def test_multiplication(self): + """Test basic multiplication""" + result = 3 * 4 + self.assertEqual(result, 12) + + def test_division(self): + """Test basic division""" + result = 10 / 2 + self.assertEqual(result, 5) + + def test_string_concatenation(self): + """Test string concatenation""" + result = "Hello" + " " + "World" + self.assertEqual(result, "Hello World") + + def test_list_operations(self): + """Test list operations""" + my_list = [1, 2, 3] + my_list.append(4) + self.assertEqual(len(my_list), 4) + self.assertIn(4, my_list) + + def test_exception_handling(self): + """Test exception is raised""" + with self.assertRaises(ZeroDivisionError): + result = 1 / 0 + + +if __name__ == '__main__': + unittest.main() \ No newline at end of file -- GitLab From 717b866261221708d0a249adfd3a126dbb0074d2 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:08:00 +0100 Subject: [PATCH 02/14] fix --- .gitlab-ci.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 64c2d18..98599ea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ stages: variables: DOCKER_DRIVER: overlay2 - IMAGE_NAME: registry.gitlab.com/$CI_PROJECT_PATH/app + IMAGE_NAME: registry.gitlab.com/${CI_PROJECT_PATH,,}/app DOCKER_TLS_CERTDIR: "" build_image: @@ -29,11 +29,12 @@ build_image: - docker pull $IMAGE_NAME:cache || true - - docker build \ - --cache-from=$IMAGE_NAME:cache \ - -t $IMAGE_NAME:$CI_COMMIT_SHA \ - -t $IMAGE_NAME:cache \ - . + - > + docker build + --cache-from=$IMAGE_NAME:cache + -t $IMAGE_NAME:$CI_COMMIT_SHA + -t $IMAGE_NAME:cache + . - docker push $IMAGE_NAME:$CI_COMMIT_SHA - docker push $IMAGE_NAME:cache -- GitLab From 6ea70671bb2f08dadc329756478720d7d53f0ade Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:10:07 +0100 Subject: [PATCH 03/14] fix --- .gitlab-ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98599ea..0500890 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,6 @@ stages: variables: DOCKER_DRIVER: overlay2 - IMAGE_NAME: registry.gitlab.com/${CI_PROJECT_PATH,,}/app DOCKER_TLS_CERTDIR: "" build_image: @@ -25,6 +24,9 @@ build_image: - when: never script: + - export IMAGE_NAME="registry.gitlab.com/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')/app" + - echo "Using IMAGE_NAME=$IMAGE_NAME" + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker pull $IMAGE_NAME:cache || true @@ -44,7 +46,9 @@ build_image: reports: dotenv: build.env after_script: + - export IMAGE_NAME="registry.gitlab.com/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')/app" - echo "IMAGE_TAG=$CI_COMMIT_SHA" >> build.env + - echo "IMAGE_NAME=$IMAGE_NAME" >> build.env test_documentation: stage: test @@ -56,6 +60,8 @@ test_documentation: - when: never variables: GIT_STRATEGY: clone + before_script: + - export IMAGE_NAME="registry.gitlab.com/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')/app" script: - ls -la - python -m unittest discover -s ./doc/tests -t ./doc \ No newline at end of file -- GitLab From 725f7827a11c3ba23dd843e0bbd740cdc74f58c9 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:19:22 +0100 Subject: [PATCH 04/14] test --- .gitlab-ci.yml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0500890..f38aacb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" + FORGE_REGISTRY: forge.etsi.org:5050 build_image: stage: build @@ -16,27 +17,24 @@ build_image: changes: - Dockerfile - requirements.txt - - if: '$CI_COMMIT_BRANCH == "develop"' changes: - Dockerfile - requirements.txt - when: never + before_script: + - echo "CI_REGISTRY = $CI_REGISTRY" + - echo "CI_PROJECT_PATH = $CI_PROJECT_PATH" + - export IMAGE_NAME="$CI_REGISTRY/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')" + - echo "IMAGE_NAME = $IMAGE_NAME" + script: - - export IMAGE_NAME="registry.gitlab.com/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')/app" - - echo "Using IMAGE_NAME=$IMAGE_NAME" - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker pull $IMAGE_NAME:cache || true - - > - docker build - --cache-from=$IMAGE_NAME:cache - -t $IMAGE_NAME:$CI_COMMIT_SHA - -t $IMAGE_NAME:cache - . + - docker build --cache-from=$IMAGE_NAME:cache -t $IMAGE_NAME:$CI_COMMIT_SHA -t $IMAGE_NAME:cache . - docker push $IMAGE_NAME:$CI_COMMIT_SHA - docker push $IMAGE_NAME:cache @@ -46,13 +44,13 @@ build_image: reports: dotenv: build.env after_script: - - export IMAGE_NAME="registry.gitlab.com/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')/app" + - export IMAGE_NAME="$CI_REGISTRY/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')" - echo "IMAGE_TAG=$CI_COMMIT_SHA" >> build.env - echo "IMAGE_NAME=$IMAGE_NAME" >> build.env test_documentation: stage: test - image: $IMAGE_NAME:$CI_COMMIT_SHA + image: $IMAGE_NAME:$IMAGE_TAG needs: ["build_image"] rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' @@ -60,8 +58,6 @@ test_documentation: - when: never variables: GIT_STRATEGY: clone - before_script: - - export IMAGE_NAME="registry.gitlab.com/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')/app" script: - ls -la - python -m unittest discover -s ./doc/tests -t ./doc \ No newline at end of file -- GitLab From f3da7317ed51f714113b04c9252d9b27a17d9809 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:22:23 +0100 Subject: [PATCH 05/14] fix: clean up .gitlab-ci.yml by removing unused variables and improving script organization --- .gitlab-ci.yml | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f38aacb..ac3cca7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,6 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" - FORGE_REGISTRY: forge.etsi.org:5050 build_image: stage: build @@ -38,26 +37,35 @@ build_image: - docker push $IMAGE_NAME:$CI_COMMIT_SHA - docker push $IMAGE_NAME:cache + + - echo "IMAGE_TAG=$CI_COMMIT_SHA" > build.env + - echo "IMAGE_NAME=$IMAGE_NAME" >> build.env + - cat build.env artifacts: expire_in: 1 week reports: dotenv: build.env - after_script: - - export IMAGE_NAME="$CI_REGISTRY/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')" - - echo "IMAGE_TAG=$CI_COMMIT_SHA" >> build.env - - echo "IMAGE_NAME=$IMAGE_NAME" >> build.env test_documentation: stage: test - image: $IMAGE_NAME:$IMAGE_TAG - needs: ["build_image"] + image: docker:25.0.3 + services: + - docker:25.0.3-dind + needs: + - job: build_image + artifacts: true rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - if: '$CI_COMMIT_BRANCH == "develop"' - when: never variables: - GIT_STRATEGY: clone + GIT_STRATEGY: clone + before_script: + - echo "IMAGE_NAME from artifact = $IMAGE_NAME" + - echo "IMAGE_TAG from artifact = $IMAGE_TAG" + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker pull $IMAGE_NAME:$IMAGE_TAG script: - - ls -la - - python -m unittest discover -s ./doc/tests -t ./doc \ No newline at end of file + - echo "Running tests in container..." + - docker run --rm -v $CI_PROJECT_DIR:/workspace -w /workspace $IMAGE_NAME:$IMAGE_TAG python -m unittest discover -s ./doc/tests -t ./doc \ No newline at end of file -- GitLab From 24943750bd5de8c3894bcae619e8f3089cfd7adb Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:23:50 +0100 Subject: [PATCH 06/14] test --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac3cca7..d51b62f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -68,4 +68,4 @@ test_documentation: - docker pull $IMAGE_NAME:$IMAGE_TAG script: - echo "Running tests in container..." - - docker run --rm -v $CI_PROJECT_DIR:/workspace -w /workspace $IMAGE_NAME:$IMAGE_TAG python -m unittest discover -s ./doc/tests -t ./doc \ No newline at end of file + - docker run --rm -v $CI_PROJECT_DIR:/workspace -w /workspace $IMAGE_NAME:$IMAGE_TAG python -m unittest test_mymodule \ No newline at end of file -- GitLab From 1e591fc5c82d84bfdf6d6139e92196f549f3ef61 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:25:58 +0100 Subject: [PATCH 07/14] test --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d51b62f..02c20bf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,7 +43,7 @@ build_image: - cat build.env artifacts: - expire_in: 1 week + expire_in: 3 months reports: dotenv: build.env -- GitLab From 87a5f05175d6df7755c51423619ff25bec4bfe40 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:28:44 +0100 Subject: [PATCH 08/14] test --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 02c20bf..ae7f2ca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" + GIT_CLEAN_FLAGS: -ffdx build_image: stage: build -- GitLab From ecc3c63d981c7ea278b1f1adb31d847f2cd62190 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:30:02 +0100 Subject: [PATCH 09/14] test --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae7f2ca..269b41c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" - GIT_CLEAN_FLAGS: -ffdx + GIT_STRATEGY: clone build_image: stage: build -- GitLab From af8473aa7ca30dde11e41da9b82a2d2ed62f4cce Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:31:48 +0100 Subject: [PATCH 10/14] test --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 269b41c..fb2fc4f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,7 @@ variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" GIT_STRATEGY: clone + PRE_CLONE_SCRIPT: "rm -rf $CI_PROJECT_DIR/__pycache__ || true" build_image: stage: build -- GitLab From 73e0faaa43685186a966fd56a6bdf85c931bf9ba Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:34:04 +0100 Subject: [PATCH 11/14] test --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb2fc4f..ddd1bba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,8 +5,7 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" - GIT_STRATEGY: clone - PRE_CLONE_SCRIPT: "rm -rf $CI_PROJECT_DIR/__pycache__ || true" + FF_USE_LEGACY_BUILDS_DIR_FOR_DOCKER: "true" build_image: stage: build @@ -23,6 +22,8 @@ build_image: - Dockerfile - requirements.txt - when: never + variables: + GIT_STRATEGY: clone before_script: - echo "CI_REGISTRY = $CI_REGISTRY" -- GitLab From f566b6cd2e2409b0bf2d0ad5881dda846d323493 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:36:59 +0100 Subject: [PATCH 12/14] test --- .gitlab-ci.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ddd1bba..b2fd72b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,6 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" - FF_USE_LEGACY_BUILDS_DIR_FOR_DOCKER: "true" build_image: stage: build @@ -49,6 +48,10 @@ build_image: expire_in: 3 months reports: dotenv: build.env + + after_script: + - rm -rf __pycache__ || true + - find . -type d -name __pycache__ -exec rm -rf {} + || true test_documentation: stage: test @@ -71,4 +74,8 @@ test_documentation: - docker pull $IMAGE_NAME:$IMAGE_TAG script: - echo "Running tests in container..." - - docker run --rm -v $CI_PROJECT_DIR:/workspace -w /workspace $IMAGE_NAME:$IMAGE_TAG python -m unittest test_mymodule \ No newline at end of file + - docker run --rm -v $CI_PROJECT_DIR:/workspace -w /workspace $IMAGE_NAME:$IMAGE_TAG python -m unittest test_mymodule + + after_script: + - rm -rf __pycache__ || true + - find . -type d -name __pycache__ -exec rm -rf {} + || true \ No newline at end of file -- GitLab From 88490236308d170686e536a424fa334a7041fcf4 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:38:43 +0100 Subject: [PATCH 13/14] test --- .gitlab-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b2fd72b..f1132cc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ stages: variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" + GIT_CLEAN_FLAGS: -ffdx build_image: stage: build @@ -23,8 +24,11 @@ build_image: - when: never variables: GIT_STRATEGY: clone + GIT_CLEAN_FLAGS: -ffdx before_script: + - rm -rf __pycache__ || true + - find . -type d -name __pycache__ -exec rm -rf {} + || true - echo "CI_REGISTRY = $CI_REGISTRY" - echo "CI_PROJECT_PATH = $CI_PROJECT_PATH" - export IMAGE_NAME="$CI_REGISTRY/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')" @@ -67,7 +71,10 @@ test_documentation: - when: never variables: GIT_STRATEGY: clone + GIT_CLEAN_FLAGS: -ffdx before_script: + - rm -rf __pycache__ || true + - find . -type d -name __pycache__ -exec rm -rf {} + || true - echo "IMAGE_NAME from artifact = $IMAGE_NAME" - echo "IMAGE_TAG from artifact = $IMAGE_TAG" - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY -- GitLab From 0c686e65f3692c52db634e224e734ec7092ad326 Mon Sep 17 00:00:00 2001 From: Marco Cavalli Date: Fri, 7 Nov 2025 12:42:54 +0100 Subject: [PATCH 14/14] test --- .gitlab-ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f1132cc..01cf23c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,8 +27,6 @@ build_image: GIT_CLEAN_FLAGS: -ffdx before_script: - - rm -rf __pycache__ || true - - find . -type d -name __pycache__ -exec rm -rf {} + || true - echo "CI_REGISTRY = $CI_REGISTRY" - echo "CI_PROJECT_PATH = $CI_PROJECT_PATH" - export IMAGE_NAME="$CI_REGISTRY/$(echo $CI_PROJECT_PATH | tr '[:upper:]' '[:lower:]')" @@ -52,10 +50,6 @@ build_image: expire_in: 3 months reports: dotenv: build.env - - after_script: - - rm -rf __pycache__ || true - - find . -type d -name __pycache__ -exec rm -rf {} + || true test_documentation: stage: test @@ -73,8 +67,6 @@ test_documentation: GIT_STRATEGY: clone GIT_CLEAN_FLAGS: -ffdx before_script: - - rm -rf __pycache__ || true - - find . -type d -name __pycache__ -exec rm -rf {} + || true - echo "IMAGE_NAME from artifact = $IMAGE_NAME" - echo "IMAGE_TAG from artifact = $IMAGE_TAG" - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY -- GitLab