mirror of
https://github.com/openmv/openmv.git
synced 2025-09-26 23:09:13 +08:00
github: Add LLVM toolchain to CI.
This commit is contained in:
parent
b56df8dc1f
commit
cb9f343549
12
.github/workflows/firmware.yml
vendored
12
.github/workflows/firmware.yml
vendored
@ -43,8 +43,10 @@ jobs:
|
||||
uses: actions/cache@v4.0.2
|
||||
id: cache
|
||||
with:
|
||||
path: ~/cache/gcc
|
||||
key: 'arm-gnu-toolchain-13.2.rel1'
|
||||
path: |
|
||||
~/cache/gcc
|
||||
~/cache/llvm
|
||||
key: 'toolchain'
|
||||
|
||||
- name: '🐍 Install Python'
|
||||
uses: actions/setup-python@v5
|
||||
@ -57,10 +59,14 @@ jobs:
|
||||
pip install ethos-u-vela==3.12.0
|
||||
vela --version
|
||||
|
||||
- name: '🛠 Install toolchain '
|
||||
- name: '🛠 Install GCC toolchain '
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
run: source tools/ci.sh && ci_install_arm_gcc
|
||||
|
||||
- name: '🛠 Install LLVM toolchain '
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
run: source tools/ci.sh && ci_install_arm_llvm
|
||||
|
||||
- name: '🏗 Build firmware'
|
||||
run: source tools/ci.sh && ci_build_target ${{ matrix.target }}
|
||||
|
||||
|
25
tools/ci.sh
25
tools/ci.sh
@ -2,19 +2,24 @@
|
||||
|
||||
########################################################################################
|
||||
# Install ARM GCC.
|
||||
TOOLCHAIN_PATH=${HOME}/cache/gcc
|
||||
TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz"
|
||||
GCC_TOOLCHAIN_PATH=${HOME}/cache/gcc
|
||||
GCC_TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz"
|
||||
|
||||
ci_install_arm_gcc_apt() {
|
||||
sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi
|
||||
LLVM_TOOLCHAIN_PATH=${HOME}/cache/llvm
|
||||
LLVM_TOOLCHAIN_URL="https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-18.1.3/LLVM-ET-Arm-18.1.3-Linux-x86_64.tar.xz"
|
||||
|
||||
ci_install_arm_gcc() {
|
||||
mkdir -p ${GCC_TOOLCHAIN_PATH}
|
||||
wget --no-check-certificate -O - ${GCC_TOOLCHAIN_URL} | tar --strip-components=1 -Jx -C ${GCC_TOOLCHAIN_PATH}
|
||||
export PATH=${GCC_TOOLCHAIN_PATH}/bin:${PATH}
|
||||
arm-none-eabi-gcc --version
|
||||
}
|
||||
|
||||
ci_install_arm_gcc() {
|
||||
mkdir -p ${TOOLCHAIN_PATH}
|
||||
wget --no-check-certificate -O - ${TOOLCHAIN_URL} | tar --strip-components=1 -Jx -C ${TOOLCHAIN_PATH}
|
||||
export PATH=${TOOLCHAIN_PATH}/bin:${PATH}
|
||||
arm-none-eabi-gcc --version
|
||||
ci_install_arm_llvm() {
|
||||
mkdir -p ${LLVM_TOOLCHAIN_PATH}
|
||||
wget --no-check-certificate -O - ${LLVM_TOOLCHAIN_URL} | tar --strip-components=1 -Jx -C ${LLVM_TOOLCHAIN_PATH}
|
||||
export PATH=${LLVM_TOOLCHAIN_PATH}/bin:${PATH}
|
||||
clang --version
|
||||
}
|
||||
|
||||
########################################################################################
|
||||
@ -30,7 +35,7 @@ ci_update_submodules() {
|
||||
# Build Targets.
|
||||
|
||||
ci_build_target() {
|
||||
export PATH=${TOOLCHAIN_PATH}/bin:${PATH}
|
||||
export PATH=${GCC_TOOLCHAIN_PATH}/bin:${PATH}
|
||||
make -j$(nproc) -C src/micropython/mpy-cross
|
||||
make -j$(nproc) TARGET=${1} -C src
|
||||
mv src/build/bin ${1}
|
||||
|
Loading…
Reference in New Issue
Block a user