Преглед изворни кода

ci: Update github workflow to use nsdk_cli tools (#43)

* ci: use nsdk cli tools to do github ci

Signed-off-by: Huaqi Fang <578567190@qq.com>

* Update build_sdk.yaml

* Update deploy_doc.yaml

* Update build_sdk.yaml

* Update build_sdk.yaml

* ci: add auto cancel jobs for previous commit

Signed-off-by: Huaqi Fang <578567190@qq.com>

* ci: pip3 install required tools

Signed-off-by: Huaqi Fang <578567190@qq.com>

* ci: Fix install of pyserial

Signed-off-by: Huaqi Fang <578567190@qq.com>
Huaqi Fang пре 3 година
родитељ
комит
4c729456bd
2 измењених фајлова са 30 додато и 52 уклоњено
  1. 23 50
      .github/workflows/build_sdk.yaml
  2. 7 2
      .github/workflows/deploy_doc.yaml

+ 23 - 50
.github/workflows/build_sdk.yaml

@@ -1,5 +1,9 @@
 name: Build SDK
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
 on:
   push:
     paths:
@@ -33,13 +37,13 @@ jobs:
         soc: [demosoc, gd32vf103]
 
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
       with:
         submodules: recursive
         fetch-depth: 0
 
     - name: Caching tools
-      uses: actions/cache@v2
+      uses: actions/cache@v3
       with:
         path: |
           prebuilt_tools/*.tar.bz2
@@ -49,9 +53,15 @@ jobs:
     - name: Prepare Tools for Ubuntu
       if: startsWith(matrix.os, 'ubuntu')
       run: |
+          sudo apt-get update
+          sudo apt install -y python3 python3-pip
+          sudo python3 -m pip install --upgrade pip
+          # install to user local storage
+          # ERROR: Cannot uninstall 'pyserial'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
+          pip3 install -r tools/scripts/requirements.txt
           mkdir -p prebuilt_tools
           cd prebuilt_tools
-          toolzip=nuclei_riscv_newlibc_prebuilt_linux64_2022.01.tar.bz2
+          toolzip=nuclei_riscv_newlibc_prebuilt_linux64_2022.04.tar.bz2
           if [ ! -e $toolzip ] ; then
             wget https://nucleisys.com/upload/files/toochain/gcc/$toolzip
           fi
@@ -64,61 +74,24 @@ jobs:
       run: |
         echo "Setup build environment"
         source setup.sh
-        source .ci/build_sdk.sh
-        source .ci/build_applications.sh
-        touch build.log
-        export CORE=n305
-        export DOWNLOAD=ilm
-        echo "Build For Board nuclei_fpga_eval, CORE=$CORE, DOWNLOAD=$DOWNLOAD"
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    application  >> build.log
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    test         >> build.log
-        export CORE=ux600
-        export DOWNLOAD=ddr
-        echo "Build For Board nuclei_fpga_eval, CORE=$CORE, DOWNLOAD=$DOWNLOAD"
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    application  >> build.log
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    test         >> build.log
-        export CORE=ux600fd
-        export DOWNLOAD=flash
-        echo "Build For Board nuclei_fpga_eval, CORE=$CORE, DOWNLOAD=$DOWNLOAD"
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    application  >> build.log
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    test         >> build.log
-        export CORE=n307fd
-        export DOWNLOAD=flashxip
-        echo "Build For Board nuclei_fpga_eval, CORE=$CORE, DOWNLOAD=$DOWNLOAD"
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    application  >> build.log
-        SOC=demosoc BOARD=nuclei_fpga_eval nsdk_build_directory    test         >> build.log
-
-        mv build.log build_${{ matrix.soc }}.log
+        export APPCFG=tools/scripts/nsdk_cli/configs/application.json
+        export HWCFG=tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci.json
+        export LOGDIR=logs/nuclei_fpga_eval_ci
+        python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR
 
     - name: Build SDK for GD32VF103 SoC
       if: matrix.soc == 'gd32vf103'
       run: |
         echo "Setup build environment"
         source setup.sh
-        source .ci/build_sdk.sh
-        source .ci/build_applications.sh
-        touch build.log
-        export CORE=n205
-        export DOWNLOAD=flashxip
-        echo "Build For Board gd32vf103v_eval"
-        SOC=gd32vf103 BOARD=gd32vf103v_eval nsdk_build_directory    application >> build.log
-        SOC=gd32vf103 BOARD=gd32vf103v_eval nsdk_build_directory    test        >> build.log
-        echo "Build For Board gd32vf103v_rvstar"
-        SOC=gd32vf103 BOARD=gd32vf103v_rvstar nsdk_build_directory    application   >> build.log
-        SOC=gd32vf103 BOARD=gd32vf103v_rvstar nsdk_build_directory    test          >> build.log
-        mv build.log build_${{ matrix.soc }}.log
-        echo "Build For Board gd32vf103c_longan_nano"
-        SOC=gd32vf103 BOARD=gd32vf103c_longan_nano nsdk_build_directory    application   >> build.log
-        SOC=gd32vf103 BOARD=gd32vf103c_longan_nano nsdk_build_directory    test          >> build.log
-        mv build.log build_${{ matrix.soc }}.log
-        echo "Build For Board gd32vf103c_t_display"
-        SOC=gd32vf103 BOARD=gd32vf103c_t_display nsdk_build_directory    application   >> build.log
-        SOC=gd32vf103 BOARD=gd32vf103c_t_display nsdk_build_directory    test          >> build.log
-        mv build.log build_${{ matrix.soc }}.log
+        export APPCFG=tools/scripts/nsdk_cli/configs/application.json
+        export HWCFG=tools/scripts/nsdk_cli/configs/gd32vf103v_rvstar.json
+        export LOGDIR=logs/gd32vf103v_rvstar
+        python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR
 
     - name: Upload Build Log for ${{ matrix.soc }}
-      uses: actions/upload-artifact@v2.2.0
+      uses: actions/upload-artifact@v3
       with:
         name: build_${{ matrix.soc }}
         path: |
-          build*.log
+          logs/*

+ 7 - 2
.github/workflows/deploy_doc.yaml

@@ -1,5 +1,9 @@
 name: Build Documentation
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
 on:
   push:
     paths:
@@ -21,7 +25,7 @@ jobs:
         os: [ubuntu-18.04]
 
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
       with:
         submodules: recursive
         fetch-depth: 0
@@ -31,6 +35,7 @@ jobs:
           sudo apt-get update
           sudo apt-get install lftp python3 make latexmk \
           texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
+          sudo python3 -m pip install --upgrade pip
           sudo pip3 install -r doc/requirements.txt
     - name: Build Documentation
       run: |
@@ -48,7 +53,7 @@ jobs:
       run: |
         bash .ci/ftp_deploy.sh $FTPUSER $FTPPWD $FTPSERVER doc/build/html nuclei_sdk
     - name: Upload Documentation
-      uses: actions/upload-artifact@v2
+      uses: actions/upload-artifact@v3
       with:
         # Artifact name
         name: nuclei_sdk_doc