/*
 * pipeline script for Java builds
 * Copyright (c) 2019-2020 StrongBox Data Solutions, Inc.  ALL RIGHTS RESERVED
 *
 */

@Library('buildUtils@develop') _
// run the develop branch 2x daily
String cron_string = BRANCH_NAME == "develop" ? "H 0,6 * * *" : ""

pipeline {
    agent { label "${buildVars.AWS_AGENT}" }
    triggers { cron(cron_string) }
    options {
        ansiColor('xterm')
        timestamps()
    }

    stages {
        stage('Set Properties') {
            steps {
                buildInit channel: 'wfe-build',
                    submodules: true
            }
        }
        stage('Build') {
            parallel {
                stage('JAR') {
                    steps {
                        script {
                            mvnBuild(pom: 'cicd/pom.xml')
                        }
                    }
                    post {
                        always {
                            junit '**/target/surefire-reports/*.xml'
                        }
                    }
                }
                stage("Build RCR Lib") {
                    steps {
                        selectPlatformRepo output: "${WORKSPACE}/submodules/java-rcr-lib/src/main/c/cicd/stronglink.repo"
                        buildDocker name: 'wfe_c_lib',
                            dir: 'submodules/java-rcr-lib/src/main/c/cicd/'
                        runInDocker image: 'wfe_c_lib',
                            script: '''
                                        set -e
                                        dnf -y --refresh --repo SLK-DIST update slk-platform-devel slk-smb-devel
                                        rpm -q slk-platform-devel slk-smb-devel
                                        cd ${WORKSPACE}/submodules/java-rcr-lib/src/main/c
                                        mkdir -p build
                                        cd build
                                        cmake3 -DCMAKE_BUILD_TYPE=Release ..
                                        make
                                    '''
                    }
                }
                stage("Build Common Lib") {
                    steps {
                        selectPlatformRepo output: "${WORKSPACE}/submodules/slk-java-common/src/main/c/cicd/stronglink.repo"
                        buildDocker name: 'wbca_c_lib',
                            dir: 'submodules/slk-java-common/src/main/c/cicd/'
                        runInDocker image: 'wbca_c_lib',
                            script: '''
                                        set -e
                                        dnf -y --refresh --repo SLK-DIST update slk-platform-devel slk-smb-devel
                                        rpm -q slk-platform-devel slk-smb-devel
                                        cd ${WORKSPACE}/submodules/slk-java-common/src/main/c
                                        mkdir -p build
                                        cd build
                                        cmake3 -DCMAKE_BUILD_TYPE=Release ..
                                        make
                                    '''
                    }
                }

            }
        }
        stage('Package') {
            steps {
                createArchive()
            }
        }
    }
    post {
        always {
            endBuild channel: 'wfe-build'
        }
    }
}
