OpenDDS / meta-opendds

Open Embedded Layer for the OpenDDS package
Other
7 stars 4 forks source link

CI #2

Open mitza-oci opened 4 years ago

mitza-oci commented 4 years ago

Add script for Azure Pipelines CI (or similar) to validate the build.

kdopen commented 4 years ago

I'd need you to provide this. I'm not familiar with Azure Pipelines. Also, CI is expensive with Yocto. A minimal incremental build can easily take 15 minutes - a full build anywhere from 30 minutes to several hours.

kdopen commented 4 years ago

At a minimum your main build script would look something like

YOCTO_RELEASE="thud"
git clone --branch $YOCTO_RELEASE https://git.yoctoproject.org/git/poky
git clone --branch $YOCTO_RELEASE https://github.com/oci-labs/meta-opendds.git
source poky/oe-init-build-env
yocto-check-layer ../meta-opendds
bitbake opendds opendds-native nativesdk-opendds

This won't build a complete image, so it will be faster than a full build, but it will start off by compiling the compiler and everything that needs. You'd need to add anything else that Azure Pipelines needs.

kdopen commented 4 years ago

And, of course, you really need to do the above script for each of the supported Yocto releases (rocko, sumo, thud and at some point warrior)

kdopen commented 4 years ago

Also, the CI server needs the following packages installed

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
     xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
     xterm

We usually build within a container to make things easier.

mitza-oci commented 4 years ago

I'd need you to provide this. I'm not familiar with Azure Pipelines.

Yes, our team can help with getting this set up. It could be from a different service but we have some experience with Azure and it's pretty flexible and integrates well with GitHub.

Also, CI is expensive with Yocto. A minimal incremental build can easily take 15 minutes - a full build anywhere from 30 minutes to several hours.

If we can get it in the 30-90 minute range we should be OK. Here's an OpenDDS example: https://dev.azure.com/opendds/OpenDDS/_build/results?buildId=1137

plabanca commented 2 years ago

Created and merged pull request 17 to implement CI step of running yocto-check-layer