-
Notifications
You must be signed in to change notification settings - Fork 159
117 lines (107 loc) · 3.24 KB
/
run-onert-build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
name: Run ONERT Ubuntu Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-build.yml'
- 'nn*'
- 'Makefile.template'
- 'compute/**'
- 'infra/buildtool/**'
- 'infra/cmake/**'
- 'infra/nncc/**'
- 'infra/nnfw/**'
- 'runtime/**'
- 'tests/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-build.yml'
- 'nn*'
- 'Makefile.template'
- 'compute/**'
- 'infra/buildtool/**'
- 'infra/cmake/**'
- 'infra/nncc/**'
- 'infra/nnfw/**'
- 'runtime/**'
- 'tests/**'
- '!**/*.md'
defaults:
run:
shell: bash
jobs:
build:
if: github.repository_owner == 'Samsung'
strategy:
matrix:
type: [ debug, release ]
ubuntu_code: [ focal, jammy ] # TODO: noble
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 }}
options: --user root
env:
TARGET_ARCH: ${{ matrix.arch }}
BUILD_TYPE: ${{ matrix.type }}
CROSS_BUILD: ${{ matrix.arch != 'x86_64' && '1' || '0' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Caching externals
uses: actions/cache@v4
with:
path: externals
key: external-onert-${{ matrix.ubuntu_code }}-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}-${{ hashFiles('infra/nnfw/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-${{ matrix.ubuntu_code }}-
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 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