EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Core github CI
From: Chris Johns via Core-talk <core-talk at aps.anl.gov>
To: Michael Davidsaver <mdavidsaver at gmail.com>
Cc: Core-talk <core-talk at aps.anl.gov>
Date: Thu, 16 Nov 2023 10:54:22 +1100
On 16/11/2023 3:45 am, Michael Davidsaver wrote:
> On 11/13/23 14:46, Chris Johns via Core-talk wrote:
>> Hello,
>>
>> At an EPICS meeting earlier this year there was a discussion about the CI
>> tooling for RTEMS builds. I would like to discuss and help plan moving the CI
>> tools for RTEMS to RTEMS 6.
>>
>> The RTEMS developers recommend moving to RTEMS 6 however Michael and Andrew
>> rightly pointed out it is not released. What is being offered is an interim
>> solution until it is released with the focus on establishing a tools and kernel
>> supply chain that makes upgrading simpler than it currently is.
>>
>> The ci-scripts README discusses support for RTEMS 5 and 10 BSPs. The move to
>> RTEMS 6 has extra dependencies that complicates building all the needed pieces.
>> The solution offered in the meeting was to use Gemini's infrastructure to build
>> containers with the suitable tools, BSPs and networking libraries installed. We
>> are working on this. The piece we need help with is the github CI integration. I
>> know very little about github and its CI interfaces.
> 
> The current "interface" used by ci-scripts is downloading a .tar containing
> a pre-built toolchain and kernel libraries.
> 
> https://github.com/epics-base/ci-scripts/blob/130e88b7095812da93e423c602651e30f39da11a/cue.py#L951-L980
> 
> These .tar files are provided for pairs of RTEMS version and BSP.  github.com
> is used for hosting of these fairly large files.
> 
> https://github.com/mdavidsaver/rsb/releases/tag/4.9%2F20210306
> 
> https://github.com/mdavidsaver/rsb/releases/tag/4.10%2F20210306
> 
> https://github.com/mdavidsaver/rsb/releases/tag/5%2F20210306
> 
> Now to be very clear.  This is a statement of how things are now.

Understood. The RSB can generate tar files so we can always move back to this if
we find containers are a problem. And to be clear it is not my preferred path.

The RPM is built by running the RSB inside the rpm build command and having it
package the output. The key point is the configuration of what is built is in
the deployment repo and its vertical stack knowledge of the EPICS supported BSPs
is the important information.

> I would be
> quite happy to see these tar files replaced with OCI container images
> (aka. docker images) downloadable from a public server.  Especially if
> produced by someone other than myself.

This is the approach we are planning on. The detail is not yet sorted and this
is where Felix can help. My knowledge of docker is limited.

Chris

> 
> 
>> Details
>>
>> Gemini's gitlab workflows use the rtems-deployment repo to build RPM packages
>> for specific configurations. I have defined an initial set of BSPs:
>>
>>   https://git.rtems.org/chrisj/rtems-deployment.git/tree/config/epics
>>
>> This repo uses an RSB clone which defines the specific version of RTEMS. As a
>> result we can control the version of RTEMS built and we can add specific RPM
>> version settings to track what is installed in a container.
>>
>> The RPMs are installed into containers that can be used to build EPICS base.
>>
>> There are 2 RPMs built, one for the legacy networking stack and one for the
>> libbsd networking stack. Both RPMs contain the RTEMS net-services libraries for
>> things like NTP. The legacy stack supports NFSv2 and libbsd supports NFSv4.
>>
>> Status
>>
>> The building of the RPMs by Gemini is effected by the outage Gemini has and
>> Felix has been looking for ways to build without it but it is not easy and I ask
>> for your patience while we work through this.
>>
>> Questions, issues and suggestions are welcome
>>
>> Thanks
>> Chris
> 

References:
EPICS Core github CI Chris Johns via Core-talk
Re: EPICS Core github CI Michael Davidsaver via Core-talk

Navigate by Date:
Prev: Re: EPICS Core github CI Michael Davidsaver via Core-talk
Next: Build failed: epics-base base-7.0-71 AppVeyor via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
Navigate by Thread:
Prev: Re: EPICS Core github CI Michael Davidsaver via Core-talk
Next: Build failed: epics-base base-7.0-71 AppVeyor via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
ANJ, 17 Nov 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·