Experimental Physics and Industrial Control System
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. 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.
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
- Replies:
- Re: EPICS Core github CI Chris Johns via Core-talk
- References:
- EPICS Core github CI Chris Johns via Core-talk
- Navigate by Date:
- Prev:
EPICS Core github CI Chris Johns via Core-talk
- Next:
Re: EPICS Core github CI Chris Johns 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
<2023>
2024
- Navigate by Thread:
- Prev:
EPICS Core github CI Chris Johns via Core-talk
- Next:
Re: EPICS Core github CI Chris Johns 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
<2023>
2024