sentencepiece
45 строк · 1.6 Кб
1name: CrossBuild
2
3on:
4push:
5branches: [ master ]
6tags:
7- 'v*'
8pull_request:
9branches: [ master ]
10
11permissions:
12contents: read
13
14jobs:
15build:
16runs-on: ubuntu-latest
17strategy:
18fail-fast: false
19matrix:
20arch: [ i686, arm, aarch64, riscv64, powerpc, powerpc64, powerpc64le, s390x, sparc64, m68k, sh4, alpha ]
21
22steps:
23- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
24
25- name: Install cross tools
26run: |
27sudo apt-get update
28sudo apt-get install -y sudo qemu-user gdb zstd dwarfdump {gcc,g++}-10-{i686,aarch64,riscv64,powerpc,powerpc64,powerpc64le,s390x,sparc64,m68k,sh4,alpha}-linux-gnu {gcc,g++}-10-arm-linux-gnueabihf
29sudo ln -sf /usr/bin/arm-linux-gnueabihf-gcc-10 /usr/bin/arm-linux-gnu-gcc-10
30sudo ln -sf /usr/bin/arm-linux-gnueabihf-g++-10 /usr/bin/arm-linux-gnu-g++-10
31sudo ln -sf /usr/arm-linux-gnueabihf /usr/arm-linux-gnu
32
33- name: Build
34run: |
35mkdir -p ${{github.workspace}}/build
36cd ${{github.workspace}}/build
37env CXX=/usr/bin/${{matrix.arch}}-linux-gnu-g++-10 CC=/usr/bin/${{matrix.arch}}-linux-gnu-gcc-10 cmake .. -DSPM_BUILD_TEST=ON -DSPM_ENABLE_SHARED=OFF -DCMAKE_FIND_ROOT_PATH=/usr/${{matrix.arch}}-linux-gnu -DSPM_CROSS_SYSTEM_PROCESSOR=${{matrix.arch}}
38make -j$(nproc)
39
40- name: Test on QEMU
41if: matrix.arch != 'sparc64' && matrix.arch != 'm68k' && matrix.arch != 'sh4'
42run: |
43cd ${{github.workspace}}/build
44qemu_arch=`echo ${{matrix.arch}} | sed -e s/powerpc/ppc/ -e s/686/386/`
45qemu-${qemu_arch} -L /usr/${{matrix.arch}}-linux-gnu src/spm_test
46