From 23df7c73bc5ce853790dfa4cc9f22a6baf7c0cd8 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Sat, 19 Feb 2022 23:32:30 +0200 Subject: [PATCH] github: Enable caching workflow dependencies. * Use cache for GNU Arm Embedded Toolchain. --- .github/workflows/firmware.yml | 8 ++++++++ tools/ci.sh | 12 +++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 4468cc675..88e0130b4 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -37,7 +37,15 @@ jobs: - name: '🧱 Update submodules' run: source tools/ci.sh && ci_update_submodules + - name: '♻ Caching dependencies' + uses: actions/cache@v2 + id: cache + with: + path: ~/cache/gcc + key: 'gcc-arm-none-eabi-10-2020-q4-major' + - name: '🛠 Install toolchain ' + if: steps.cache.outputs.cache-hit != 'true' run: source tools/ci.sh && ci_install_arm_gcc - name: '🏗 Build firmware' diff --git a/tools/ci.sh b/tools/ci.sh index a9ba1b08b..44d6f89b5 100755 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -2,6 +2,9 @@ ######################################################################################## # Install ARM GCC. +TOOLCHAIN="gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" +TOOLCHAIN_PATH=${HOME}/cache/gcc +TOOLCHAIN_URL="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/${TOOLCHAIN}" ci_install_arm_gcc_apt() { sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi @@ -9,10 +12,9 @@ ci_install_arm_gcc_apt() { } ci_install_arm_gcc() { - mkdir ${HOME}/gcc - GCC_URL="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" - wget --no-check-certificate -O - ${GCC_URL} | tar --strip-components=1 -jx -C ${HOME}/gcc - export PATH=${HOME}/gcc/bin:${PATH} + 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 } @@ -29,7 +31,7 @@ ci_update_submodules() { # Build Targets. ci_build_target() { - export PATH=${HOME}/gcc/bin:${PATH} + export PATH=${TOOLCHAIN_PATH}/bin:${PATH} make -j$(nproc) -C src/micropython/mpy-cross make -j$(nproc) TARGET=${1} -C src mkdir firmware