We recently added the ability for anyone to submit a configuration for
the jenkins test builds. This will help us to build-test currently
untested configurations.
To add a new test configuration for jenkins, add a miniconfig for the
platform into the coreboot/configs directory. The configuration name
must accurately reflect the platform being built:
'config.vendor_board_testname'
When adding a new config, it's recommended that you look at the
existing files to see what the new config should look like.
Steps for adding a config:
- Create the config to test:
This is done with 'make menuconfig', then by running 'make
savedefconfig' to generate the miniconfig which gets saved as the file
'defconfig'.
- Get the name for the config:
The config will be named as a lowercase version of the Kconfig board
name. "config.emulation_qemu_x86_i440fx_testname" for example.
You can get it from defconfig with this command:
echo "config.$( grep _BOARD defconfig | sed 's|.*_BOARD_||' | sed
's|\=y||' | tr 'A-Z' 'a-z')_"
- Copy the defconfig into the configs directory as the new name.
- Test the configuration and verify that the board configuration is
being built, run abuild from the coreboot directory, and you should
see that your updated config gets built.
% util/abuild/abuild -t emulation/qemu-i440fx
Building config EMULATION_QEMU_X86_I440FX
...
EMULATION_QEMU_X86_I440FX built successfully. (took 17s)
Building config EMULATION_QEMU_X86_I440FX_DEBUG
...
EMULATION_QEMU_X86_I440FX_DEBUG built successfully. (took 10s)
Building config EMULATION_QEMU_X86_I440FX_NOSERIAL
...
EMULATION_QEMU_X86_I440FX_NOSERIAL built successfully. (took 9s)
- Submit a patch with the config
Jenkins will test the updated config immediately in that patch
Additional notes:
- If the saved configuration is named with no test name:
'config.vendor_board' it will be used by jenkins as the default build
for that platform. This is useful for getting jenkins to build
default configuration that is slightly more advanced than the Kconfig
default build for that platform.
- The configs that are typically tested by jenkins are VERY simple -
they would typically include just the board and vendor and nothing
else - what you would get if you ran make menuconfig and JUST changed
the vendor and boardname, then saved and exited.
- Binaries that are in the blobs repository can be included in the
build, but including other files will not work.
- The files in the configs/builder directory are not for jenkins.
These are for the coreboot build system, which has not yet been
completed. They are miniconfig files that will generate actual
working ROM files for the platform if the correct blobs are in the
specified location (site-local).