forked from Linaro/meta-qcom
-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (123 loc) · 3.53 KB
/
build-template.yml
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
on:
workflow_call:
inputs:
host:
required: true
type: string
images:
required: true
type: string
machines:
required: true
type: string
variants:
required: true
type: string
url:
required: true
type: string
branch:
required: true
type: string
ref:
required: true
type: string
ref_type:
type: string
default: ref
secrets:
TUXSUITE_TOKEN:
required: true
env:
POKY_URL: https://git.yoctoproject.org/poky
DISTRO: poky
TCLIBC: glibc musl
KERNELS: linaro-qcomlt yocto
jobs:
build:
name: ${{github.event_name}} - ${{github.ref}}
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade tuxsuite
- name: Setup tux plan
run: |
cat << EOF > plan.yaml
name: CI for ${{github.repository}}
description: ${{github.workflow}} - ${{github.ref}}
version: 1
common: &commondata
container: ${{inputs.host}}
envsetup: poky/oe-init-build-env
sources:
git_trees:
- branch: ${{inputs.branch}}
url: $POKY_URL
- ${{inputs.ref_type}}: ${{inputs.ref}}
url: ${{inputs.url}}
distro: $DISTRO
bblayers_conf:
- BBLAYERS += '../$(echo ${{github.repository}} | cut -d'/' -f2)'
artifacts: ["licenses"]
EOF
for tclibc in ${TCLIBC}; do
for kernel in ${KERNELS}; do
cat << EOF >> plan.yaml
${tclibc}-${kernel}: &${tclibc}-${kernel}
local_conf:
- INHERIT += 'buildstats buildstats-summary'
- INHERIT:remove = 'rm_work'
- TCLIBC := '${tclibc}'
- PREFERRED_PROVIDER_virtual/kernel := 'linux-${kernel}'
- INITRAMFS_IMAGE ?= 'initramfs-rootfs-image'
${tclibc}-${kernel}-noinitramfs: &${tclibc}-${kernel}-noinitramfs
local_conf:
- INHERIT += 'buildstats buildstats-summary'
- INHERIT:remove = 'rm_work'
- TCLIBC := '${tclibc}'
- PREFERRED_PROVIDER_virtual/kernel := 'linux-${kernel}'
EOF
done
done
# armv7 machines do not support ESP / UKI
for machine in ${{inputs.machines}}; do
if [ ${machine##qcom-armv8a} == ${machine} ] ; then
images=`echo ${{inputs.images}} | sed -e 's/esp-qcom-image//g'`
else
images="${{inputs.images}}"
fi
cat << EOF >> plan.yaml
${machine}: &${machine}
machine: ${machine}
target: ${images}
EOF
done
cat << EOF >> plan.yaml
jobs:
EOF
for tclibc in ${TCLIBC}; do
cat << EOF >> plan.yaml
- name: ${tclibc}
bakes:
EOF
for machine in ${{inputs.machines}}; do
for variant in ${{inputs.variants}}; do
[ ${variant##${machine}-${tclibc}} == ${variant} ] && continue
cat << EOF >> plan.yaml
- { <<: [*commondata, *${variant#${machine}-}, *${machine}], name: ${variant} }
EOF
done
done
done
echo "Ready to submit this Tux Plan:"
cat plan.yaml
- name: Run build
run: |
tuxsuite plan plan.yaml
env:
TUXSUITE_TOKEN: ${{ secrets.TUXSUITE_TOKEN }}