pipeline {

environment {
  AWS_REGION = 'us-east-1'
  PROJECT_NAME = '<%= @name %>'
  VERSION = '0.1.0'
}

agent {
  docker {
    image 'theonestack/cfhighlander'
  }
}

stages {

<%- if @type == 'component' -%>

stage('cftest') {
  steps {
    sh 'cfndsl -u'
    sh "cfhighlander cftest -r xml"
  }
  post {
    always {
      junit 'reports/report.xml'
    }
  }
}

stage('cfn nag') {
  agent {
    docker {
      image 'base2/cfn-nag'
      reuseNode true
    }
  }
  steps {
    sh 'cfn_nag_scan -i out/tests'
  }
}

<%- elsif @type == 'project' -%>

stage('Compile and validate templates') {
  steps {
    sh 'cfndsl -u'
    sh "cfcompile --validate"
  }
}

stage('cfn nag') {
  agent {
    docker {
      image 'base2/cfn-nag'
      reuseNode true
    }
  }
  steps {
    sh 'cfn_nag_scan -i out/yaml'
  }
}

stage('Publish templates') {
  steps {
    sh "cfpublish ${env.PROJECT_NAME} --version ${env.VERSION}"
  }
}

<%- end -%>

}

}