Updating and Testing ibek-support#
The ibek-support repository
contains ibek support YAML (files named *.ibek.support.yaml). Here is an
example procedure for local testing of changes to support YAML in ibek-support
alongside the IOC instance YAML that uses it.
(Suggest you do this inside a developer workspace devcontainer.)
cd my-workspace-folder
# clone ibek-support
git clone https://github.com/epics-containers/ibek-support.git
# clone a services repo that contains example IOC instance YAML
git clone https://github.com/epics-containers/example-services.git
# get the latest ibek installed (DLS users: module load uv)
uv tool install ibek
cd example-services/services/bl01t-ea-test-01
ibek runtime generate config/ioc.yaml ../../../ibek-support/*/*ibek.support.yaml
This gets ibek to generate a startup script and a database generation script.
It uses config/ioc.yaml as the description of the IOC ‘entities’ to
instantiate, and the support YAML files in ibek-support as the source of the
definitions of the classes of entities available.
By default the generated files are written to the runtime output folder
(/epics/runtime); pass -o <folder> to write them somewhere else, for example
-o . to write into the current directory.
If your IOC instance is split across more than one entity file (for example a
base config/ioc.yaml plus a services-repo config/runtime.yaml), use
generate2, which takes the config folder and discovers both files:
ibek runtime generate2 config --definitions ../../../ibek-support/*/*ibek.support.yaml