blob: 80b1f250798ac7f564722355a07ee7e6ef6436ad (
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
#!/bin/bash
# Install needed packages
sudo apt-get update
sudo apt-get install -y unattended-upgrades
sudo unattended-upgrades --verbose
if [ x"${USE_DEBIAN_BACKPORTS}" = x"1" -o x"${USE_DEBIAN_BACKPORTS}" = x"True" ]; then
echo "deb http://deb.debian.org/debian bullseye-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
sudo apt-get update
sudo unattended-upgrades --verbose
fi
sudo apt-get install -y curl rsync wget onionshare
sudo apt-get install -y lz4 cpio xz-utils zstd p7zip-full
sudo apt-get install -y gcc-aarch64-linux-gnu gcc-arm-none-eabi
if [ x"${USE_DEBIAN_BACKPORTS}" = x"1" -o x"${USE_DEBIAN_BACKPORTS}" = x"True" ]; then
sudo apt-get install -y -t bullseye-backports qemu-user-static
sudo apt-get install -y -t bullseye-backports qemu-system-arm
else
sudo apt-get install -y qemu-user-static
sudo apt-get install -y qemu-system-arm
fi
if [ x"${USE_DEBIAN_BACKPORTS}" = x"1" -o x"${USE_DEBIAN_BACKPORTS}" = x"True" ]; then
sudo apt-get install -y -t bullseye-backports debootstrap arch-test
else
sudo apt-get install -y debootstrap arch-test
fi
sudo apt-get install -y procps gdisk dosfstools
sudo apt-get install -y git-buildpackage equivs pristine-tar
sudo apt-get install -y android-sdk-libsparse-utils
sudo apt-get install -y bc flex bison
sudo apt-get install -y e2tools efitools dfu-util
sudo apt-get install -y tree sharutils device-tree-compiler
sudo apt-get install -y libssl-dev openssl
sudo apt-get install -y gnutls-dev
# Download helper scripts (repo)
mkdir -p ${HOME}/bin
mkdir -p repo_build_space
pushd repo_build_space
gbp clone ${REPO_PACKAGE_URL}
pushd repo
sudo mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
gbp buildpackage --git-ignore-new --git-builder="debuild --no-lintian --set-envvar=DEB_BUILD_OPTIONS=nocheck -i -us -uc -b"
popd
sudo apt-get install -y -f ./repo_*.deb
popd
# Setup git config
git config --global user.email "ci_notify@linaro.org"
git config --global user.name "Linaro CI"
# change to the build directory to repo sync and build
mkdir -p build
pushd build
if [ x"${UBOOT_DIST}" = x"source" ]; then
mkdir -p u-boot-mainline
pushd u-boot-mainline
repo init -u ${UBOOT_MANIFEST_URL} -b ${UBOOT_MANIFEST_BRANCH}
repo sync
popd
elif [ x"${UBOOT_DIST}" = x"androidci" ]; then
mkdir -p u-boot-androidci
rm -f u-boot-androidci/*
GRIDURL="https://ci.android.com/builds/branches/aosp_u-boot-mainline/grid?"
URL=https://ci.android.com/builds/latest/branches/aosp_u-boot-mainline/targets/u-boot_rockpi4/view/BUILD_INFO
RURL=$(curl -Ls -o /dev/null -w %{url_effective} ${URL})
wget -O u-boot-androidci/idbloader.img \
-nv ${RURL%/view/BUILD_INFO}/raw/idbloader.img
wget -O u-boot-androidci/u-boot.itb \
-nv ${RURL%/view/BUILD_INFO}/raw/u-boot.itb
fi
if [ x"${KERNEL_DIST}" = x"source" ]; then
mkdir -p kernel
pushd kernel
repo init -u ${KERNEL_MANIFEST_URL} -b ${KERNEL_MANIFEST_BRANCH}
repo sync
popd
elif [ x"${KERNEL_DIST}" = x"androidci" -o x"${KERNEL_DIST}" = x"androidci-mainline" ]; then
mkdir -p kernel-androidci
GRIDURL="https://ci.android.com/builds/branches/aosp_kernel-common-android14-5.15/grid?"
URL=https://ci.android.com/builds/latest/branches/aosp_kernel-common-android14-5.15/targets/kernel_rockpi4/view/BUILD_INFO
if [ x"${KERNEL_DIST}" = x"androidci-mainline" ]; then
GRIDURL="https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid?"
URL=https://ci.android.com/builds/latest/branches/aosp_kernel-common-android-mainline/targets/kernel_rockpi4/view/BUILD_INFO
fi
RURL=$(curl -Ls -o /dev/null -w %{url_effective} ${URL})
rm -f kernel-androidci/*
wget -O kernel-androidci/BUILD_INFO \
-nv ${RURL%/view/BUILD_INFO}/raw/BUILD_INFO
wget -O kernel-androidci/Image -nv ${RURL%/view/BUILD_INFO}/raw/Image
wget -O kernel-androidci/initramfs.img \
-nv ${RURL%/view/BUILD_INFO}/raw/initramfs.img
wget -O kernel-androidci/rk3399-rock-pi-4b.dtb \
-nv ${RURL%/view/BUILD_INFO}/raw/rk3399-rock-pi-4b.dtb
wget -O kernel-androidci/System.map \
-nv ${RURL%/view/BUILD_INFO}/raw/System.map
FILESSET1="modules.builtin modules.builtin.modinfo modules.load"
for i in ${FILESSET1}; do
wget -O "kernel-androidci/${i}" -nv ${RURL%/view/BUILD_INFO}/raw/"${i}"
done
FILESSET2="vmlinux.symvers gki_aarch64_modules"
for i in ${FILESSET2}; do
wget -O "kernel-androidci/${i}" -nv ${RURL%/view/BUILD_INFO}/raw/"${i}"
done
# download all the *.ko files
KOFILES=$(egrep "[\"].*[.]ko[\"]" ${DISTDIR}/BUILD_INFO | sed 's/["]\(.*[.]ko\)["][,]/\1/' | xargs)
for i in ${KOFILES}; do
wget -O "kernel-androidci/${i}" -nv ${RURL%/view/BUILD_INFO}/raw/"${i}"
done
fi
mkdir -p aosp
pushd aosp
repo init -u ${ANDROID_MANIFEST_URL} -b ${ANDROID_MANIFEST_BRANCH}
repo sync
popd
# clean output and re-create directories
rm -rf output/
mkdir -p output/host/image
mkdir -p pub
# output manifest
pushd aosp
repo manifest -r -o ../pub/pinned-manifest.xml
popd
# apply local patches
function is_in_remote() {
local repository=${1}
local branch=${2}
local existed_in_remote=$(git ls-remote --heads ${repository} ${branch})
if [[ -z ${existed_in_remote} ]]; then
return 0
else
return 1
fi
}
pushd aosp/device/google/cuttlefish
head_commit=$(git rev-parse --verify HEAD)
git remote add linarolocalpatch ${LOCAL_AOSP_CUTTLEFISH_GIT_URL}
git remote update
if is_in_remote linarolocalpatch ${LOCAL_AOSP_CUTTLEFISH_GIT_BRANCH}; then
echo "No local patches for aosp/device/google/cuttlefish"
else
git checkout linarolocalpatch/${LOCAL_AOSP_CUTTLEFISH_GIT_BRANCH}
git rebase ${head_commit}
fi
popd
pushd aosp/kernel/tests
head_commit=$(git rev-parse --verify HEAD)
git remote add linarolocalpatch ${LOCAL_AOSP_KERNEL_TESTS_GIT_URL}
git remote update
if is_in_remote linarolocalpatch ${LOCAL_AOSP_KERNEL_TESTS_GIT_BRANCH}; then
echo "No local patches for aosp/kernel/tests"
else
git checkout linarolocalpatch/${LOCAL_AOSP_KERNEL_TESTS_GIT_BRANCH}
git rebase ${head_commit}
fi
popd
if [ x"${KERNEL_DIST}" = x"source" ]; then
pushd kernel/common
head_commit=$(git rev-parse --verify HEAD)
git remote add linarolocalpatch ${LOCAL_KERNEL_COMMON_GIT_URL}
git remote update
if is_in_remote linarolocalpatch ${LOCAL_KERNEL_COMMON_GIT_BRANCH}; then
echo "No local patches for kernel/common"
else
git checkout linarolocalpatch/${LOCAL_KERNEL_COMMON_GIT_BRANCH}
git rebase ${head_commit}
fi
popd
fi
if [ x"${UBOOT_DIST}" = x"source" ]; then
pushd u-boot-mainline/u-boot
head_commit=$(git rev-parse --verify HEAD)
git remote add linarolocalpatch ${LOCAL_UBOOTMAINLINE_UBOOT_GIT_URL}
git remote update
if is_in_remote linarolocalpatch ${LOCAL_UBOOTMAINLINE_UBOOT_GIT_BRANCH}; then
echo "No local patches for u-boot-mainline/u-boot"
else
git checkout linarolocalpatch/${LOCAL_UBOOTMAINLINE_UBOOT_GIT_BRANCH}
git rebase ${head_commit}
fi
popd
fi
# Download extra tools for testing purpose.
git clone https://github.com/matthuisman/gdrivedl.git
git clone https://git.linaro.org/people/paul.liu/rockpi4cuttlefish/rockpi-buildscripts.git
popd
|