
List<String> softwareCatalogFiles = [
  'software_catalog/cwagent-daemon-service.yaml',
  'software_catalog/whitelist-api.yaml',
  'software_catalog/whitelist-api-candidate.yaml',
]

pipeline {
  agent any

  options {
    ansiColor('xterm')
    disableConcurrentBuilds()
    timestamps()
  }

  parameters {
    string(
      name: 'SHARED_LIBRARIES_VERSION',
      defaultValue: 'master',
      description: 'The version of the Jenkins shared libraries to use. Can be a branch, tag or Git revision.'
    )
  }

  stages {
    stage('Load Shared Libraries') {
      steps {
        library "jenkins-global-libraries@${params.SHARED_LIBRARIES_VERSION}"
      }
    }
    stage('Validate Software Catalog Files') {
      steps {
        script {
          softwareCatalogFiles.each {file ->
            datadogSoftwareCatalogValidate(
              serviceDefinitionFilePath: file,
            )
          }
        }
      }
    }
    stage('Publish Software Catalog Definition') {
      when {
        branch 'master'
      }
      steps{
        script {
          softwareCatalogFiles.each {file ->
            datadogSoftwareCatalogPublish(
              serviceDefinitionFilePath: file,
              fetchAdditionalMetadata: false,
            )
          }
        }
      }
    }
  }
}
