meta-qt6/coin/module_config.yaml
Samuli Piippo 670a077467 Coin: add CI build for kirkstone
Add CI build using Yocto kirkstone branches and retire hardknott build
in favor of it. Hardknott is EOL on April 2022. Only dev branch will
continue to be tested against Yocto master.

Change-Id: I9aad0e14c1a5054b2e9eab85ec8a2f2d603f6427
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2022-04-26 08:09:56 +03:00

171 lines
4.9 KiB
YAML

version: 2
accept_configuration:
condition: and
conditions:
- condition: property
property: host.compiler
equals_value: Yocto
- condition: property
property: target.arch
in_values: [TARGET1, TARGET2, TARGET3, TARGET4, TARGET5]
machine_type:
Build:
cores: 16
# Target build matrix:
#
# [target1] [target2] [target3] [target4] [target5]
# [machine] qemuarm64 qemux86 qemuarm qemux86-64 qemuarm64
# [yocto] kirkstone honister master dunfell master
# [X11] no no yes yes no
# [mingw] no yes no no no
# [static] no no no no yes
#
target1: &target1
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm64
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: kirkstone.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs post-inclusive wayland
enable_if:
condition: property
property: target.arch
equals_value: TARGET1
target2: &target2
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemux86
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: honister.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs pre-inclusive wayland mingw
enable_if:
condition: property
property: target.arch
equals_value: TARGET2
target3: &target3
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: master.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs post-inclusive
enable_if:
condition: property
property: target.arch
equals_value: TARGET3
target4: &target4
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemux86-64
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: dunfell.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs pre-inclusive no-webengine
enable_if:
condition: property
property: target.arch
equals_value: TARGET4
target5: &target5
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm64
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: master.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs post-inclusive wayland static no-webengine
enable_if:
condition: property
property: target.arch
equals_value: TARGET5
instructions:
Build:
- *target1
- *target2
- *target3
- *target4
- *target5
- type: EnvironmentVariable
variableName: DL_DIR
variableValue: "/mnt/yocto-cache/downloads"
- type: EnvironmentVariable
variableName: SOURCE_DIR
variableValue: "{{.SourceDir}}"
- type: SetBuildDirectory
directory: "{{.AgentWorkingDir}}/build"
- type: MakeDirectory
directory: "{{.BuildDir}}"
- type: ChangeDirectory
directory: "{{.BuildDir}}"
- type: WriteFile
fileContents: |
#!/bin/bash -xe
# make hostname unique for NFS
sudo hostname $(hostname -s)-$(date +%s%N)
sudo mkdir -p /mnt/yocto-cache
sudo mount yocto-cache.ci.qt.io:/srv/yocto-cache /mnt/yocto-cache
curl https://storage.googleapis.com/git-repo-downloads/repo > repo
chmod +x repo
./repo init \
-u git://code.qt.io/yocto/boot2qt-manifest \
-b ci \
-m ${MANIFEST} \
--reference /mnt/mirror
./repo sync
source ./poky/oe-init-build-env
bitbake-layers add-layer ../meta-openembedded/meta-oe
bitbake-layers add-layer ../meta-openembedded/meta-python
bitbake-layers add-layer ../meta-openembedded/meta-multimedia
bitbake-layers add-layer ../meta-mingw
bitbake-layers add-layer ${SOURCE_DIR}
for conf in ${TEST_CONFIGS}; do
echo "require ${SOURCE_DIR}/coin/test-${conf}.inc" >> conf/local.conf
done
# build toolchain which should include all supported recipes
bitbake meta-toolchain-qt6 nativesdk-packagegroup-qt6-toolchain-host packagegroup-qt6-modules
filename: "{{.BuildDir}}/start-build"
fileMode: 420
- type: ExecuteCommand
command: ["bash", "-xe", "{{.BuildDir}}/start-build"]
maxTimeInSeconds: 43200
maxTimeBetweenOutput: 7200
userMessageOnFailure: "Build failed."
- type: ExecuteCommand
command: ["sudo", "umount", "/mnt/yocto-cache"]
userMessageOnFailure: "Unmounting cache failed."
Test: []