Commit 8d10044b authored by Andres Anaya Amariels's avatar Andres Anaya Amariels 🚀
Browse files

commented

parent 8843fab8
Loading
Loading
Loading
Loading
+278 −278
Original line number Original line Diff line number Diff line
stages:
#stages:
#  - main_pulling_repo
##  - main_pulling_repo
  - main_secrets_in_repo
#  - main_secrets_in_repo
  - main_linting_code
#  - main_linting_code
  - main_linting_docker
#  - main_linting_docker
  - main_security
#  - main_security
  - main_build_and_push
#  - main_build_and_push

#
variables:
#variables:
  CI_JOB_TOKEN: $CI_JOB_TOKEN
#  CI_JOB_TOKEN: $CI_JOB_TOKEN
  CI_DEBUG_TRACE: "false"
#  CI_DEBUG_TRACE: "false"
  CI_REGISTRY_USER: $CI_REGISTRY_USER
#  CI_REGISTRY_USER: $CI_REGISTRY_USER
  CI_REGISTRY: $CI_REGISTRY
#  CI_REGISTRY: $CI_REGISTRY
  CAPIF_DOCKER_REGISTRY: $CAPIF_DOCKER_REGISTRY
#  CAPIF_DOCKER_REGISTRY: $CAPIF_DOCKER_REGISTRY

#
.main_common: &main_common
#.main_common: &main_common
  only:
#  only:
    - merge_requests
#    - merge_requests
  except:
#  except:
    variables:
#    variables:
      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main"
#      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main"
  tags:
#  tags:
    - shell
#    - shell

#
.main_dnd: &main_dnd
#.main_dnd: &main_dnd
  allow_failure: true
#  allow_failure: true
  rules:
#  rules:
    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
#    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
      when: always
    - when: never
  services:
    - docker:24.0.5-dind
  tags:
    - docker-in-docker

main_secrets_in_repo:
  stage: main_secrets_in_repo
  script:
    - |
      pip install trufflehog
      cd ../
      trufflehog capif --exclude_paths capif/cicd/exclusions --max_depth=5
  <<: *main_common

# define the process to do linting code: Sonarque, ruff?
main_linting_code:
  stage: main_linting_code
  script:
    - |
      echo "###ruff checks###"
      pip install ruff
      ruff check --config cicd/ruff.toml . || true
  needs: ["main_secrets_in_repo"]
  <<: *main_common

main_linting_docker:
  stage: main_linting_docker
  script:
   - |
    # Download hadolint binary
    wget https://github.com/hadolint/hadolint/releases/download/v2.8.0/hadolint-Linux-x86_64 -O hadolint    

    # Make it executable
    chmod +x hadolint    

    # Move it to your binaries folder
    mv hadolint ../    

    # Verify the installation
    echo "### hadolint version ###"
    ../hadolint --version    

    # Array of service names
    SERVICES=("vault" "nginx" "register" "TS29222_CAPIF_Access_Control_Policy_API" "TS29222_CAPIF_API_Invoker_Management_API" 
      "TS29222_CAPIF_API_Provider_Management_API" "TS29222_CAPIF_Auditing_API" "TS29222_CAPIF_Discover_Service_API" "TS29222_CAPIF_Events_API" 
      "TS29222_CAPIF_Logging_API_Invocation_API" "TS29222_CAPIF_Publish_Service_API" "TS29222_CAPIF_Routing_Info_API" "TS29222_CAPIF_Security_API"
      "vault")

    # Loop over service names
    for SERVICE in "${SERVICES[@]}"; do
      echo "### $SERVICE ###"
      
      # Run hadolint on Dockerfile
      ../hadolint services/$SERVICE/Dockerfile || true
      
      echo "----------------------------------------------------"
    done

#  artifacts:
#    name: "$CI_JOB_NAME artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
#      when: always
#      when: always
#    reports:
#    - when: never
#      codequality:
#  services:
#        - docker-lint.json
#    - docker:24.0.5-dind
#  interruptible: true    
#  tags:
  needs: ["main_linting_code"]
#    - docker-in-docker
  <<: *main_common
#

#main_secrets_in_repo:

#  stage: main_secrets_in_repo
main_cvs:
#  script:
  needs: ["main_linting_docker"]
#    - |
  stage: main_security
#      pip install trufflehog
  script: 
#      cd ../
   - |
#      trufflehog capif --exclude_paths capif/cicd/exclusions --max_depth=5
    # Install grype
#  <<: *main_common
    curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b ../
#
    
## define the process to do linting code: Sonarque, ruff?
    # Print grype version
#main_linting_code:
    echo "### grype version###"
#  stage: main_linting_code
    ../grype version
#  script:
    
#    - |
    # Create output directory if it doesn't exist
#      echo "###ruff checks###"
    DIRECTORY=./grype-outputs
#      pip install ruff
    if [ ! -d "$DIRECTORY" ]; then
#      ruff check --config cicd/ruff.toml . || true
      mkdir $DIRECTORY
#  needs: ["main_secrets_in_repo"]
      echo "Directory created"
#  <<: *main_common
    else
#
      echo "Directory already exists"
#main_linting_docker:
    fi
#  stage: main_linting_docker
    
#  script:
    # Save current directory
#   - |
    export TMP_PWD=$PWD
#    # Download hadolint binary
    echo "TMP_PWD=$TMP_PWD"
#    wget https://github.com/hadolint/hadolint/releases/download/v2.8.0/hadolint-Linux-x86_64 -O hadolint    
    
#
    # Array of image names
#    # Make it executable
    IMAGE_NAMES=("nginx" "register" "TS29222_CAPIF_Access_Control_Policy_API" "TS29222_CAPIF_API_Invoker_Management_API"
#    chmod +x hadolint    
      "TS29222_CAPIF_API_Provider_Management_API" "TS29222_CAPIF_Auditing_API" "TS29222_CAPIF_Discover_Service_API"
#
      "TS29222_CAPIF_Events_API" "TS29222_CAPIF_Logging_API_Invocation_API" "TS29222_CAPIF_Publish_Service_API"
#    # Move it to your binaries folder
      "TS29222_CAPIF_Routing_Info_API" "TS29222_CAPIF_Security_API" "vault")
#    mv hadolint ../    
    
#
    # Loop over image names
#    # Verify the installation
    for IMAGE_NAME in "${IMAGE_NAMES[@]}"; do
#    echo "### hadolint version ###"
      # Convert SERVICE to lowercase
#    ../hadolint --version    
      IMAGE_LOWER=${IMAGE_NAME,,}
#

#    # Array of service names
      echo "---- variable ----"
#    SERVICES=("vault" "nginx" "register" "TS29222_CAPIF_Access_Control_Policy_API" "TS29222_CAPIF_API_Invoker_Management_API" 
      echo "### build and push $IMAGE_NAME image###"
#      "TS29222_CAPIF_API_Provider_Management_API" "TS29222_CAPIF_Auditing_API" "TS29222_CAPIF_Discover_Service_API" "TS29222_CAPIF_Events_API" 
      
#      "TS29222_CAPIF_Logging_API_Invocation_API" "TS29222_CAPIF_Publish_Service_API" "TS29222_CAPIF_Routing_Info_API" "TS29222_CAPIF_Security_API"
      # Navigate to service directory
#      "vault")
      cd services/$IMAGE_NAME/
#
      
#    # Loop over service names
      # Login to Docker registry
#    for SERVICE in "${SERVICES[@]}"; do
      docker login --username $CI_REGISTRY_USER --password $CAPIF_DOCKER_REGISTRY $CI_REGISTRY
#      echo "### $SERVICE ###"
      
#      
      # Build Docker image
#      # Run hadolint on Dockerfile
      docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/$IMAGE_LOWER:latest .
#      ../hadolint services/$SERVICE/Dockerfile || true
      
#      
      # Navigate back to original directory
#      echo "----------------------------------------------------"
      cd $TMP_PWD
#    done
      
#
      echo "### Container Vulnerability Scanning $IMAGE_NAME###"
##  artifacts:
      
##    name: "$CI_JOB_NAME artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
      # Scan Docker image with grype and save output to file
##    when: always
      #../grype $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/$IMAGE_LOWER:latest --scope all-layers > ./grype-outputs/grype_$IMAGE_NAME-latest.txt
##    reports:
      
##      codequality:
      echo "----------------------------------------------------"
##        - docker-lint.json
    done
##  interruptible: true    
  artifacts:
#  needs: ["main_linting_code"]
    untracked: false
#  <<: *main_common
    paths:
#
      - ./grype-outputs/*.txt
#
    when: on_success
#main_cvs:
    expire_in: "1 week"
#  needs: ["main_linting_docker"]
  <<: *main_common    
#  stage: main_security

#  script: 
main_semgrep_sast:
#   - |
  needs:
#    # Install grype
    - main_linting_code
#    curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b ../
    - main_linting_docker
#    
  stage: main_security
#    # Print grype version
  extends: semgrep-sast
#    echo "### grype version###"
  variables:
#    ../grype version
    DOCKER_HOST: tcp://docker:2375
#    
    SAST_DEFAULT_ANALYZERS: bandit
#    # Create output directory if it doesn't exist
  <<: *main_dnd
#    DIRECTORY=./grype-outputs

#    if [ ! -d "$DIRECTORY" ]; then
gemnasium-python-dependency_scanning:
#      mkdir $DIRECTORY
  stage: test
#      echo "Directory created"
  before_script:
#    else
    - echo " ----- not run test stage -----"
#      echo "Directory already exists"
  rules:
#    fi
    - when: never
#    

#    # Save current directory
main_gemnasium_python_sca:
#    export TMP_PWD=$PWD
  needs:
#    echo "TMP_PWD=$TMP_PWD"
    - main_linting_code
#    
    - main_linting_docker
#    # Array of image names
  stage: staging_security
#    IMAGE_NAMES=("nginx" "register" "TS29222_CAPIF_Access_Control_Policy_API" "TS29222_CAPIF_API_Invoker_Management_API"
  extends: gemnasium-python-dependency_scanning
#      "TS29222_CAPIF_API_Provider_Management_API" "TS29222_CAPIF_Auditing_API" "TS29222_CAPIF_Discover_Service_API"
  variables:
#      "TS29222_CAPIF_Events_API" "TS29222_CAPIF_Logging_API_Invocation_API" "TS29222_CAPIF_Publish_Service_API"
    DS_ANALYZER_NAME: "gemnasium-python"
#      "TS29222_CAPIF_Routing_Info_API" "TS29222_CAPIF_Security_API" "vault")
  <<: *main_dnd
#    

#    # Loop over image names
main_build_and_push:
#    for IMAGE_NAME in "${IMAGE_NAMES[@]}"; do
  needs: ["main_security"]
#      # Convert SERVICE to lowercase
  stage: main_build_and_push
#      IMAGE_LOWER=${IMAGE_NAME,,}
  script:
#
   - export TMP_PWD=$PWD
#      echo "---- variable ----"
   - echo "TMP_PWD=$TMP_PWD"
#      echo "### build and push $IMAGE_NAME image###"
   - echo "### docker login###"
#      
   - docker login --username $CI_REGISTRY_USER --password $CAPIF_DOCKER_REGISTRY $CI_REGISTRY
#      # Navigate to service directory
   - echo "----------------------------------------------------"
#      cd services/$IMAGE_NAME/
   - echo "### build and push nginx image###"
#      
   - cd $TMP_PWD/services/nginx/
#      # Login to Docker registry
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx:$CI_COMMIT_REF_SLUG .
#      docker login --username $CI_REGISTRY_USER --password $CAPIF_DOCKER_REGISTRY $CI_REGISTRY
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx:$CI_COMMIT_REF_SLUG
#      
   - echo "----------------------------------------------------"
#      # Build Docker image
   - echo "### build and push register image###"
#      docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/$IMAGE_LOWER:latest .
   - cd $TMP_PWD/services/register/
#      
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register:$CI_COMMIT_REF_SLUG .
#      # Navigate back to original directory
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register:$CI_COMMIT_REF_SLUG
#      cd $TMP_PWD
   - echo "----------------------------------------------------"
#      
   - echo "### build and push TS29222_CAPIF_Access_Control_Policy_API image###"
#      echo "### Container Vulnerability Scanning $IMAGE_NAME###"
   - cd $TMP_PWD/services/TS29222_CAPIF_Access_Control_Policy_API/
#      
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api:$CI_COMMIT_REF_SLUG .
#      # Scan Docker image with grype and save output to file
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api:$CI_COMMIT_REF_SLUG
#      #../grype $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/$IMAGE_LOWER:latest --scope all-layers > ./grype-outputs/grype_$IMAGE_NAME-latest.txt
   - echo "----------------------------------------------------"
#      
   - echo "### build and push TS29222_CAPIF_API_Invoker_Management_API image###"
#      echo "----------------------------------------------------"
   - cd $TMP_PWD/services/TS29222_CAPIF_API_Invoker_Management_API/
#    done
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api:$CI_COMMIT_REF_SLUG .
#  artifacts:
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api:$CI_COMMIT_REF_SLUG
#    untracked: false
   - echo "----------------------------------------------------"
#    paths:
   - echo "### build and push TS29222_CAPIF_API_Provider_Management_API image###"
#      - ./grype-outputs/*.txt
   - cd $TMP_PWD/services/TS29222_CAPIF_API_Provider_Management_API/
#    when: on_success
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api:$CI_COMMIT_REF_SLUG .
#    expire_in: "1 week"
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api:$CI_COMMIT_REF_SLUG
#  <<: *main_common    
   - echo "----------------------------------------------------"
#
   - echo "### build and push TS29222_CAPIF_Auditing_API image###"
#main_semgrep_sast:
   - cd $TMP_PWD/services/TS29222_CAPIF_Auditing_API/
#  needs:
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api:$CI_COMMIT_REF_SLUG .
#    - main_linting_code
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api:$CI_COMMIT_REF_SLUG
#    - main_linting_docker
   - echo "----------------------------------------------------"
#  stage: main_security
   - echo "### build and push TS29222_CAPIF_Discover_Service_API image###"
#  extends: semgrep-sast
   - cd $TMP_PWD/services/TS29222_CAPIF_Discover_Service_API/
#  variables:
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api:$CI_COMMIT_REF_SLUG .
#    DOCKER_HOST: tcp://docker:2375
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api:$CI_COMMIT_REF_SLUG
#    SAST_DEFAULT_ANALYZERS: bandit
   - echo "----------------------------------------------------"
#  <<: *main_dnd
   - echo "### build and push TS29222_CAPIF_Events_API image###"
#
   - cd $TMP_PWD/services/TS29222_CAPIF_Events_API/
#gemnasium-python-dependency_scanning:
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api:$CI_COMMIT_REF_SLUG .
#  stage: test
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api:$CI_COMMIT_REF_SLUG
#  before_script:
   - echo "----------------------------------------------------"
#    - echo " ----- not run test stage -----"
   - echo "### build and push TS29222_CAPIF_Logging_API_Invocation_API image###"
#  rules:
   - cd $TMP_PWD/services/TS29222_CAPIF_Logging_API_Invocation_API/
#    - when: never
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api:$CI_COMMIT_REF_SLUG .
#
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api:$CI_COMMIT_REF_SLUG
#main_gemnasium_python_sca:
   - echo "----------------------------------------------------"
#  needs:
   - echo "### build and push TS29222_CAPIF_Publish_Service_API image###"
#    - main_linting_code
   - cd $TMP_PWD/services/TS29222_CAPIF_Publish_Service_API/
#    - main_linting_docker
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api:$CI_COMMIT_REF_SLUG .
#  stage: staging_security
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api:$CI_COMMIT_REF_SLUG
#  extends: gemnasium-python-dependency_scanning
   - echo "----------------------------------------------------"
#  variables:
   - echo "### build and push TS29222_CAPIF_Routing_Info_API image###"
#    DS_ANALYZER_NAME: "gemnasium-python"
   - cd $TMP_PWD/services/TS29222_CAPIF_Routing_Info_API/
#  <<: *main_dnd
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api:$CI_COMMIT_REF_SLUG .
#
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api:$CI_COMMIT_REF_SLUG
#main_build_and_push:
   - echo "----------------------------------------------------"
#  needs: ["main_security"]
   - echo "### build and push TS29222_CAPIF_Security_API image###"
#  stage: main_build_and_push
   - cd $TMP_PWD/services/TS29222_CAPIF_Security_API/
#  script:
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api:$CI_COMMIT_REF_SLUG .
#   - export TMP_PWD=$PWD
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api:$CI_COMMIT_REF_SLUG
#   - echo "TMP_PWD=$TMP_PWD"
   - echo "----------------------------------------------------"
#   - echo "### docker login###"
   - echo "### build and push vault image###"
#   - docker login --username $CI_REGISTRY_USER --password $CAPIF_DOCKER_REGISTRY $CI_REGISTRY
   - cd $TMP_PWD/services/vault/
#   - echo "----------------------------------------------------"
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/vault:$CI_COMMIT_REF_SLUG .
#   - echo "### build and push nginx image###"
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/vault:$CI_COMMIT_REF_SLUG
#   - cd $TMP_PWD/services/nginx/
   - echo "----------------------------------------------------"
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx:$CI_COMMIT_REF_SLUG .
   - echo "### build and push helper image###"
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx:$CI_COMMIT_REF_SLUG
   - cd $TMP_PWD/services/helper/
#   - echo "----------------------------------------------------"
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper:$CI_COMMIT_REF_SLUG .
#   - echo "### build and push register image###"
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper:$CI_COMMIT_REF_SLUG
#   - cd $TMP_PWD/services/register/
   - echo "----------------------------------------------------"
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register:$CI_COMMIT_REF_SLUG .
   - echo "### build and push mock-server image###"
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register:$CI_COMMIT_REF_SLUG
   - cd $TMP_PWD/services/mock_server/
#   - echo "----------------------------------------------------"
   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server:$CI_COMMIT_REF_SLUG .
#   - echo "### build and push TS29222_CAPIF_Access_Control_Policy_API image###"
   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server:$CI_COMMIT_REF_SLUG
#   - cd $TMP_PWD/services/TS29222_CAPIF_Access_Control_Policy_API/
   - echo "----------------------------------------------------"
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api:$CI_COMMIT_REF_SLUG .
   - docker logout $CI_REGISTRY
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api:$CI_COMMIT_REF_SLUG
  <<: *main_common
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_API_Invoker_Management_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_API_Invoker_Management_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_API_Provider_Management_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_API_Provider_Management_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Auditing_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Auditing_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Discover_Service_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Discover_Service_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Events_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Events_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Logging_API_Invocation_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Logging_API_Invocation_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Publish_Service_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Publish_Service_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Routing_Info_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Routing_Info_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push TS29222_CAPIF_Security_API image###"
#   - cd $TMP_PWD/services/TS29222_CAPIF_Security_API/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push vault image###"
#   - cd $TMP_PWD/services/vault/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/vault:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/vault:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push helper image###"
#   - cd $TMP_PWD/services/helper/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - echo "### build and push mock-server image###"
#   - cd $TMP_PWD/services/mock_server/
#   - docker build -t $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server:$CI_COMMIT_REF_SLUG .
#   - docker push $CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server:$CI_COMMIT_REF_SLUG
#   - echo "----------------------------------------------------"
#   - docker logout $CI_REGISTRY
#  <<: *main_common