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).