aboutsummaryrefslogtreecommitdiffstats
path: root/coin/module_config.yaml
blob: a7460fc3e2d07dffa168404a674a677702f353e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
version: 2
accept_configuration:
  condition: and
  conditions:
    - condition: property
      property: host.compiler
      equals_value: Yocto
    - condition: property
      property: target.arch
      in_values: [TARGET2, TARGET3, TARGET4]

machine_type:
  Build:
    cores: 16

# Target build matrix:
#
#           [target1]       [target2]   [target3]       [target4]
# [machine] qemuarm64       qemux86     qemuarm         qemux86-64
# [yocto]   master          honister    hardknott       dunfell
# [X11]     no              no          yes             yes
# [mingw]   no              yes         no              no
#

target1: &target1
  type: Group
  instructions:
    - type: EnvironmentVariable
      variableName: MACHINE
      variableValue: qemuarm64
    - type: EnvironmentVariable
      variableName: YOCTO_BRANCH
      variableValue: master
    - type: EnvironmentVariable
      variableName: DISABLE_X11
      variableValue: true
  enable_if:
      condition: property
      property: target.arch
      equals_value: TARGET1
target2: &target2
  type: Group
  instructions:
    - type: EnvironmentVariable
      variableName: MACHINE
      variableValue: qemux86
    - type: EnvironmentVariable
      variableName: YOCTO_BRANCH
      variableValue: honister
    - type: EnvironmentVariable
      variableName: DISABLE_X11
      variableValue: true
    - type: EnvironmentVariable
      variableName: MINGW
      variableValue: true
  enable_if:
      condition: property
      property: target.arch
      equals_value: TARGET2
target3: &target3
  type: Group
  instructions:
    - type: EnvironmentVariable
      variableName: MACHINE
      variableValue: qemuarm
    - type: EnvironmentVariable
      variableName: YOCTO_BRANCH
      variableValue: hardknott
  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: YOCTO_BRANCH
      variableValue: dunfell
  enable_if:
      condition: property
      property: target.arch
      equals_value: TARGET4

instructions:
  Build:
  - *target1
  - *target2
  - *target3
  - *target4
  - 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

      git clone git://git.yoctoproject.org/poky --reference /mnt/yocto-cache/mirror/poky.git -b ${YOCTO_BRANCH}
      git clone git://git.openembedded.org/meta-openembedded --reference /mnt/yocto-cache/mirror/meta-openembedded.git -b ${YOCTO_BRANCH}
      git clone git://git.yoctoproject.org/meta-mingw --reference /mnt/yocto-cache/mirror/meta-mingw.git -b ${YOCTO_BRANCH}

      source ./poky/oe-init-build-env
      export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE SSTATE_DIR DL_DIR"
      export DL_DIR=/mnt/yocto-cache/downloads
      export BB_GENERATE_MIRROR_TARBALLS=1
      export BB_NUMBER_THREADS=8
      DISTRO_CODENAME=$(sed -n -e "s/DISTRO_CODENAME.*\"\(.*\)\"/\1/p" ../poky/meta-*/conf/distro/poky.conf)
      export SSTATE_DIR=/mnt/yocto-cache/sstate-caches/${DISTRO_CODENAME}-meta-qt6
      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}

      if [ -n "${DISABLE_X11}" ] ; then
        echo "DISTRO_FEATURES:remove = \"x11\"" >> conf/local.conf
      fi
      if [ -n "${MINGW}" ]; then
        export SDKMACHINE=x86_64-mingw32
      fi

      echo "require ${SOURCE_DIR}/coin/test-configs.inc" >> conf/local.conf
      echo "include ${SOURCE_DIR}/coin/test-${DISTRO_CODENAME}.inc" >> conf/local.conf

      # 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: []