aboutsummaryrefslogtreecommitdiffstats
path: root/coin/module_config.yaml
blob: c5e413e9b98d30e84ce4096b4932c4affb1400e4 (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
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]

machine_type:
  Build:
    cores: 16

# Target build matrix:
#
#           [target1]       [target2]   [target3]       [target4]
# [machine] qemuarm64       qemux86     qemuarm         qemux86-64
# [yocto]   gatesgarth      dunfell     hardknott       honister
#

target1: &target1
  type: Group
  instructions:
    - type: EnvironmentVariable
      variableName: MACHINE
      variableValue: qemuarm64
    - type: EnvironmentVariable
      variableName: YOCTO_BRANCH
      variableValue: gatesgarth
  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: dunfell
  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: honister
  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
      (cd poky; git checkout ${YOCTO_BRANCH})
      git clone git://git.openembedded.org/meta-openembedded --reference /mnt/yocto-cache/mirror/meta-openembedded.git
      (cd meta-openembedded; git checkout ${YOCTO_BRANCH})
      git clone git://git.openembedded.org/meta-python2 --reference /mnt/yocto-cache/mirror/meta-python2.git
      (cd meta-python2; git checkout ${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 SSTATE_DIR=/mnt/yocto-cache/sstate-caches/$(sed -n -e "s/DISTRO_CODENAME.*\"\(.*\)\"/\1/p" ../poky/meta-*/conf/distro/poky.conf)-meta-qt5
      bitbake-layers add-layer ../meta-openembedded/meta-oe
      bitbake-layers add-layer ../meta-python2
      bitbake-layers add-layer ${SOURCE_DIR}
      echo "require ${SOURCE_DIR}/coin/test-configs.inc" >> conf/local.conf

      # EXCLUDE_FROM_WORLD
      rm -fv ${SOURCE_DIR}/recipes-qt/examples/qt5-opengles2-test_git.bb
      rm -rv ${SOURCE_DIR}/recipes-python/pyqt5/python3-pyqt5_*.bb
      rm -rv ${SOURCE_DIR}/recipes-python/pyqtchart/python3-pyqtchart_*.bb
      # build all recipes found in the layer
      bitbake $(find ${SOURCE_DIR} -name *.bb | xargs -n1 basename | sed -e 's/\([^._]*\).*/\1/')
    filename: "{{.BuildDir}}/start-build"
    fileMode: 420
  - type: ExecuteCommand
    command: ["bash", "-xe", "{{.BuildDir}}/start-build"]
    maxTimeInSeconds: 39600
    maxTimeBetweenOutput: 39600
    userMessageOnFailure: "Build failed."
  - type: ExecuteCommand
    command: ["sudo", "umount", "/mnt/yocto-cache"]
    userMessageOnFailure: "Unmounting cache failed."

  Test: []