| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590 |
- variables:
- DOC_SERVER: doc
- GIT_DEPTH: "3"
- DOC_CENTER: /home/xl_ci/doc_center
- SHAREENVLOC: /home/share/devtools
- IMAGE: rego.corp.nucleisys.com/software/sdkbuild
- IMAGE_TAG: "2025.10"
- JOBCTRL: "RUN"
- workflow:
- rules:
- - if: $CI_COMMIT_MESSAGE =~ /draft|wip|stash/i
- when: never
- - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /master|develop/ && $CI_PIPELINE_SOURCE == "merge_request_event"
- - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
- when: never
- - if: $CI_COMMIT_BRANCH =~ /master|develop/
- - if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG
- default:
- tags:
- - env::docker
- - net::outside
- # when testing sdkbuild temp version
- # uncomment it to make jobs run on a fixed machine
- #- host::whml1
- image: $IMAGE:$IMAGE_TAG
- stages:
- - check
- - build
- - deploy
- ## Job for build document
- build_doc:
- stage: check
- interruptible: true
- only:
- changes:
- - doc/**/**/**/*
- - .gitlab-ci.yml
- retry: 1
- artifacts:
- name: "nuclei_sdk_doc-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
- paths:
- - doc/build
- expire_in: 2 day
- script:
- - cd doc
- - make clean
- - make all
- - make latexpdf
- - cp build/latex/*.pdf build/html/
- ## Job for deploy document to internal server
- deploy_doc:
- stage: deploy
- when: on_success
- retry: 1
- only:
- refs:
- - master
- changes:
- - doc/**/**/**/**/*
- - .gitlab-ci.yml
- script:
- - ssh $DOC_SERVER "rm -rf $DOC_CENTER/nuclei_sdk/*"
- - ssh $DOC_SERVER "mkdir -p $DOC_CENTER/nuclei_sdk/"
- - cd doc/build
- - scp -r html $DOC_SERVER:$DOC_CENTER/nuclei_sdk
- dependencies:
- - build_doc
- tags:
- - env::native
- - host::whss1
- ## Job for deploy document to nuclei website
- deploy_website:
- stage: deploy
- when: on_success
- retry: 1
- only:
- refs:
- - master
- changes:
- - doc/**/**/**/**/*
- script:
- - ./.ci/ftp_deploy.sh $FTPUSER $FTPPWD $FTPSERVER doc/build/html nuclei_sdk
- dependencies:
- - build_doc
- tags:
- - env::native
- - host::whss1
- ## Job template
- .job_template: &job_template_default
- image: $IMAGE:$IMAGE_TAG
- interruptible: true
- stage: build
- before_script:
- - which riscv64-unknown-elf-gcc && riscv64-unknown-elf-gcc --version
- - which riscv64-unknown-elf-clang && riscv64-unknown-elf-clang --version
- - which qemu-system-riscv32 && qemu-system-riscv32 --version
- - which make && make --version
- - which python3 && python3 --version
- - rm -rf logs
- # CI_JOB_NAME_SLUG is introduced >=15.4 gitlab release
- - export CI_JOB_NAME_SHORT=${CI_JOB_NAME/[\[ :\/ ]*}
- - echo "CI_JOB_NAME_SHORT=${CI_JOB_NAME_SHORT}"
- artifacts:
- when: always
- name: "nsdkcli_logs-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
- paths:
- - logs
- expire_in: 2 day
- .job_ctrl_template: &job_ctrl_template_default
- <<: *job_template_default
- rules:
- - if: $JOBCTRL == "RUN"
- build_gd32vf103:
- <<: *job_template_default
- stage: check
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/gd32vf103v_rvstar.json
- - tools/scripts/nsdk_cli/configs/gd32vf103v_eval.json
- - tools/scripts/nsdk_cli/configs/gd32vf103c_longan_nano.json
- - tools/scripts/nsdk_cli/configs/gd32vf103c_dlink.json
- - tools/scripts/nsdk_cli/configs/gd32vf103c_t_display.json
- TOOLCHAIN:
- - "nuclei_gnu"
- - "nuclei_llvm"
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$TOOLCHAIN/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --make_options "TOOLCHAIN=$TOOLCHAIN" --logdir $LOGDIR
- build_gd32vw55x:
- <<: *job_template_default
- stage: check
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/gd32vw55h_eval.json
- TOOLCHAIN:
- - "nuclei_gnu"
- - "nuclei_llvm"
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$TOOLCHAIN/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --make_options "TOOLCHAIN=$TOOLCHAIN" --logdir $LOGDIR
- build_evalsoc:
- <<: *job_template_default
- stage: check
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_llvm.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR
- run_evalsoc_small:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_small_gnu.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_small_llvm.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
- run_evalsoc:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
- run_libncrt_evalsoc:
- <<: *job_template_default
- timeout: 4h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_libncrt.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - STDCLIB:
- - libncrt_small
- - libncrt_fast
- - libncrt_balanced
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "STDCLIB=$STDCLIB"
- run_evalsoc_full:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_newlib.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv_newlib.json
- #IMAGE_TAG:
- #- "2022.05-eng2"
- #- "2022.05"
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${IMAGE_TAG}/$(basename ${HWCFG%.json})
- # change ilm/dlm size from 64K to 128K for evalsoc to be able to build with newlib full library
- - sed -i "s/64K/128K/g" SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_ilm.ld
- - sed -i "s/64K/128K/g" SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_flash.ld
- - sed -i 's/\([ID]LM_MEMORY_SIZE\).*/\1 = 0x40000;/' SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/evalsoc.memory
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
- # Test zc feature
- run_zc_evalsoc:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc_codesize.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_xxlcz.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
- # Test zfinx/zdinx feature
- run_zxinx_evalsoc:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zxinx.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_wo_zxinx.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zxinx_libncrt.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_wo_zxinx_libncrt.json
- TOOLCHAIN:
- - nuclei_gnu
- - nuclei_llvm
- script:
- - riscv64-unknown-elf-gcc --print-multi-lib | grep zfinx || (echo "zfinx not supported" && exit 1)
- - riscv64-unknown-elf-clang --print-multi-lib | grep zfinx || (echo "zfinx not supported" && exit 1)
- - export LOGDIR=logs/$TOOLCHAIN/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "TOOLCHAIN=$TOOLCHAIN"
- # Test zcmt feature
- run_zcmp_zcmt_evalsoc:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmp.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmt.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmp_libncrt.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zcmt_libncrt.json
- TOOLCHAIN:
- - nuclei_gnu
- - nuclei_llvm
- script:
- - export LOGDIR=logs/$TOOLCHAIN/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "TOOLCHAIN=$TOOLCHAIN"
- # Test zc feature for different toolchain
- run_xxlcz_evalsoc:
- inherit:
- default: false
- interruptible: true
- # workaround for zcc
- allow_failure: true
- stage: build
- tags:
- - env::shell
- - net::outside
- - host::whss1
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_terapines_xxlcz.json
- TOOLCHAIN:
- - nuclei_gnu
- - terapines
- script:
- - rm -rf logs
- - source /home/share/devtools/env.sh
- - activate_swdev
- - export LOGDIR=logs/$TOOLCHAIN/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --make_options "TOOLCHAIN=$TOOLCHAIN"
- artifacts:
- when: always
- name: "nsdkcli_logs-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
- paths:
- - logs
- expire_in: 2 day
- run_libncrt_zc_evalsoc:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc_libncrt.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_xxlcz_libncrt.json
- STDCLIB:
- - libncrt_small
- - libncrt_fast
- - libncrt_balanced
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${STDCLIB}/$(basename ${HWCFG%.json})
- - 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"
- # Test llvm toolchain
- run_llvm_evalsoc:
- <<: *job_template_default
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_llvm.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv_llvm.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET
- # Test extra test suites
- run_test_evalsoc:
- <<: *job_template_default
- stage: check
- timeout: 4h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/test.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_zc.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
- run_rvv_evalsoc:
- <<: *job_template_default
- stage: check
- timeout: 4h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/rvv_application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_rvv.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
- run_smp_evalsoc:
- <<: *job_template_default
- timeout: 4h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/smp_application.json
- RUNTARGET: qemu
- parallel:
- matrix:
- - HWCFG:
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_bpv.json
- - tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_libncrt.json
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --make_options "SIMU=$RUNTARGET" --run --run_target $RUNTARGET
- run_n100_evalsoc:
- <<: *job_template_default
- stage: build
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_n100.json
- parallel:
- matrix:
- - DOWNLOAD: [ "sram" ]
- TOOLCHAIN: ["nuclei_gnu", "nuclei_llvm"]
- ARCH_EXT: [ "", "_zca_zcb_zcmp_zcmt" ]
- STDCLIB: ["newlib_small", "libncrt_small"]
- script:
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${STDCLIB}_${DOWNLOAD}${ARCH_EXT}
- - 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
- run_n100_evalsoc_zcc:
- inherit:
- default: false
- interruptible: true
- # workaround for zcc
- allow_failure: true
- stage: build
- tags:
- - env::shell
- - net::outside
- - host::whss1
- timeout: 5h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_n100.json
- parallel:
- matrix:
- - DOWNLOAD: [ "sram" ]
- ARCH_EXT: [ "", "_zca_zcb_zcmp_zcmt" ]
- STDCLIB: ["newlib_small"]
- script:
- - rm -rf logs
- - source /home/share/devtools/env.sh
- - activate_swdev
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/${STDCLIB}_${DOWNLOAD}${ARCH_EXT}
- - export TOOLCHAIN=terapines
- - 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
- artifacts:
- when: always
- name: "100_nsdkcli_logs-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
- paths:
- - logs
- expire_in: 2 day
- # random and sanity checks
- run_sanity_check:
- <<: *job_template_default
- timeout: 4h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_sanity.json
- RUNTARGET: qemu
- RANDTIMES: 4
- script:
- - 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
- - git diff
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - python3 tools/scripts/misc/random_sanity.py --appcfg $APPCFG --hwcfg $HWCFG --logdir $LOGDIR --randtimes ${RANDTIMES} --run_target ${RUNTARGET} --toolchains "nuclei_gnu"
- run_datalma_inilm:
- <<: *job_template_default
- timeout: 4h
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- HWCFG: tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_sanity.json
- RUNTARGET: qemu
- SOCS: "evalsoc"
- script:
- - 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
- - 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
- - git diff
- - export LOGDIR=logs/${CI_JOB_NAME_SHORT}/$(basename ${HWCFG%.json})
- - 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"
- run_on_ncycm:
- <<: *job_template_default
- timeout: 12h
- when: manual
- tags:
- - hardware::high-freq-linux
- variables:
- APPCFG: tools/scripts/nsdk_cli/configs/application.json
- RUNTARGET: ncycm
- parallel:
- matrix:
- - CORE:
- - n300
- - n900
- script:
- - export LOGROOT=logs/${CI_JOB_NAME_SHORT}/ncycm
- - echo "Run for CORE=$CORE, evaluate dhrystone and coremark"
- - export LOGDIR=$LOGROOT/$CORE/cmkdhry
- - export HWCFG=tools/scripts/nsdk_cli/configs/ncycm/cmkdhry_$CORE.json
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --verbose
- - echo "Run for CORE=$CORE, evaluate whetstone"
- - export LOGDIR=$LOGROOT/$CORE/whet
- - export HWCFG=tools/scripts/nsdk_cli/configs/ncycm/whet_$CORE.json
- - python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run --run_target $RUNTARGET --verbose
- - echo "Show final results"
- - find $LOGROOT -name "result.csv" | xargs cat
- sdk_gen_benchmark:
- timeout: 4h
- <<: *job_template_default
- when: manual
- script:
- - export LOGROOT=gen
- - export RUNTARGET=
- - export SDK_COPY_OBJECTS="elf,map,dump"
- - RUNMODE= bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/default
- - RUNMODE=lm bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/lm
- - RUNMODE=cache bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/cache
- - RUNMODE= DOWNLOAD=flash bash tools/scripts/misc/dobench/dobench.sh $LOGROOT/flash
- - bash tools/scripts/misc/build_benchmark.sh
- artifacts:
- when: always
- name: "nsdk_benchmark-job${CI_JOB_ID}-${CI_COMMIT_SHA::8}"
- paths:
- - gen
- expire_in: 2 day
- # Job used to check whether xlcz addibne instruction generated
- sdk_check_xlcz:
- <<: *job_template_default
- stage: check
- script:
- - bash tools/scripts/misc/check_xlcz.sh
- # Job used to check all the npk.yml in this folder
- sdk_check_npk:
- <<: *job_template_default
- stage: check
- script:
- - echo "Validate and check npk.yml in this folder"
- - python3 tools/scripts/nsdk_cli/check_npk.py -d .
- - echo "npk.yml in this folder all PASS"
- # Job used to check all the json or yaml config files in this folder
- sdk_check_configfiles:
- <<: *job_template_default
- stage: check
- script:
- - echo "Validate and check config files in this folder"
- - python3 tools/scripts/nsdk_cli/check_cfgfiles.py -d .
- - echo "config files in this folder all PASS"
- sdk_sync_tools:
- stage: deploy
- interruptible: true
- resource_group: deploy
- rules:
- - if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH =~ /master|develop/
- tags:
- - env::native
- - host::whml1
- - net::outside
- script:
- - cp -f tools/scripts/nsdk_cli/httpserver.py ${SHAREENVLOC}/tools/bin/httpserver_cli
- - cp -f tools/scripts/nsdk_cli/hpm_parse.py ${SHAREENVLOC}/tools/bin/hpmparse_cli
- - cp -f tools/scripts/nsdk_cli/report_preview.py ${SHAREENVLOC}/tools/bin/reportview_cli
- - cp -f tools/scripts/nsdk_cli/runresult_diff.py ${SHAREENVLOC}/tools/bin/runrstdiff_cli
- - chmod +x ${SHAREENVLOC}/tools/bin/*_cli
|