Качественная настройка GitLab CI/CD для server

Во многих компаниях ci/cd оставляют на второе место и основное внимание уделяют написанию кода. Я считаю что в современной разработке ci/cd это неотъемлемая часть кода.

stack.yaml

x-environment: &default-environment
    KAFKA_CLIENT_ID: $KAFKA_CLIENT_ID
    KAFKA_BROKER: kafka-1:9092,kafka-2:9092,kafka-3:9092

services:
  gql:
    image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
    command: ["node", "dist/apps/gql/main.js"]
    init: true
    environment:
      <<: *default-environment
    deploy:
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 1
        window: 60s
      replicas: 1

  rest:
    image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
    command: ["node", "dist/apps/rest/main.js"]
    ports:
      - 3004:3000
    init: true
    environment:
      <<: *default-environment
    deploy:
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 1
        window: 60s
      replicas: 1

  srv:
    image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
    command: ["node", "dist/apps/srv/main.js"]
    init: true
    environment:
      <<: *default-environment
    deploy:
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 1
        window: 60s
      replicas: 1

  cron:
    image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
    command: ["crond", "-f", "-l", "8", "-d", "8", "-L", "/dev/stdout"]
    user: root
    init: true
    environment:
      <<: *default-environment
    deploy:
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 1
        window: 60s
      replicas: 1

networks:
  default:
    name: ${NETWORKS_NAME}
    external: true