-
Notifications
You must be signed in to change notification settings - Fork 159
140 lines (114 loc) · 4.08 KB
/
aarch64-linux-gnu.yaml
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Modified from https://github.com/Tencent/ncnn/blob/master/.github/workflows/linux-arm-cpu-gcc.yml
name: aarch64-linux-gnu
on:
push:
branches:
- master
paths:
- '.github/workflows/aarch64-linux-gnu.yaml'
- '.github/scripts/run-test.sh'
- 'CMakeLists.txt'
- 'cmake/**'
- 'sherpa-ncnn/csrc/*'
- 'toolchains/aarch64-linux-gnu.toolchain.cmake'
pull_request:
branches:
- master
paths:
- '.github/workflows/aarch64-linux-gnu.yaml'
- '.github/scripts/run-test.sh'
- 'CMakeLists.txt'
- 'cmake/**'
- 'sherpa-ncnn/csrc/*'
- 'toolchains/aarch64-linux-gnu.toolchain.cmake'
concurrency:
group: aarch64-linux-gnu-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
aarch64_linux_gnu:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: cache-qemu
id: cache-qemu
uses: actions/cache@v3
with:
path: qemu-install
key: qemu-aarch64-install-20220908
- name: install-qemu-build-deps
if: steps.cache-qemu.outputs.cache-hit != 'true'
run: |
sudo apt-get update
sudo apt-get install autoconf automake autotools-dev ninja-build
- name: checkout-qemu
if: steps.cache-qemu.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: qemu/qemu
path: qemu
ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65
- name: qemu
if: steps.cache-qemu.outputs.cache-hit != 'true'
run: |
cd qemu
./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=aarch64-linux-user --disable-system
make -j2
make install
- name: cache-toolchain
id: cache-toolchain
uses: actions/cache@v3
with:
path: toolchain
key: gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
- name: Download toolchain
if: steps.cache-toolchain.outputs.cache-hit != 'true'
shell: bash
run: |
wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
mkdir $GITHUB_WORKSPACE/toolchain
tar xvf ./gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz --strip-components 1 -C $GITHUB_WORKSPACE/toolchain
- name: Display toolchain info
shell: bash
run: |
export PATH=$GITHUB_WORKSPACE/toolchain/bin:$PATH
aarch64-linux-gnu-gcc --version
- name: Display qemu-aarch64 -h
shell: bash
run: |
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
export QEMU_LD_PREFIX=$GITHUB_WORKSPACE/toolchain/aarch64-linux-gnu/libc
qemu-aarch64 -h
- name: build aarch64-linux-gnu
shell: bash
run: |
export PATH=$GITHUB_WORKSPACE/toolchain/bin:$PATH
./build-aarch64-linux-gnu.sh
ls -lh build-aarch64-linux-gnu/bin
ls -lh build-aarch64-linux-gnu/lib
file build-aarch64-linux-gnu/bin/sherpa-ncnn
- name: Test sherpa-ncnn
shell: bash
run: |
export PATH=$GITHUB_WORKSPACE/toolchain/bin:$PATH
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
export QEMU_LD_PREFIX=$GITHUB_WORKSPACE/toolchain/aarch64-linux-gnu/libc
export EXE="qemu-aarch64 ./build-aarch64-linux-gnu/bin/sherpa-ncnn"
ls -lh ./build-aarch64-linux-gnu/bin
.github/scripts/run-test.sh
- name: Test C API
shell: bash
run: |
export PATH=$GITHUB_WORKSPACE/toolchain/bin:$PATH
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
export QEMU_LD_PREFIX=$GITHUB_WORKSPACE/toolchain/aarch64-linux-gnu/libc
export EXE="qemu-aarch64 ./build-aarch64-linux-gnu/bin/decode-file-c-api"
ls -lh ./build-aarch64-linux-gnu/bin
.github/scripts/run-test.sh