From 9e0ae5f29d507e29b7c548eb4b1aa1ca019de65b Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 8 Mar 2023 12:15:39 +0700 Subject: [PATCH 1/2] improve ci --- .github/workflows/build_arm.yml | 34 +++++++++++---------------------- examples/rules.mk | 1 + tools/build_utils.py | 16 ++++++++-------- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml index 96c337462..b598eff2a 100644 --- a/.github/workflows/build_arm.yml +++ b/.github/workflows/build_arm.yml @@ -34,10 +34,8 @@ jobs: # Alphabetical order - 'broadcom_32bit' - 'imxrt' - - 'lpc15' - - 'lpc18' - - 'lpc54' - - 'lpc55' + - 'lpc15 lpc18' + - 'lpc54 lpc55' - 'mm32' - 'msp432e4' - 'nrf' @@ -46,14 +44,12 @@ jobs: - 'samd21' - 'samd51' - 'saml2x' - - 'stm32f0' - - 'stm32f1' + - 'stm32f0 stm32f1' - 'stm32f4' - 'stm32f7' - - 'stm32g4' + - 'stm32g4 stm32wb' - 'stm32h7' - 'stm32l4' - - 'stm32wb' - 'tm4c123' - 'xmc4000' steps: @@ -71,7 +67,7 @@ jobs: uses: actions/checkout@v3 - name: Checkout common submodules in lib - run: git submodule update --init lib/FreeRTOS-Kernel lib/lwip lib/sct_neopixel + run: git submodule update --init lib/FreeRTOS-Kernel lib/lwip - name: Checkout hathach/linkermap uses: actions/checkout@v3 @@ -100,29 +96,21 @@ jobs: find ${ex} -name *.map -print -quit | xargs -I % sh -c 'echo "::group::%"; linkermap -v %; echo "::endgroup::"' done - # Upload binaries for rp2040 hardware test with self-hosted + # Upload binaries for rp2040/stm32l412nucleo hardware test with self-hosted + - name: Prepare rp2040 Artifacts if: matrix.family == 'rp2040' && github.repository_owner == 'hathach' run: find examples/ -name "*.elf" -exec mv {} . \; - - name: Upload rp2040 Artifacts - if: matrix.family == 'rp2040' && github.repository_owner == 'hathach' - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.family }} - path: | - *.elf - - # Upload binaries for stm32l412nucleo hardware test with self-hosted - name: Prepare stm32l412nucleo Artifacts if: matrix.family == 'stm32l4' run: find examples/ -path "*stm32l412nucleo/*.elf" -exec mv {} . \; - - name: Upload stm32l412nucleo Artifacts - if: matrix.family == 'stm32l4' + - name: Upload Artifacts for hardware testing + if: matrix.family == 'stm32l4' || (matrix.family == 'rp2040' && github.repository_owner == 'hathach') uses: actions/upload-artifact@v3 with: - name: stm32l412nucleo + name: ${{ matrix.family }} path: | *.elf @@ -244,7 +232,7 @@ jobs: - name: Download stm32l4 Artifacts uses: actions/download-artifact@v3 with: - name: stm32l412nucleo + name: stm32l4 - name: Create flash.sh run: | diff --git a/examples/rules.mk b/examples/rules.mk index 3254112cf..7f3535bba 100644 --- a/examples/rules.mk +++ b/examples/rules.mk @@ -196,6 +196,7 @@ get-deps: git -C $(TOP) submodule update --init $(DEPS_SUBMODULES) endif +.PHONY: size size: $(BUILD)/$(PROJECT).elf -@echo '' @$(SIZE) $< diff --git a/tools/build_utils.py b/tools/build_utils.py index a24cea7bb..de9052d2d 100644 --- a/tools/build_utils.py +++ b/tools/build_utils.py @@ -85,21 +85,22 @@ def build_example(example, board, make_option): # succeeded, failed, skipped ret = [0, 0, 0] + make_cmd = "make -j -C examples/{} BOARD={} {}".format(example, board, make_option) + # Check if board is skipped if skip_example(example, board): status = SKIPPED ret[2] = 1 print(build_format.format(example, board, status, '-', flash_size, sram_size)) else: - build_result = subprocess.run("make -j -C examples/{} BOARD={} {} all".format(example, board, make_option), shell=True, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + subprocess.run(make_cmd + " clean", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + build_result = subprocess.run(make_cmd + " all", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if build_result.returncode == 0: status = SUCCEEDED ret[0] = 1 - (flash_size, sram_size) = build_size(example, board) - subprocess.run("make -j -C examples/{} BOARD={} {} copy-artifact".format(example, board, make_option), shell=True, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + (flash_size, sram_size) = build_size(make_cmd) + #subprocess.run(make_cmd + " copy-artifact", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) else: status = FAILED ret[1] = 1 @@ -113,9 +114,8 @@ def build_example(example, board, make_option): return ret -def build_size(example, board): - size_cmd = 'make -j -C examples/{} BOARD={} size'.format(example, board) - size_output = subprocess.run(size_cmd, shell=True, stdout=subprocess.PIPE).stdout.decode("utf-8").splitlines() +def build_size(make_cmd): + size_output = subprocess.run(make_cmd + ' size', shell=True, stdout=subprocess.PIPE).stdout.decode("utf-8").splitlines() for i, l in enumerate(size_output): text_title = 'text data bss dec' if text_title in l: From 0957902c40633a21e7174cc4d59e6c4b34d1d52a Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 8 Mar 2023 12:28:30 +0700 Subject: [PATCH 2/2] more ci merge --- .github/workflows/build_arm.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml index b598eff2a..b1b88ec70 100644 --- a/.github/workflows/build_arm.yml +++ b/.github/workflows/build_arm.yml @@ -35,9 +35,8 @@ jobs: - 'broadcom_32bit' - 'imxrt' - 'lpc15 lpc18' - - 'lpc54 lpc55' - - 'mm32' - - 'msp432e4' + - 'lpc54 lpc55' + - 'mm32 msp432e4' - 'nrf' - 'rp2040' - 'samd11' @@ -50,8 +49,7 @@ jobs: - 'stm32g4 stm32wb' - 'stm32h7' - 'stm32l4' - - 'tm4c123' - - 'xmc4000' + - 'tm4c123 xmc4000' steps: - name: Setup Python uses: actions/setup-python@v4 @@ -97,7 +95,7 @@ jobs: done # Upload binaries for rp2040/stm32l412nucleo hardware test with self-hosted - + - name: Prepare rp2040 Artifacts if: matrix.family == 'rp2040' && github.repository_owner == 'hathach' run: find examples/ -name "*.elf" -exec mv {} . \;