@@ -8,73 +8,14 @@ def INPUT_STATE = lib_Main.getInputState(JOB_NAME)
88def CI_STATE = new HashMap ()
99def TestExecutionList = [:]
1010
11-
12- def generateParallelStageNRF (subset , compiler , AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE ) {
13- return {
14- node (AGENT_LABELS ) {
15- stage(' Sanity Check - Zephyr' ){
16- docker. image(" $DOCKER_REG /$IMAGE_TAG " ). inside {
17- lib_Main. cloneCItools(JOB_NAME )
18- dir(' zephyr' ) {
19- checkout scm
20- CI_STATE . ZEPHYR . REPORT_SHA = lib_Main. checkoutRepo(
21- CI_STATE . ZEPHYR . GIT_URL , " ZEPHYR" , CI_STATE . ZEPHYR , false )
22- lib_West.AddManifestUpdate (" ZEPHYR" , ' zephyr' ,
23- CI_STATE . ZEPHYR . GIT_URL , CI_STATE . ZEPHYR . GIT_REF , CI_STATE )
24- }
25- lib_West.InitUpdate (' zephyr' )
26- lib_West.ApplyManifestUpdates (CI_STATE )
27- dir(' zephyr' ) {
28- def PLATFORM_ARGS = lib_Main. getPlatformArgs(CI_STATE . ZEPHYR . PLATFORMS )
29- println " $compiler SANITY NRF PLATFORMS_ARGS = $PLATFORM_ARGS "
30- sh """
31- export ZEPHYR_TOOLCHAIN_VARIANT='$compiler ' && \
32- source zephyr-env.sh && \
33- (./scripts/sanitycheck $SANITYCHECK_OPTIONS $ARCH $PLATFORM_ARGS --subset $subset || $SANITYCHECK_RETRY_CMDS
34- """
35- }
36- }
37- cleanWs()
38- }
39- }
40- }
41- }
42-
43- def generateParallelStageALL (subset , compiler , AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE ) {
44- return {
45- node (AGENT_LABELS ) {
46- stage(' Sanity Check - Zephyr' ){
47- docker. image(" $DOCKER_REG /$IMAGE_TAG " ). inside {
48- lib_Main. cloneCItools(JOB_NAME )
49- dir(' zephyr' ) {
50- checkout scm
51- CI_STATE . ZEPHYR . REPORT_SHA = lib_Main. checkoutRepo(
52- CI_STATE . ZEPHYR . GIT_URL , " ZEPHYR" , CI_STATE . ZEPHYR , false )
53- lib_West.AddManifestUpdate (" ZEPHYR" , ' zephyr' ,
54- CI_STATE . ZEPHYR . GIT_URL , CI_STATE . ZEPHYR . GIT_REF , CI_STATE )
55- }
56- lib_West.InitUpdate (' zephyr' )
57- lib_West.ApplyManifestUpdates (CI_STATE )
58- dir(' zephyr' ) {
59- sh """
60- export ZEPHYR_TOOLCHAIN_VARIANT='$compiler ' && \
61- source zephyr-env.sh && \
62- (./scripts/sanitycheck $SANITYCHECK_OPTIONS $ARCH --subset $subset || $SANITYCHECK_RETRY_CMDS
63- """
64- }
65- }
66- }
67- }
68- }
69- }
70-
71-
7211pipeline {
7312
7413 parameters {
7514 booleanParam(name : ' RUN_DOWNSTREAM' , description : ' if false skip downstream jobs' , defaultValue : false )
7615 booleanParam(name : ' RUN_TESTS' , description : ' if false skip testing' , defaultValue : true )
77- booleanParam(name : ' RUN_BUILD' , description : ' if false skip building' , defaultValue : false )
16+ booleanParam(name : ' RUN_BUILD' , description : ' if false skip building' , defaultValue : true )
17+ booleanParam(name : ' RUN_BUILD_UPSTREAM' , description : ' if false skip building' , defaultValue : true )
18+ string(name : ' SANITYCHECK_RETRY_NUM' , description : ' Default number of sanitycheck retries' , defaultValue : ' 7' )
7819 string(name : ' PLATFORMS' , description : ' Default Platforms to test' , defaultValue : ' nrf9160_pca10090 nrf9160_pca10090ns nrf52_pca10040 nrf52840_pca10056' )
7920 string(name : ' jsonstr_CI_STATE' , description : ' Default State if no upstream job' ,
8021 defaultValue : INPUT_STATE )
@@ -98,11 +39,8 @@ pipeline {
9839
9940 // ENVs for sanitycheck
10041 ARCH = " -a arm"
101- SANITYCHECK_OPTIONS = " --inline-logs --enable-coverage -N"
102- SANITYCHECK_RETRY_CMDS = """
103- (sleep 10; ./scripts/sanitycheck $SANITYCHECK_OPTIONS --only-failed --outdir=out-2nd-pass) ||
104- (sleep 10; ./scripts/sanitycheck $SANITYCHECK_OPTIONS --only-failed --outdir=out-3rd-pass))
105- """
42+ SANITYCHECK_OPTIONS = " --inline-logs --enable-coverage -N" // DEFAULT: --testcase-root tests
43+ SANITYCHECK_RETRY_CMDS = ' ' // initialized so that it is shared to parrallel stages
10644 }
10745
10846 stages {
@@ -114,12 +52,13 @@ pipeline {
11452 TestStages [" compliance" ] = {
11553 node (AGENT_LABELS ) {
11654 stage(' Compliance Test' ){
55+ println " Using Node:$NODE_NAME "
11756 docker. image(" $DOCKER_REG /$IMAGE_TAG " ). inside {
118- lib_Main. cloneCItools(JOB_NAME )
11957 dir(' zephyr' ) {
12058 checkout scm
12159 CI_STATE . ZEPHYR . REPORT_SHA = lib_Main. checkoutRepo(
12260 CI_STATE . ZEPHYR . GIT_URL , " ZEPHYR" , CI_STATE . ZEPHYR , false )
61+ lib_Status. set(" PENDING" , ' ZEPHYR' , CI_STATE );
12362 lib_West.AddManifestUpdate (" ZEPHYR" , ' zephyr' ,
12463 CI_STATE . ZEPHYR . GIT_URL , CI_STATE . ZEPHYR . GIT_REF , CI_STATE )
12564 }
@@ -155,7 +94,7 @@ pipeline {
15594
15695 // Run the compliance check
15796 try {
158- sh " (source ../zephyr/zephyr-env.sh && ../ci-tools/scripts/check_compliance.py $COMPLIANCE_ARGS --commits $COMMIT_RANGE )"
97+ sh " (source ../zephyr/zephyr-env.sh && ../tools/ ci-tools/scripts/check_compliance.py $COMPLIANCE_ARGS --commits $COMMIT_RANGE )"
15998 }
16099 finally {
161100 junit ' compliance.xml'
@@ -187,21 +126,27 @@ pipeline {
187126 [INPUT_MAP . keySet(). toList(), args]. transpose(). collectEntries { [(it[0 ]): it[1 ]]}
188127 }
189128
129+ SANITYCHECK_RETRY_CMDS_LIST = []
130+ for (i= 1 ; i <= SANITYCHECK_RETRY_NUM . toInteger(); i++ ) {
131+ SANITYCHECK_RETRY_CMDS_LIST . add(" (sleep 30; ./scripts/sanitycheck $SANITYCHECK_OPTIONS --only-failed)" )
132+ }
133+ SANITYCHECK_RETRY_CMDS = SANITYCHECK_RETRY_CMDS_LIST . join(' || \n ' )
134+
190135 def sanityCheckNRFStages = OUTPUT_MAP . collectEntries {
191136 [" SanityCheckNRF\n ${ it.compiler} \n ${ it.set} " : generateParallelStageNRF(it. set, it. compiler,
192137 AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE )]
193138 }
194139 TestExecutionList = TestExecutionList . plus(sanityCheckNRFStages)
195140
196- def sanityCheckALLStages = OUTPUT_MAP . collectEntries {
197- [" SanityCheckALL\n zephyr\n ${ it.set} " : generateParallelStageALL(it. set, ' zephyr' ,
198- AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE )]
141+ if (CI_STATE . ZEPHYR . RUN_BUILD_UPSTREAM ) {
142+ def sanityCheckALLStages = OUTPUT_MAP . collectEntries {
143+ [" SanityCheckALL\n zephyr\n ${ it.set} " : generateParallelStageALL(it. set, ' zephyr' ,
144+ AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE )]
145+ }
146+ TestExecutionList = TestExecutionList . plus(sanityCheckALLStages)
199147 }
200- TestExecutionList = TestExecutionList . plus(sanityCheckALLStages)
201148 }
202149
203-
204-
205150 println " TestExecutionList = $TestExecutionList "
206151
207152 }}}
@@ -258,3 +203,62 @@ pipeline {
258203 }
259204 }
260205}
206+
207+ def generateParallelStageNRF (subset , compiler , AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE ) {
208+ return {
209+ node (AGENT_LABELS ) {
210+ stage(' Sanity Check - Zephyr' ){
211+ println " Using Node:$NODE_NAME "
212+ docker. image(" $DOCKER_REG /$IMAGE_TAG " ). inside {
213+ dir(' zephyr' ) {
214+ checkout scm
215+ CI_STATE . ZEPHYR . REPORT_SHA = lib_Main. checkoutRepo(
216+ CI_STATE . ZEPHYR . GIT_URL , " ZEPHYR" , CI_STATE . ZEPHYR , false )
217+ lib_West.AddManifestUpdate (" ZEPHYR" , ' zephyr' ,
218+ CI_STATE . ZEPHYR . GIT_URL , CI_STATE . ZEPHYR . GIT_REF , CI_STATE )
219+ }
220+ lib_West.InitUpdate (' zephyr' )
221+ lib_West.ApplyManifestUpdates (CI_STATE )
222+ dir(' zephyr' ) {
223+ def PLATFORM_ARGS = lib_Main. getPlatformArgs(CI_STATE . ZEPHYR . PLATFORMS )
224+ println " $compiler SANITY NRF PLATFORMS_ARGS = $PLATFORM_ARGS "
225+ sh """
226+ export ZEPHYR_TOOLCHAIN_VARIANT='$compiler ' && \
227+ source zephyr-env.sh && \
228+ ./scripts/sanitycheck $SANITYCHECK_OPTIONS $ARCH $PLATFORM_ARGS --subset $subset || $SANITYCHECK_RETRY_CMDS
229+ """
230+ }
231+ }
232+ cleanWs()
233+ }
234+ }
235+ }
236+ }
237+
238+ def generateParallelStageALL (subset , compiler , AGENT_LABELS , DOCKER_REG , IMAGE_TAG , JOB_NAME , CI_STATE ) {
239+ return {
240+ node (AGENT_LABELS ) {
241+ stage(' Sanity Check - Zephyr' ){
242+ println " Using Node:$NODE_NAME "
243+ docker. image(" $DOCKER_REG /$IMAGE_TAG " ). inside {
244+ dir(' zephyr' ) {
245+ checkout scm
246+ CI_STATE . ZEPHYR . REPORT_SHA = lib_Main. checkoutRepo(
247+ CI_STATE . ZEPHYR . GIT_URL , " ZEPHYR" , CI_STATE . ZEPHYR , false )
248+ lib_West.AddManifestUpdate (" ZEPHYR" , ' zephyr' ,
249+ CI_STATE . ZEPHYR . GIT_URL , CI_STATE . ZEPHYR . GIT_REF , CI_STATE )
250+ }
251+ lib_West.InitUpdate (' zephyr' )
252+ lib_West.ApplyManifestUpdates (CI_STATE )
253+ dir(' zephyr' ) {
254+ sh """
255+ export ZEPHYR_TOOLCHAIN_VARIANT='$compiler ' && \
256+ source zephyr-env.sh && \
257+ ./scripts/sanitycheck $SANITYCHECK_OPTIONS $ARCH --subset $subset || $SANITYCHECK_RETRY_CMDS
258+ """
259+ }
260+ }
261+ }
262+ }
263+ }
264+ }
0 commit comments