mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
buildserver: use android update sdk
to install Android SDK
`android update sdk --no-ui` is the standard command line tool for installing the Android SDK. By symlinking into the $ANDROID_HOME/temp dir, the cached files can still be used. This converts the chef recipe to a vagrant shell provisioning script since it was all bash anyway. Some file names no longer officially have a -linux in them, so those were changed to keep the cache working with the default filename.
This commit is contained in:
parent
e449d2f583
commit
e47396b403
@ -1,79 +0,0 @@
|
|||||||
|
|
||||||
sdk_loc = node[:settings][:sdk_loc]
|
|
||||||
user = node[:settings][:user]
|
|
||||||
|
|
||||||
script "setup-android-sdk" do
|
|
||||||
timeout 14400
|
|
||||||
interpreter "bash"
|
|
||||||
user user
|
|
||||||
cwd "/tmp"
|
|
||||||
code "
|
|
||||||
tools=`ls -1 /vagrant/cache/tools_*.zip | sort -n | tail -1`
|
|
||||||
unzip $tools
|
|
||||||
mkdir #{sdk_loc}
|
|
||||||
mkdir #{sdk_loc}/platforms
|
|
||||||
mkdir #{sdk_loc}/build-tools
|
|
||||||
mv tools #{sdk_loc}/
|
|
||||||
"
|
|
||||||
not_if "test -d #{sdk_loc}"
|
|
||||||
end
|
|
||||||
|
|
||||||
execute "add-android-sdk-path" do
|
|
||||||
user user
|
|
||||||
path = "#{sdk_loc}/tools:#{sdk_loc}/platform-tools"
|
|
||||||
command "echo \"export PATH=\\$PATH:#{path} #PATH-SDK\" >> /home/#{user}/.bsenv"
|
|
||||||
not_if "grep PATH-SDK /home/#{user}/.bsenv"
|
|
||||||
end
|
|
||||||
|
|
||||||
script "add_android_packages" do
|
|
||||||
interpreter "bash"
|
|
||||||
user user
|
|
||||||
code "
|
|
||||||
#{sdk_loc}/tools/android update sdk --no-ui --all --filter platform-tools,extra-android-m2repository <<X
|
|
||||||
y
|
|
||||||
|
|
||||||
X
|
|
||||||
"
|
|
||||||
end
|
|
||||||
|
|
||||||
script "add-platforms" do
|
|
||||||
interpreter "bash"
|
|
||||||
user user
|
|
||||||
code "
|
|
||||||
rm -rf current-platform
|
|
||||||
mkdir current-platform
|
|
||||||
cd current-platform
|
|
||||||
for f in `ls -1 /vagrant/cache/android-[0-9]*.zip /vagrant/cache/platform-[0-9]*.zip`; do
|
|
||||||
unzip $f
|
|
||||||
sdk=`sed -n 's,^ro.build.version.sdk=,,p' */build.prop`
|
|
||||||
rm -rf #{sdk_loc}/platforms/android-$sdk
|
|
||||||
mv * #{sdk_loc}/platforms/android-$sdk
|
|
||||||
done
|
|
||||||
"
|
|
||||||
end
|
|
||||||
|
|
||||||
script "add_build_tools" do
|
|
||||||
interpreter "bash"
|
|
||||||
user user
|
|
||||||
code "
|
|
||||||
rm -rf current-build-tools
|
|
||||||
mkdir current-build-tools
|
|
||||||
cd current-build-tools
|
|
||||||
for ver in 17 18.0.1 18.1 18.1.1 19 19.0.1 19.0.2 19.0.3 19.1 20 21 21.0.1 21.0.2 21.1 21.1.1 21.1.2 22 22.0.1 23 23.0.1 23.0.2 23.0.3; do
|
|
||||||
unzip /vagrant/cache/build-tools_r${ver}-linux.zip
|
|
||||||
case `echo ${ver} | wc -c` in
|
|
||||||
3)
|
|
||||||
dirver=${ver}.0.0
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
dirver=${ver}.0
|
|
||||||
;;
|
|
||||||
7)
|
|
||||||
dirver=${ver}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
rm -rf #{sdk_loc}/build-tools/${dirver}
|
|
||||||
mv android-*/ #{sdk_loc}/build-tools/${dirver}
|
|
||||||
done
|
|
||||||
"
|
|
||||||
end
|
|
53
buildserver/provision-android-sdk
Normal file
53
buildserver/provision-android-sdk
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z $ANDROID_HOME ]; then
|
||||||
|
echo "ANDROID_HOME env var must be set!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TODO remove the rm, this should work with an existing ANDROID_HOME
|
||||||
|
if [ ! -x $ANDROID_HOME/tools/android ]; then
|
||||||
|
rm -rf $ANDROID_HOME
|
||||||
|
mkdir ${ANDROID_HOME}
|
||||||
|
mkdir ${ANDROID_HOME}/temp
|
||||||
|
mkdir ${ANDROID_HOME}/platforms
|
||||||
|
mkdir ${ANDROID_HOME}/build-tools
|
||||||
|
cd $ANDROID_HOME
|
||||||
|
|
||||||
|
tools=`ls -1 /vagrant/cache/tools_*.zip | sort -n | tail -1`
|
||||||
|
unzip -qq $tools
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /vagrant/cache
|
||||||
|
|
||||||
|
# make hard links for `android update sdk` to use and delete
|
||||||
|
for f in android_*.zip android-[0-9]*.zip platform-[0-9]*.zip build-tools_r*-linux.zip; do
|
||||||
|
rm -f ${ANDROID_HOME}/temp/$f
|
||||||
|
ln -s /vagrant/cache/$f ${ANDROID_HOME}/temp/
|
||||||
|
done
|
||||||
|
|
||||||
|
# install all cached platforms
|
||||||
|
cached=""
|
||||||
|
for f in `ls -1 android-[0-9]*.zip platform-[0-9]*.zip`; do
|
||||||
|
sdk=`unzip -c $f "*/build.prop" | sed -n 's,^ro.build.version.sdk=,,p'`
|
||||||
|
cached=,android-${sdk}${cached}
|
||||||
|
done
|
||||||
|
|
||||||
|
# install all cached build-tools
|
||||||
|
for f in `ls -1 build-tools*.zip`; do
|
||||||
|
ver=`unzip -c $f "*/source.properties" | sed -n 's,^Pkg.Revision=,,p'`
|
||||||
|
cached=,build-tools-${ver}${cached}
|
||||||
|
done
|
||||||
|
|
||||||
|
${ANDROID_HOME}/tools/android --silent update sdk --no-ui --all \
|
||||||
|
--filter platform-tools,extra-android-m2repository${cached} <<EOH
|
||||||
|
y
|
||||||
|
|
||||||
|
EOH
|
||||||
|
|
||||||
|
|
||||||
|
chmod -R a+rX $ANDROID_HOME/
|
||||||
|
find $ANDROID_HOME/ -type f -executable -print0 | xargs -0 chmod a+x
|
@ -89,6 +89,8 @@ if not os.path.exists(cachedir):
|
|||||||
cachefiles = [
|
cachefiles = [
|
||||||
('https://dl.google.com/android/repository/tools_r25.1.7-linux.zip',
|
('https://dl.google.com/android/repository/tools_r25.1.7-linux.zip',
|
||||||
'3ca053600a86a5a64d5571edfbb1dad27f2bda3bfd2d38e2fe54322610b1ef0b'),
|
'3ca053600a86a5a64d5571edfbb1dad27f2bda3bfd2d38e2fe54322610b1ef0b'),
|
||||||
|
('https://dl.google.com/android/repository/android_m2repository_r32.zip',
|
||||||
|
'a6a8d7ffb153161f26d5fdebfa9aa1c9c84b29c62851fffff2cdfad9e094b13b'),
|
||||||
('https://dl.google.com/android/repository/android-1.5_r04-linux.zip',
|
('https://dl.google.com/android/repository/android-1.5_r04-linux.zip',
|
||||||
'85b6c8f9797e56aa415d3a282428bb640c96b0acb17c11d41621bb2a5302fe64'),
|
'85b6c8f9797e56aa415d3a282428bb640c96b0acb17c11d41621bb2a5302fe64'),
|
||||||
('https://dl.google.com/android/repository/android-1.6_r03-linux.zip',
|
('https://dl.google.com/android/repository/android-1.6_r03-linux.zip',
|
||||||
@ -97,19 +99,19 @@ cachefiles = [
|
|||||||
'e70e2151b49613f23f40828c771ab85e241eed361cab037c6312df77f2612f0a'),
|
'e70e2151b49613f23f40828c771ab85e241eed361cab037c6312df77f2612f0a'),
|
||||||
('https://dl.google.com/android/repository/android-2.0.1_r01-linux.zip',
|
('https://dl.google.com/android/repository/android-2.0.1_r01-linux.zip',
|
||||||
'f47b46177b17f6368461f85bc2a27d0d2c437929f588ea27105712bc3185f664'),
|
'f47b46177b17f6368461f85bc2a27d0d2c437929f588ea27105712bc3185f664'),
|
||||||
('https://dl.google.com/android/repository/android-2.1_r03-linux.zip',
|
('https://dl.google.com/android/repository/android-2.1_r03.zip',
|
||||||
'b9cc140a9b879586181b22cfc7d4aa18b979251e16e9b17771c5d0acb71ba940'),
|
'b9cc140a9b879586181b22cfc7d4aa18b979251e16e9b17771c5d0acb71ba940'),
|
||||||
('https://dl.google.com/android/repository/android-2.2_r03-linux.zip',
|
('https://dl.google.com/android/repository/android-2.2_r03.zip',
|
||||||
'7c9ea1bd7cb225504bd085d7c93ae27d52bd88d29b621d28108f82fef68177c0'),
|
'7c9ea1bd7cb225504bd085d7c93ae27d52bd88d29b621d28108f82fef68177c0'),
|
||||||
('https://dl.google.com/android/repository/android-2.3.1_r02-linux.zip',
|
('https://dl.google.com/android/repository/android-2.3.1_r02.zip',
|
||||||
'b2ab4896d0a4857e4f688f69eb08b0e1a8074709d4445a92a83ece7ec7cd198c'),
|
'b2ab4896d0a4857e4f688f69eb08b0e1a8074709d4445a92a83ece7ec7cd198c'),
|
||||||
('https://dl.google.com/android/repository/android-2.3.3_r02-linux.zip',
|
('https://dl.google.com/android/repository/android-2.3.3_r02.zip',
|
||||||
'54bdb0f1ca06ba5747061ddeea20f431af72c448334fd4d3d7f84ea2ccd29fea'),
|
'54bdb0f1ca06ba5747061ddeea20f431af72c448334fd4d3d7f84ea2ccd29fea'),
|
||||||
('https://dl.google.com/android/repository/android-3.0_r02-linux.zip',
|
('https://dl.google.com/android/repository/android-3.0_r02.zip',
|
||||||
'1cacae7b6e1b5a5d73c06f5d29d2ea92d16674df8fd5507681290e77d1647a1c'),
|
'1cacae7b6e1b5a5d73c06f5d29d2ea92d16674df8fd5507681290e77d1647a1c'),
|
||||||
('https://dl.google.com/android/repository/android-3.1_r03-linux.zip',
|
('https://dl.google.com/android/repository/android-3.1_r03.zip',
|
||||||
'7570c86a86488a146aa2141a65a24d81800959c1907ff4f1d2c13bbafab230c5'),
|
'7570c86a86488a146aa2141a65a24d81800959c1907ff4f1d2c13bbafab230c5'),
|
||||||
('https://dl.google.com/android/repository/android-3.2_r01-linux.zip',
|
('https://dl.google.com/android/repository/android-3.2_r01.zip',
|
||||||
'ff6b26ad34d7060a72ba504b0314cef8ba3138005561705adec5ad470a073d9b'),
|
'ff6b26ad34d7060a72ba504b0314cef8ba3138005561705adec5ad470a073d9b'),
|
||||||
('https://dl.google.com/android/repository/android-14_r04.zip',
|
('https://dl.google.com/android/repository/android-14_r04.zip',
|
||||||
'da1af15c77ba41d062eb6d0ef5921cc424ab6167587033b830609d65f04802b6'),
|
'da1af15c77ba41d062eb6d0ef5921cc424ab6167587033b830609d65f04802b6'),
|
||||||
@ -384,7 +386,6 @@ vagrantfile += """
|
|||||||
chef.log_level = :debug
|
chef.log_level = :debug
|
||||||
chef.json = {
|
chef.json = {
|
||||||
:settings => {
|
:settings => {
|
||||||
:sdk_loc => "/home/vagrant/android-sdk",
|
|
||||||
:ndk_loc => "/home/vagrant/android-ndk",
|
:ndk_loc => "/home/vagrant/android-ndk",
|
||||||
:debian_mirror => "%s",
|
:debian_mirror => "%s",
|
||||||
:ubuntu_trusty => "%s",
|
:ubuntu_trusty => "%s",
|
||||||
@ -392,11 +393,13 @@ vagrantfile += """
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
chef.add_recipe "fdroidbuild-general"
|
chef.add_recipe "fdroidbuild-general"
|
||||||
chef.add_recipe "android-sdk"
|
|
||||||
chef.add_recipe "android-ndk"
|
chef.add_recipe "android-ndk"
|
||||||
chef.add_recipe "gradle"
|
chef.add_recipe "gradle"
|
||||||
chef.add_recipe "kivy"
|
chef.add_recipe "kivy"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.vm.provision "shell", path: "provision-android-sdk"
|
||||||
|
|
||||||
end
|
end
|
||||||
""" % (config['debian_mirror'],
|
""" % (config['debian_mirror'],
|
||||||
str('14.04' in os.uname()[3]).lower())
|
str('14.04' in os.uname()[3]).lower())
|
||||||
|
Loading…
Reference in New Issue
Block a user