| #!/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.") |
| } |
| } |
| } |