action_utest.yml 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. name: AutoTestCI
  2. # Controls when the action will run. Triggers the workflow on push or pull request
  3. # events but only for the master branch
  4. on:
  5. # Runs at 16:00 UTC (BeiJing 00:00) on the 1st of every month
  6. schedule:
  7. - cron: '0 16 1 * *'
  8. push:
  9. branches:
  10. - master
  11. paths-ignore:
  12. - documentation/**
  13. - '**/README.md'
  14. - '**/README_zh.md'
  15. pull_request:
  16. branches:
  17. - master
  18. paths-ignore:
  19. - documentation/**
  20. - '**/README.md'
  21. - '**/README_zh.md'
  22. jobs:
  23. test:
  24. runs-on: ubuntu-latest
  25. name: ${{ matrix.legs.UTEST }}
  26. strategy:
  27. fail-fast: false
  28. matrix:
  29. legs:
  30. - {UTEST: "kernel/mem", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "kernel/mem.conf", SD_FILE: "sd.bin"}
  31. - {UTEST: "kernel/ipc", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "kernel/ipc.conf", SD_FILE: "sd.bin"}
  32. - {UTEST: "kernel/irq", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "kernel/irq.conf", SD_FILE: "sd.bin"}
  33. - {UTEST: "kernel/timer", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "kernel/timer.conf", SD_FILE: "sd.bin"}
  34. - {UTEST: "kernel/thread", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "kernel/thread.conf", SD_FILE: "sd.bin"}
  35. - {UTEST: "components/utest", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "utest_self/self.conf", SD_FILE: "sd.bin"}
  36. - {UTEST: "kernel/mem/riscv64", RTT_BSP: "bsp/qemu-riscv-virt64", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", CONFIG_FILE: "kernel/mem.conf", SD_FILE: "None"}
  37. env:
  38. TEST_QEMU_ARCH: ${{ matrix.legs.QEMU_ARCH }}
  39. TEST_QEMU_MACHINE: ${{ matrix.legs.QEMU_MACHINE }}
  40. TEST_BSP_ROOT: ${{ matrix.legs.RTT_BSP }}
  41. TEST_CONFIG_FILE: ${{ matrix.legs.CONFIG_FILE }}
  42. TEST_SD_FILE: ${{ matrix.legs.SD_FILE }}
  43. steps:
  44. - uses: actions/checkout@v1
  45. - name: Install Tools
  46. shell: bash
  47. run: |
  48. sudo apt-get update
  49. sudo apt-get -yqq install scons qemu-system git
  50. - name: Install Arm ToolChains
  51. if: ${{ matrix.legs.QEMU_ARCH == 'arm' && success() }}
  52. shell: bash
  53. run: |
  54. wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.3/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  55. sudo tar xjf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /opt
  56. /opt/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gcc --version
  57. echo "RTT_EXEC_PATH=/opt/gcc-arm-none-eabi-10-2020-q4-major/bin" >> $GITHUB_ENV
  58. - name: Install RISC-V ToolChains
  59. if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && success() }}
  60. run: |
  61. wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
  62. sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
  63. /opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
  64. echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
  65. - name: Build BSP
  66. run: |
  67. echo CONFIG_RT_USING_UTESTCASES=y >> $TEST_BSP_ROOT/.config
  68. cat examples/utest/configs/$TEST_CONFIG_FILE >> $TEST_BSP_ROOT/.config
  69. scons --pyconfig-silent -C $TEST_BSP_ROOT
  70. scons -j$(nproc) -C $TEST_BSP_ROOT
  71. - name: Start Test
  72. if: ${{ success() }}
  73. run: |
  74. git clone https://github.com/armink/UtestRunner.git
  75. pushd $TEST_BSP_ROOT
  76. dd if=/dev/zero of=sd.bin bs=1024 count=65536
  77. popd
  78. pushd UtestRunner
  79. if [ $TEST_SD_FILE != "None" ]; then
  80. python3 qemu_runner.py --system $TEST_QEMU_ARCH --machine $TEST_QEMU_MACHINE --elf ../$TEST_BSP_ROOT/rtthread.elf --sd ../$TEST_BSP_ROOT/$TEST_SD_FILE
  81. else
  82. python3 qemu_runner.py --system $TEST_QEMU_ARCH --machine $TEST_QEMU_MACHINE --elf ../$TEST_BSP_ROOT/rtthread.elf
  83. fi
  84. cat rtt_console.log
  85. popd