/*
 *
 *    ******************************************************************************
 *    *
 *    * This program and the accompanying materials are made available under the
 *    * terms of the Apache License, Version 2.0 which is available at
 *    * https://www.apache.org/licenses/LICENSE-2.0.
 *    *
 *    *  See the NOTICE file distributed with this work for additional
 *    *  information regarding copyright ownership.
 *    * 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.
 *    *
 *    * SPDX-License-Identifier: Apache-2.0
 *    *****************************************************************************
 *
 */

pipeline {
    agent {
            label 'linux'
    }

    stages {
        stage('prep-build-environment-linux-cpu') {
                    steps {
                        checkout scm
                        sh 'gcc --version'
                        sh 'cmake --version'
                        sh 'sh ./gradlew --version'
                    }
                }
        stage('build-linux-cpu') {
            environment {
                        MAVEN = credentials('Internal_Archiva')
                        OSSRH = credentials('OSSRH')
            }

            steps {
                withGradle {
                    sh 'sh ./gradlew build --stacktrace -x test -PCAVIS_CHIP=cpu \
                                -Pmavenuser=$MAVEN_USR -Pmavenpass=$MAVEN_PSW \
                                -PossrhUsername=$OSSRH_USR -PossrhPassword=$OSSRH_PSW'
                }
                //stash includes: '/cavis-native/cavis-native-lib/build/lib/*.jar', name: 'cuda-build'
            }
        }
        /*stage('test-linux-cpu') {
            environment {
                MAVEN = credentials('Internal Archiva')
                OSSRH = credentials('OSSRH')
            }

            steps {
                withGradle {
                    sh 'sh ./gradlew test --stacktrace -PexcludeTests=\'long-running,performance\' -PCAVIS_CHIP=cpu \
                                -Pmavenuser=$MAVEN_USR -Pmavenpass=$MAVEN_PSW \
                                -PossrhUsername=$OSSRH_USR -PossrhPassword=$OSSRH_PSW'
                }
                //stash includes: '/cavis-native/cavis-native-lib/build/lib/*.jar', name: 'cuda-build'
            }
        }*/
        stage('publish-linux-cpu') {
            environment {
                MAVEN = credentials('Internal_Archiva')
                OSSRH = credentials('OSSRH')
            }

            steps {
                withGradle {
                    sh 'sh ./gradlew publish --stacktrace -PCAVIS_CHIP=cpu \
                                -Pmavenuser=$MAVEN_USR -Pmavenpass=$MAVEN_PSW \
                                -PossrhUsername=$OSSRH_USR -PossrhPassword=$OSSRH_PSW'
                }
                //stash includes: '/cavis-native/cavis-native-lib/build/lib/*.jar', name: 'cuda-build'
            }
        }
    }
    post {
        always {
            junit '**/build/test-results/**/*.xml'
        }
    }
}