.gitlab-ci.yml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  1. variables:
  2. DOC_SERVER: doc
  3. GIT_DEPTH: "3"
  4. DOC_CENTER: /home/xl_ci/doc_center
  5. SHAREENVLOC: /home/share/devtools
  6. IMAGE: rego.corp.nucleisys.com/software/sdkbuild
  7. IMAGE_TAG: "2025.10"
  8. JOBCTRL: "RUN"
  9. workflow:
  10. rules:
  11. - if: $CI_COMMIT_MESSAGE =~ /draft|wip|stash/i
  12. when: never
  13. - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /master|develop/ && $CI_PIPELINE_SOURCE == "merge_request_event"
  14. - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
  15. when: never
  16. - if: $CI_COMMIT_BRANCH =~ /master|develop/
  17. - if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG
  18. default:
  19. tags:
  20. - env::docker
  21. - net::outside
  22. # when testing sdkbuild temp version
  23. # uncomment it to make jobs run on a fixed machine
  24. #- host::whml1
  25. image: $IMAGE:$IMAGE_TAG
  26. stages:
  27. - check
  28. - build
  29. - deploy
  30. ## Job for build document
  31. build_doc:
  32. stage: check
  33. interruptible: true
  34. only:
  35. changes:
  36. - doc/**/**/**/*
  37. - .gitlab-ci.yml
  38. retry: 1
  39. artifacts:
  40. name: "nuclei_sdk_doc-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
  41. paths:
  42. - doc/build
  43. expire_in: 2 day
  44. script:
  45. - cd doc
  46. - make clean
  47. - make all
  48. - make latexpdf
  49. - cp build/latex/*.pdf build/html/
  50. ## Job for deploy document to internal server
  51. deploy_doc:
  52. stage: deploy
  53. when: on_success
  54. retry: 1
  55. only:
  56. refs:
  57. - master
  58. changes:
  59. - doc/**/**/**/**/*
  60. - .gitlab-ci.yml
  61. script:
  62. - ssh $DOC_SERVER "rm -rf $DOC_CENTER/nuclei_sdk/*"
  63. - ssh $DOC_SERVER "mkdir -p $DOC_CENTER/nuclei_sdk/"
  64. - cd doc/build
  65. - scp -r html $DOC_SERVER:$DOC_CENTER/nuclei_sdk
  66. dependencies:
  67. - build_doc
  68. tags:
  69. - env::native
  70. - host::whss1
  71. ## Job for deploy document to nuclei website
  72. deploy_website:
  73. stage: deploy
  74. when: on_success
  75. retry: 1
  76. only:
  77. refs:
  78. - master
  79. changes:
  80. - doc/**/**/**/**/*
  81. script:
  82. - ./.ci/ftp_deploy.sh $FTPUSER $FTPPWD $FTPSERVER doc/build/html nuclei_sdk
  83. dependencies:
  84. - build_doc
  85. tags:
  86. - env::native
  87. - host::whss1
  88. ## Job template
  89. .job_template: &job_template_default
  90. image: $IMAGE:$IMAGE_TAG
  91. interruptible: true
  92. stage: build
  93. before_script:
  94. - which riscv64-unknown-elf-gcc && riscv64-unknown-elf-gcc --version
  95. - which riscv64-unknown-elf-clang && riscv64-unknown-elf-clang --version
  96. - which qemu-system-riscv32 && qemu-system-riscv32 --version
  97. - which make && make --version
  98. - which python3 && python3 --version
  99. - rm -rf logs
  100. # CI_JOB_NAME_SLUG is introduced >=15.4 gitlab release
  101. - export CI_JOB_NAME_SHORT=${CI_JOB_NAME/[\[ :\/ ]*}
  102. - echo "CI_JOB_NAME_SHORT=${CI_JOB_NAME_SHORT}"
  103. artifacts:
  104. when: always
  105. name: "nsdkcli_logs-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
  106. paths:
  107. - logs
  108. expire_in: 2 day
  109. .job_ctrl_template: &job_ctrl_template_default
  110. <<: *job_template_default
  111. rules:
  112. - if: $JOBCTRL == "RUN"
  113. build_gd32vf103:
  114. <<: *job_template_default
  115. stage: check
  116. variables:
  117. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  118. parallel:
  119. matrix:
  120. - HWCFG:
  121. - tools/scripts/nsdk_cli/configs/gd32vf103v_rvstar.json
  122. - tools/scripts/nsdk_cli/configs/gd32vf103v_eval.json
  123. - tools/scripts/nsdk_cli/configs/gd32vf103c_longan_nano.json
  124. - tools/scripts/nsdk_cli/configs/gd32vf103c_dlink.json
  125. - tools/scripts/nsdk_cli/configs/gd32vf103c_t_display.json
  126. TOOLCHAIN:
  127. - "nuclei_gnu"
  128. - "nuclei_llvm"
  129. script:
  130. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$TOOLCHAIN/$(basename ${HWCFG%.json})
  131. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --make_options "TOOLCHAIN=$TOOLCHAIN" --logdir $LOGDIR
  132. build_gd32vw55x:
  133. <<: *job_template_default
  134. stage: check
  135. variables:
  136. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  137. parallel:
  138. matrix:
  139. - HWCFG:
  140. - tools/scripts/nsdk_cli/configs/gd32vw55h_eval.json
  141. TOOLCHAIN:
  142. - "nuclei_gnu"
  143. - "nuclei_llvm"
  144. script:
  145. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$TOOLCHAIN/$(basename ${HWCFG%.json})
  146. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --make_options "TOOLCHAIN=$TOOLCHAIN" --logdir $LOGDIR
  147. build_evalsoc:
  148. <<: *job_template_default
  149. stage: check
  150. variables:
  151. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  152. parallel:
  153. matrix:
  154. - HWCFG:
  155. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci.json
  156. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_llvm.json
  157. script:
  158. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  159. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR
  160. run_evalsoc_small:
  161. <<: *job_template_default
  162. timeout: 5h
  163. variables:
  164. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  165. RUNTARGET: qemu
  166. parallel:
  167. matrix:
  168. - HWCFG:
  169. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_small_gnu.json
  170. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_small_llvm.json
  171. script:
  172. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  173. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
  174. run_evalsoc:
  175. <<: *job_template_default
  176. timeout: 5h
  177. variables:
  178. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  179. RUNTARGET: qemu
  180. parallel:
  181. matrix:
  182. - HWCFG:
  183. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
  184. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv.json
  185. script:
  186. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  187. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
  188. run_libncrt_evalsoc:
  189. <<: *job_template_default
  190. timeout: 4h
  191. variables:
  192. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  193. HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_libncrt.json
  194. RUNTARGET: qemu
  195. parallel:
  196. matrix:
  197. - STDCLIB:
  198. - libncrt_small
  199. - libncrt_fast
  200. - libncrt_balanced
  201. script:
  202. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  203. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "STDCLIB=$STDCLIB"
  204. run_evalsoc_full:
  205. <<: *job_template_default
  206. timeout: 5h
  207. variables:
  208. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  209. RUNTARGET: qemu
  210. parallel:
  211. matrix:
  212. - HWCFG:
  213. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_newlib.json
  214. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv_newlib.json
  215. #IMAGE_TAG:
  216. #- "2022.05-eng2"
  217. #- "2022.05"
  218. script:
  219. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${IMAGE_TAG}/$(basename ${HWCFG%.json})
  220. # change ilm/dlm size from 64K to 128K for evalsoc to be able to build with newlib full library
  221. - sed -i "s/64K/128K/g" SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_ilm.ld
  222. - sed -i "s/64K/128K/g" SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_flash.ld
  223. - sed -i 's/\([ID]LM_MEMORY_SIZE\).*/\1 = 0x40000;/' SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/evalsoc.memory
  224. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
  225. # Test zc feature
  226. run_zc_evalsoc:
  227. <<: *job_template_default
  228. timeout: 5h
  229. variables:
  230. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  231. RUNTARGET: qemu
  232. parallel:
  233. matrix:
  234. - HWCFG:
  235. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc_codesize.json
  236. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc.json
  237. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_xxlcz.json
  238. script:
  239. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  240. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
  241. # Test zfinx/zdinx feature
  242. run_zxinx_evalsoc:
  243. <<: *job_template_default
  244. timeout: 5h
  245. variables:
  246. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  247. RUNTARGET: qemu
  248. parallel:
  249. matrix:
  250. - HWCFG:
  251. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zxinx.json
  252. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_wo_zxinx.json
  253. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zxinx_libncrt.json
  254. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_wo_zxinx_libncrt.json
  255. TOOLCHAIN:
  256. - nuclei_gnu
  257. - nuclei_llvm
  258. script:
  259. - riscv64-unknown-elf-gcc --print-multi-lib | grep zfinx || (echo "zfinx not supported" && exit 1)
  260. - riscv64-unknown-elf-clang --print-multi-lib | grep zfinx || (echo "zfinx not supported" && exit 1)
  261. - export LOGDIR=logs/$TOOLCHAIN/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  262. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "TOOLCHAIN=$TOOLCHAIN"
  263. # Test zcmt feature
  264. run_zcmp_zcmt_evalsoc:
  265. <<: *job_template_default
  266. timeout: 5h
  267. variables:
  268. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  269. RUNTARGET: qemu
  270. parallel:
  271. matrix:
  272. - HWCFG:
  273. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmp.json
  274. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmt.json
  275. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmp_libncrt.json
  276. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmt_libncrt.json
  277. TOOLCHAIN:
  278. - nuclei_gnu
  279. - nuclei_llvm
  280. script:
  281. - export LOGDIR=logs/$TOOLCHAIN/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  282. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "TOOLCHAIN=$TOOLCHAIN"
  283. # Test zc feature for different toolchain
  284. run_xxlcz_evalsoc:
  285. inherit:
  286. default: false
  287. interruptible: true
  288. # workaround for zcc
  289. allow_failure: true
  290. stage: build
  291. tags:
  292. - env::shell
  293. - net::outside
  294. - host::whss1
  295. timeout: 5h
  296. variables:
  297. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  298. RUNTARGET: qemu
  299. parallel:
  300. matrix:
  301. - HWCFG:
  302. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_terapines_xxlcz.json
  303. TOOLCHAIN:
  304. - nuclei_gnu
  305. - terapines
  306. script:
  307. - rm -rf logs
  308. - source /home/share/devtools/env.sh
  309. - activate_swdev
  310. - export LOGDIR=logs/$TOOLCHAIN/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  311. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "TOOLCHAIN=$TOOLCHAIN"
  312. artifacts:
  313. when: always
  314. name: "nsdkcli_logs-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
  315. paths:
  316. - logs
  317. expire_in: 2 day
  318. run_libncrt_zc_evalsoc:
  319. <<: *job_template_default
  320. timeout: 5h
  321. variables:
  322. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  323. RUNTARGET: qemu
  324. parallel:
  325. matrix:
  326. - HWCFG:
  327. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc_libncrt.json
  328. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_xxlcz_libncrt.json
  329. STDCLIB:
  330. - libncrt_small
  331. - libncrt_fast
  332. - libncrt_balanced
  333. script:
  334. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${STDCLIB}/$(basename ${HWCFG%.json})
  335. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "STDCLIB=$STDCLIB SIMU=$RUNTARGET"
  336. # Test llvm toolchain
  337. run_llvm_evalsoc:
  338. <<: *job_template_default
  339. timeout: 5h
  340. variables:
  341. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  342. RUNTARGET: qemu
  343. parallel:
  344. matrix:
  345. - HWCFG:
  346. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_llvm.json
  347. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv_llvm.json
  348. script:
  349. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  350. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
  351. # Test extra test suites
  352. run_test_evalsoc:
  353. <<: *job_template_default
  354. stage: check
  355. timeout: 4h
  356. variables:
  357. APPCFG: tools/scripts/nsdk_cli/configs/test.json
  358. RUNTARGET: qemu
  359. parallel:
  360. matrix:
  361. - HWCFG:
  362. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
  363. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv.json
  364. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc.json
  365. script:
  366. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  367. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
  368. run_rvv_evalsoc:
  369. <<: *job_template_default
  370. stage: check
  371. timeout: 4h
  372. variables:
  373. APPCFG: tools/scripts/nsdk_cli/configs/rvv_application.json
  374. RUNTARGET: qemu
  375. parallel:
  376. matrix:
  377. - HWCFG:
  378. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_rvv.json
  379. script:
  380. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  381. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
  382. run_smp_evalsoc:
  383. <<: *job_template_default
  384. timeout: 4h
  385. variables:
  386. APPCFG: tools/scripts/nsdk_cli/configs/smp_application.json
  387. RUNTARGET: qemu
  388. parallel:
  389. matrix:
  390. - HWCFG:
  391. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
  392. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv.json
  393. - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_libncrt.json
  394. script:
  395. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  396. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
  397. run_n100_evalsoc:
  398. <<: *job_template_default
  399. stage: build
  400. variables:
  401. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  402. HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_n100.json
  403. parallel:
  404. matrix:
  405. - DOWNLOAD: [ "sram" ]
  406. TOOLCHAIN: ["nuclei_gnu", "nuclei_llvm"]
  407. ARCH_EXT: [ "", "_zca_zcb_zcmp_zcmt" ]
  408. STDCLIB: ["newlib_small", "libncrt_small"]
  409. script:
  410. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${STDCLIB}_${DOWNLOAD}${ARCH_EXT}
  411. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "TOOLCHAIN=$TOOLCHAIN STDCLIB=$STDCLIB DOWNLOAD=$DOWNLOAD ARCH_EXT=${ARCH_EXT}" --run --run_target qemu
  412. run_n100_evalsoc_zcc:
  413. inherit:
  414. default: false
  415. interruptible: true
  416. # workaround for zcc
  417. allow_failure: true
  418. stage: build
  419. tags:
  420. - env::shell
  421. - net::outside
  422. - host::whss1
  423. timeout: 5h
  424. variables:
  425. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  426. HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_n100.json
  427. parallel:
  428. matrix:
  429. - DOWNLOAD: [ "sram" ]
  430. ARCH_EXT: [ "", "_zca_zcb_zcmp_zcmt" ]
  431. STDCLIB: ["newlib_small"]
  432. script:
  433. - rm -rf logs
  434. - source /home/share/devtools/env.sh
  435. - activate_swdev
  436. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${STDCLIB}_${DOWNLOAD}${ARCH_EXT}
  437. - export TOOLCHAIN=terapines
  438. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "TOOLCHAIN=$TOOLCHAIN STDCLIB=$STDCLIB DOWNLOAD=$DOWNLOAD ARCH_EXT=${ARCH_EXT}" --run --run_target qemu
  439. artifacts:
  440. when: always
  441. name: "100_nsdkcli_logs-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
  442. paths:
  443. - logs
  444. expire_in: 2 day
  445. # random and sanity checks
  446. run_sanity_check:
  447. <<: *job_template_default
  448. timeout: 4h
  449. variables:
  450. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  451. HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_sanity.json
  452. RUNTARGET: qemu
  453. RANDTIMES: 4
  454. script:
  455. - sed -i -e 's/REGION_ALIAS("DATA_LMA", ram)/REGION_ALIAS("DATA_LMA", ilm)/' SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_ilm.ld
  456. - git diff
  457. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  458. - python3 tools/scripts/misc/random_sanity.py --appcfg $APPCFG --hwcfg $HWCFG --logdir $LOGDIR --randtimes ${RANDTIMES} --run_target ${RUNTARGET} --toolchains "nuclei_gnu"
  459. run_datalma_inilm:
  460. <<: *job_template_default
  461. timeout: 4h
  462. variables:
  463. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  464. HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_sanity.json
  465. RUNTARGET: qemu
  466. SOCS: "evalsoc"
  467. script:
  468. - sed -i -e 's/REGION_ALIAS("DATA_LMA", ram)/REGION_ALIAS("DATA_LMA", ilm)/' SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_ilm.ld
  469. - sed -i -e 's/REGION_ALIAS("DATA_LMA", ram)/REGION_ALIAS("DATA_LMA", rom)/' SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_ddr.ld
  470. - git diff
  471. - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
  472. - python3 tools/scripts/misc/random_sanity.py --appcfg $APPCFG --hwcfg $HWCFG --logdir $LOGDIR --randtimes 2 --run_target ${RUNTARGET} --socs ${SOCS} --downloads "ilm,ddr" --toolchains "nuclei_gnu"
  473. run_on_ncycm:
  474. <<: *job_template_default
  475. timeout: 12h
  476. when: manual
  477. tags:
  478. - hardware::high-freq-linux
  479. variables:
  480. APPCFG: tools/scripts/nsdk_cli/configs/application.json
  481. RUNTARGET: ncycm
  482. parallel:
  483. matrix:
  484. - CORE:
  485. - n300
  486. - n900
  487. script:
  488. - export LOGROOT=logs/${CI_JOB_NAME_SHORT}/ncycm
  489. - echo "Run for CORE=$CORE, evaluate dhrystone and coremark"
  490. - export LOGDIR=$LOGROOT/$CORE/cmkdhry
  491. - export HWCFG=tools/scripts/nsdk_cli/configs/ncycm/cmkdhry_$CORE.json
  492. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --verbose
  493. - echo "Run for CORE=$CORE, evaluate whetstone"
  494. - export LOGDIR=$LOGROOT/$CORE/whet
  495. - export HWCFG=tools/scripts/nsdk_cli/configs/ncycm/whet_$CORE.json
  496. - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --verbose
  497. - echo "Show final results"
  498. - find $LOGROOT -name "result.csv" | xargs cat
  499. sdk_gen_benchmark:
  500. timeout: 4h
  501. <<: *job_template_default
  502. when: manual
  503. script:
  504. - export LOGROOT=gen
  505. - export RUNTARGET=
  506. - export SDK_COPY_OBJECTS="elf,map,dump"
  507. - RUNMODE= bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/default
  508. - RUNMODE=lm bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/lm
  509. - RUNMODE=cache bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/cache
  510. - RUNMODE= DOWNLOAD=flash bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/flash
  511. - bash tools/scripts/misc/build_benchmark.sh
  512. artifacts:
  513. when: always
  514. name: "nsdk_benchmark-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
  515. paths:
  516. - gen
  517. expire_in: 2 day
  518. # Job used to check whether xlcz addibne instruction generated
  519. sdk_check_xlcz:
  520. <<: *job_template_default
  521. stage: check
  522. script:
  523. - bash tools/scripts/misc/check_xlcz.sh
  524. # Job used to check all the npk.yml in this folder
  525. sdk_check_npk:
  526. <<: *job_template_default
  527. stage: check
  528. script:
  529. - echo "Validate and check npk.yml in this folder"
  530. - python3 tools/scripts/nsdk_cli/check_npk.py -d .
  531. - echo "npk.yml in this folder all PASS"
  532. # Job used to check all the json or yaml config files in this folder
  533. sdk_check_configfiles:
  534. <<: *job_template_default
  535. stage: check
  536. script:
  537. - echo "Validate and check config files in this folder"
  538. - python3 tools/scripts/nsdk_cli/check_cfgfiles.py -d .
  539. - echo "config files in this folder all PASS"
  540. sdk_sync_tools:
  541. stage: deploy
  542. interruptible: true
  543. resource_group: deploy
  544. rules:
  545. - if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH =~ /master|develop/
  546. tags:
  547. - env::native
  548. - host::whml1
  549. - net::outside
  550. script:
  551. - cp -f tools/scripts/nsdk_cli/httpserver.py ${SHAREENVLOC}/tools/bin/httpserver_cli
  552. - cp -f tools/scripts/nsdk_cli/hpm_parse.py ${SHAREENVLOC}/tools/bin/hpmparse_cli
  553. - cp -f tools/scripts/nsdk_cli/report_preview.py ${SHAREENVLOC}/tools/bin/reportview_cli
  554. - cp -f tools/scripts/nsdk_cli/runresult_diff.py ${SHAREENVLOC}/tools/bin/runrstdiff_cli
  555. - chmod +x ${SHAREENVLOC}/tools/bin/*_cli