blob: dc8477e4ae960bdc20b91f4a2bfb5fbd59ff0c4a [file] [log] [blame]
#!/usr/bin/env groovy
//-------------------------------------------------------------------------------
// Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
//
// SPDX-License-Identifier: BSD-3-Clause
//
//-------------------------------------------------------------------------------
def trigger(job_name) {
return {
def params = []
params += string(name: 'GERRIT_HOST', value: env.GERRIT_HOST ?: '')
params += string(name: 'GERRIT_BRANCH', value: env.GERRIT_BRANCH ?: '')
params += string(name: 'GERRIT_REFSPEC', value: env.GERRIT_REFSPEC ?: '')
params += string(name: 'GERRIT_CHANGE_NUMBER', value: env.GERRIT_CHANGE_NUMBER ?: '')
params += string(name: 'GERRIT_PATCHSET_REVISION', value: env.GERRIT_PATCHSET_REVISION ?: '')
params += string(name: 'MBEDTLS_VERSION', value: env.MBEDTLS_VERSION)
params += string(name: 'CODE_REPO', value: env.CODE_REPO)
params += string(name: 'CI_SCRIPTS_BRANCH', value: env.CI_SCRIPTS_BRANCH)
params += string(name: 'MCUBOOT_REFSPEC', value: env.MCUBOOT_REFSPEC)
params += string(name: 'MCUBOOT_URL', value: env.MCUBOOT_URL)
params += string(name: 'MBEDTLS_VERSION', value: env.MBEDTLS_VERSION)
params += string(name: 'MBEDTLS_URL', value: env.MBEDTLS_URL)
params += string(name: 'TFM_TESTS_REFSPEC', value: env.TFM_TESTS_REFSPEC)
params += string(name: 'TFM_TESTS_URL', value: env.TFM_TESTS_URL)
params += string(name: 'PSA_ARCH_TESTS_VERSION', value: env.PSA_ARCH_TESTS_VERSION)
params += string(name: 'PSA_ARCH_TESTS_URL', value: env.PSA_ARCH_TESTS_URL)
params += string(name: 'SHARE_FOLDER', value: env.SHARE_FOLDER)
build(job: job_name, parameters: params)
}
}
def status = 1
timestamps {
node("docker-amd64-tf-m-bionic") {
stage("Init") {
cleanWs()
dir("tf-m-ci-scripts") {
checkout([$class: 'GitSCM', branches: [[name: '$CI_SCRIPTS_BRANCH']], userRemoteConfigs: [[credentialsId: 'GIT_SSH_KEY', url: '$CI_SCRIPTS_REPO']]])
// Clone TF-M repositories so share folder can be reused by downstream jobs
sh "./clone.sh"
}
}
}
stage("Static Checks") {
def checks = [:]
checks["cppcheck"] = trigger("tf-m-cppcheck")
checks["checkpatch"] = trigger("tf-m-checkpatch")
checks["static-checks"] = trigger("tf-m-static-checks")
try {
parallel(checks)
} catch (Exception e) {
status = -1
echo "Failed static checks, continuing with build."
}
}
stage("Trigger Build") {
parallel(["build":trigger("tf-m-build-and-test")])
// If previously failed at static checks, mark this as a failure
if (status < 0 ) {
error("Failing due to failed static checks.")
}
}
}