# Copyright (c) 2019  InterDigital Communications, Inc
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

version: 1.4.2
repo:
  name: AdvantEDGE

  #------------------------------
  #  Core Subsystem
  #------------------------------
  core:

    # Go Applications
    go-apps:
      meep-mon-engine:
        src: go-apps/meep-mon-engine
        bin: bin/meep-mon-engine
        chart: charts/meep-mon-engine
        build-flags:
          - -mod=vendor
        codecov: true
        lint: true
      meep-platform-ctrl:
        src: go-apps/meep-platform-ctrl
        bin: bin/meep-platform-ctrl
        chart: charts/meep-platform-ctrl
        codecov: true
        lint: true
        api: go-apps/meep-platform-ctrl/api/swagger.yaml
        docker-data:
          api: bin/meep-swagger-ui
          static: bin/meep-frontend
      meep-virt-engine:
        src: go-apps/meep-virt-engine
        bin: bin/meep-virt-engine
        chart: charts/meep-virt-engine
        codecov: true
        lint: true
        docker-data:
          'entrypoint.sh': go-apps/meep-virt-engine/entrypoint.sh
          meep-loc-serv: charts/meep-loc-serv
          meep-metrics-engine: charts/meep-metrics-engine
          meep-mg-manager: charts/meep-mg-manager
          meep-rnis: charts/meep-rnis
          meep-sandbox-ctrl: charts/meep-sandbox-ctrl
          meep-tc-engine: charts/meep-tc-engine
          meep-virt-chart-templates: charts/meep-virt-chart-templates
      meep-webhook:
        src: go-apps/meep-webhook
        bin: bin/meep-webhook
        chart: charts/meep-webhook
        build-flags:
          - -mod=vendor
        codecov: false
        lint: true

    # Javascript Applications
    js-apps:
      meep-frontend:
        src: js-apps/meep-frontend
        bin: bin/meep-frontend
        lint: true
        local-deps:
          meep-platform-ctrl-api: js-packages/meep-platform-ctrl-client
          meep-sandbox-ctrl-api: js-packages/meep-sandbox-ctrl-client
          meep-mon-engine-api: js-packages/meep-mon-engine-client
      meep-swagger-ui:
        src: js-apps/meep-swagger-ui
        bin: bin/meep-swagger-ui
        lint: false
        api-bundle:
          - core.go-apps.meep-platform-ctrl
          - sandbox.go-apps.meep-sandbox-ctrl
          - sandbox.go-apps.meep-loc-serv
          - packages.go-packages.meep-loc-serv-notification-client
          - sandbox.go-apps.meep-rnis
          - packages.go-packages.meep-rnis-notification-client
          - sandbox.go-apps.meep-metrics-engine
          - packages.go-packages.meep-metrics-engine-notification-client
          - sandbox.go-apps.meep-mg-manager
          - packages.go-packages.meep-mg-app-client

  #------------------------------
  #  Sandbox Subsystem
  #------------------------------
  sandbox:

    # Go Applications
    go-apps:
      meep-loc-serv:
        src: go-apps/meep-loc-serv
        bin: bin/meep-loc-serv
        chart: charts/meep-loc-serv
        build-flags:
          - -mod=vendor
        codecov: false
        lint: true
        api: go-apps/meep-loc-serv/api/swagger.yaml
      meep-metrics-engine:
        src: go-apps/meep-metrics-engine
        bin: bin/meep-metrics-engine
        chart: charts/meep-metrics-engine
        build-flags:
          - -mod=vendor
        codecov: false
        lint: true
        api: go-apps/meep-metrics-engine/api/v2/swagger.yaml
      meep-mg-manager:
        src: go-apps/meep-mg-manager
        bin: bin/meep-mg-manager
        chart: charts/meep-mg-manager
        codecov: false
        lint: true
        api: go-apps/meep-mg-manager/api/swagger.yaml
      meep-rnis:
        src: go-apps/meep-rnis
        bin: bin/meep-rnis
        chart: charts/meep-rnis
        build-flags:
          - -mod=vendor
        codecov: false
        lint: true
        api: go-apps/meep-rnis/api/swagger.yaml
      meep-sandbox-ctrl:
        src: go-apps/meep-sandbox-ctrl
        bin: bin/meep-sandbox-ctrl
        chart: charts/meep-sandbox-ctrl
        codecov: false
        lint: true
        api: go-apps/meep-sandbox-ctrl/api/swagger.yaml
      meep-tc-engine:
        src: go-apps/meep-tc-engine
        bin: bin/meep-tc-engine
        chart: charts/meep-tc-engine
        codecov: false
        lint: true
      meep-tc-sidecar:
        src: go-apps/meep-tc-sidecar
        bin: bin/meep-tc-sidecar
        codecov: false
        lint: true

  #------------------------------
  #  Dependencies
  #------------------------------
  dep:
    meep-couchdb:
      chart: charts/couchdb
    meep-docker-registry:
      chart: charts/docker-registry
    meep-grafana:
      chart: charts/grafana
    meep-influxdb:
      chart: charts/influxdb
    meep-kube-state-metrics:
      chart: charts/kube-state-metrics
    meep-ingress:
      chart: charts/nginx-ingress
    meep-redis:
      chart: charts/redis

  #------------------------------
  #  Packages
  #------------------------------
  packages:

    # Go Packages
    go-packages:
      meep-couch:
        src: go-packages/meep-couch
        lint: true
      meep-data-model:
        src: go-packages/meep-data-model
        lint: true
      meep-loc-serv-client:
        src: go-packages/meep-loc-serv-client
        lint: false
      meep-loc-serv-notification-client:
        src: go-packages/meep-loc-serv-notification-client
        lint: false
        api: go-packages/meep-loc-serv-notification-client/api/swagger.yaml
      meep-logger:
        src: go-packages/meep-logger
        lint: true
      meep-metric-store:
        src: go-packages/meep-metric-store
        lint: true
      meep-metrics-engine-notification-client:
        src: go-packages/meep-metrics-engine-notification-client
        lint: false
        api: go-packages/meep-metrics-engine-notification-client/api/swagger.yaml
      meep-mg-app-client:
        src: go-packages/meep-mg-app-client
        lint: false
        api: go-packages/meep-mg-app-client/api/swagger.yaml
      meep-mg-manager-client:
        src: go-packages/meep-mg-manager-client
        lint: false
      meep-mg-manager-model:
        src: go-packages/meep-mg-manager-model
        lint: true
      meep-model:
        src: go-packages/meep-model
        lint: true
      meep-mq:
        src: go-packages/meep-mq
        lint: true
      meep-net-char-mgr:
        src: go-packages/meep-net-char-mgr
        lint: true
      meep-redis:
        src: go-packages/meep-redis
        lint: true
      meep-replay-manager:
        src: go-packages/meep-replay-manager
        lint: true
      meep-rnis-client:
        src: go-packages/meep-rnis-client
        lint: false
      meep-rnis-notification-client:
        src: go-packages/meep-rnis-notification-client
        lint: false
        api: go-packages/meep-rnis-notification-client/api/swagger.yaml
      meep-sandbox-ctrl-client:
        src: go-packages/meep-sandbox-ctrl-client
        lint: false
      meep-watchdog:
        src: go-packages/meep-watchdog
        lint: true

    # Javascript Packages
    js-packages:
      meep-mon-engine-client:
        src: js-packages/meep-mon-engine-client
        lint: false
      meep-platform-ctrl-client:
        src: js-packages/meep-platform-ctrl-client
        lint: false
      meep-sandbox-ctrl-client:
        src: js-packages/meep-sandbox-ctrl-client
        lint: false
