diff --git a/.github/workflows/run-onert-build.yml b/.github/workflows/run-onert-build.yml index 5310e71d667..57c1c3dc3b0 100644 --- a/.github/workflows/run-onert-build.yml +++ b/.github/workflows/run-onert-build.yml @@ -45,7 +45,14 @@ jobs: matrix: type: [ debug, release ] ubuntu_code: [ focal, jammy ] # TODO: noble - arch: [ x86_64 ] # TODO: armv7l, aarch64 + arch: [ x86_64, armv7l, aarch64 ] + include: + - arch: armv7l + rootfs: rootfs_${{ matrix.ubuntu_code }}_arm + platform: arm/v7 + - arch: aarch64 + platform: arm64 + rootfs: rootfs_${{ matrix.ubuntu_code }}_aarch64 runs-on: ubuntu-22.04 container: image: nnfw/one-devtools:${{ matrix.ubuntu_code }} @@ -53,6 +60,7 @@ jobs: env: TARGET_ARCH: ${{ matrix.arch }} BUILD_TYPE: ${{ matrix.type }} + CROSS_BUILD: ${{ matrix.arch != 'x86_64' && '1' || '0' }} steps: - name: Checkout uses: actions/checkout@v4 @@ -67,11 +75,43 @@ jobs: external-onert- external- + - name: Download rootfs for cross build + if: matrix.arch != 'x86_64' + uses: dawidd6/action-download-artifact@7 + with: + workflow: generate-rootfs.yml + branch: master + name: ${{ matrix.rootfs }} + + - name: Install rootfs for cross build + if: matrix.arch != 'x86_64' + run: | + mkdir -p tools/cross/rootfs + tar -zxf ${{ matrix.rootfs }}.tar.gz -C tools/cross/rootfs + - name: Build onert run: | make -f Makefile.template - - name: Run test + - name: Run test on native build + if: matrix.arch == 'x86_64' run: | ./Product/out/test/onert-test unittest ./Product/out/test/onert-test unittest --unittestdir=./Product/out/nnapi-gtest + + - name: QEMU for cross build + if: matrix.arch != 'x86_64' + uses: docker/setup-qemu-action@v3 + + - name: Run test on cross build + if: matrix.arch != 'x86_64' + uses: addnab/docker-run-action@v3 + with: + image: ubuntu:${{ matrix.ubuntu_code }} + shell: bash + options: | + --platform linux/${{ matrix.platform }} + -v ${{ github.workspace }}:/work -w /work + run: | + ./Product/out/test/onert-test unittest + ./Product/out/test/onert-test unittest --unittestdir=./Product/out/nnapi-gtest