I'm currently working on setting up pipelines for an embedded c project. I've got a working pipeline set up using GCC already but now must set up a similar pipeline using the linux version of iar build tools (bxarm)
I've got a custom docker image set up with all the required software and licenses installed, and a .yml file to load the docker image, and run the iarbuild command. Where I'm getting stuck is that while I can successfully run the intended command in my docker container locally, if I try running the same command in bitbucket my build hangs forever until I kill it.
Can anybody think of a reason why a script would work successfully in a local docker container but not on bitbucket's environment? I'm rather stumped.
See the output from bitbucket pipeline. It almost seems like the command is missing a return key or is waiting on something to continue. I've uploaded a screenshot of what happens when I run the same command on my local docker container.
<span>iarbuild <a href="https://bitbucket.org/wattstopper/dsglmswdm/src/ceac3b6ccedb495eaf8bdf7ab5690d9e060dcf6a/Firmware/platform/lmswdm/lmsw105.ewp" rel="noopener noreferrer" target="_blank">Firmware/platform/lmswdm/lmsw105.ewp</a> -build "Release-For-Bootloader" -log all</span>
<span>IAR Command Line Build Utility V8.4.11.7092/LNX</span>
<span>Copyright 2002-2020 IAR Systems AB.</span>
<span>Building configuration: lmsw105 - Release-For-Bootloader</span>
<span>Updating build tree...</span>
<span>0 file(s) deleted.</span>
<span>Updating build tree...</span>
<span>adc.c </span>
<span>iccarm /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm/adc.c -D NDEBUG -D BOOTLOADED -D STM32F072 -D USE_STDPERIPH_DRIVER -D HSE_VALUE=3686400 -D LM_DEVICE_TYPE=15 --diag_suppress Pe550 -o /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm/Release-For-Bootloader/Obj --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --no_clustering --no_scheduling --debug --endian=little --cpu=Cortex-M0 -e --fpu=None --dlib_config /opt/iarsystems/bxarm-8.50.9/arm\inc\c\DLib_Config_Normal.h -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm/ -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm\..\..\library\utils/ -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm\..\..\library\lmswdm/ -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm\..\..\library\lmrc/ -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm\..\..\library\irb/ -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm\..\..\driver\stm32f0xx/ -I /opt/atlassian/pipelines/agent/build/Firmware/platform/lmswdm\..\..\driver\stm32f0xx\cmsis/ -On --require_prototypes -I /opt/iarsystems/bxarm-8.50.9/arm\CMSIS\Core\Include\ -I /opt/iarsystems/bxarm-8.50.9/arm\CMSIS\DSP\Include\</span>
<span>Here's my .yml file:</span>
# This is a build configuration for GCC and Make.
# Guides are at
https://confluence.atlassian.com/x/5Q4SMw# Only use spaces to indent your .yml configuration.
# -----
# Specify a custom docker image from Docker Hub as your build environment.
image:
name: #hide this secret
username: #hide this secret
password: #####not shown
email: tyler.jones@legrand.us
clone:
depth: 6
options:
size: 2x
pipelines:
default:
- parallel:
- step:
name: Build ARM LMSWDM
script:
# configure the build environment
- iarbuild Firmware/platform/lmswdm/lmsw105.ewp -clean "Release-For-Bootloader" -log all
- iarbuild Firmware/platform/lmswdm/lmsw105.ewp -build "Release-For-Bootloader" -log all
#- apt-get install --quiet --assume-yes gcc-arm-none-eabi
# main repo is already cloned, but sub-repos are not cloned yet
# - git submodule sync --recursive
# - git submodule update --recursive --init --force
# projects to build
# - make lmswdm-st