#!groovy

milestone 1
if (env.BRANCH_NAME =~ /^PR-/) {
    input 'Launch tests?'
}
milestone 2

stage("Tests") {
  withCredentials([string(credentialsId: 'composer-token', variable: 'token')]) {
    podTemplate(label: 'excel-init-ee', containers: [
      containerTemplate(
        name: "elasticsearch",
        image: "elasticsearch-oss:6.5.4",
        resourceRequestCpu: '100m',
        resourceRequestMemory: '200Mi',
        envVars: [
          envVar(key: "ES_JAVA_OPTS", value: "-Xms512m -Xmx512m"),
          envVar(key: "FORCE", value: "true"),
        ]
      ),
      containerTemplate(
        name: "mysql",
        image: "mysql:5.7",
        resourceRequestCpu: '100m',
        resourceRequestMemory: '200Mi',
        envVars: [
          envVar(key: "MYSQL_ROOT_PASSWORD", value: "root"),
          envVar(key: "MYSQL_USER", value: "akeneo_pim"),
          envVar(key: "MYSQL_PASSWORD", value: "akeneo_pim"),
          envVar(key: "MYSQL_DATABASE", value: "akeneo_pim"),
        ], volumes: [
          emptyDirVolume(memory: true, mountPath: "/var/lib/mysql"),
          emptyDirVolume(memory: true, mountPath: "/tmp")
        ]
      ),
      containerTemplate(
        name: "php",
        ttyEnabled: true,
        command: 'cat',
        image: "akeneo/php:7.2",
        resourceRequestCpu: '100m',
        resourceRequestMemory: '1000Mi',
        envVars: [
          envVar(key: "COMPOSER_AUTH", value: "{\"github-oauth\":{\"github.com\": \"$token\"}}")
        ]
      ),
    ]) {
      node('excel-init-ee') {
        container("php") {
          checkout([$class: 'GitSCM',
            branches: [[name: "3.0"]],
            userRemoteConfigs: [[credentialsId: 'github-credentials', url: 'https://github.com/akeneo/pim-enterprise-standard.git']]
          ])

          sh """
            php -d memory_limit=3G /usr/local/bin/composer require akeneo/excel-init-bundle:dev-master --no-interaction --no-progress --prefer-dist
            chmod -R 777 vendor
          """

          dir("vendor/akeneo/excel-init-bundle") {
            deleteDir()
            checkout scm
          }

          sh """
            composer dump-autoload -o
            rm var/cache/* -rf
            cp vendor/akeneo/excel-init-bundle/.ci/config/parameters_test.yml app/config/parameters_test.yml
            sed -i 's#// your app bundles should be registered here#\\0\\nnew Pim\\\\Bundle\\\\ExcelInitBundle\\\\PimExcelInitBundle(),#' app/AppKernel.php
            sleep 10
          """

          sh "bin/console pim:install --force --env=test"
        }
      }
    }
  }
}
