mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-14 19:20:29 +03:00
buildserver: handle loops in bash, not ruby, to save memory
Apparently, ruby is quite a memory hog when it forks. I've been getting errors like this with ./makebuildserver: Errno::ENOMEM - script[add_btools_17] (android-sdk::default line 72) had an error: Errno::ENOMEM: Cannot allocate memory - fork(2) So instead of looping in ruby and forking for each loop, handle the looping in the bash script, so ruby is just calling a single bash script.
This commit is contained in:
parent
fc0df30404
commit
a4615b1def
1 changed files with 31 additions and 34 deletions
|
|
@ -33,21 +33,17 @@ execute "add-android-sdk-path" do
|
||||||
not_if "grep PATH-SDK /home/#{user}/.bsenv"
|
not_if "grep PATH-SDK /home/#{user}/.bsenv"
|
||||||
end
|
end
|
||||||
|
|
||||||
%w{
|
|
||||||
platform-tools
|
script "add_android_packages" do
|
||||||
extra-android-m2repository
|
|
||||||
}.each do |pkg|
|
|
||||||
script "add_pkg_#{pkg}" do
|
|
||||||
interpreter "bash"
|
interpreter "bash"
|
||||||
user user
|
user user
|
||||||
code "
|
code "
|
||||||
#{sdk_loc}/tools/android update sdk --no-ui -a -t #{pkg} <<X
|
#{sdk_loc}/tools/android update sdk --no-ui --all --filter platform-tools,extra-android-m2repository <<X
|
||||||
y
|
y
|
||||||
|
|
||||||
X
|
X
|
||||||
"
|
"
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
script "add-platforms" do
|
script "add-platforms" do
|
||||||
interpreter "bash"
|
interpreter "bash"
|
||||||
|
|
@ -66,28 +62,29 @@ script "add-platforms" do
|
||||||
"
|
"
|
||||||
end
|
end
|
||||||
|
|
||||||
%w{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
|
script "add_build_tools" do
|
||||||
21.1.1 21.1.2 22 22.0.1 23 23.0.1 23.0.2 23.0.3
|
|
||||||
}.each do |ver|
|
|
||||||
script "add_btools_#{ver}" do
|
|
||||||
interpreter "bash"
|
interpreter "bash"
|
||||||
user user
|
user user
|
||||||
cwd "/tmp"
|
cwd "/tmp"
|
||||||
code "
|
code "
|
||||||
unzip /vagrant/cache/build-tools_r#{ver}-linux.zip
|
rm -rf current-build-tools
|
||||||
case `echo #{ver} | wc -c` in
|
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)
|
3)
|
||||||
dirver=#{ver}.0.0
|
dirver=${ver}.0.0
|
||||||
;;
|
;;
|
||||||
5)
|
5)
|
||||||
dirver=#{ver}.0
|
dirver=${ver}.0
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
dirver=#{ver}
|
dirver=${ver}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
rm -rf #{sdk_loc}/build-tools/${dirver}
|
rm -rf #{sdk_loc}/build-tools/${dirver}
|
||||||
mv android-*/ #{sdk_loc}/build-tools/${dirver}
|
mv android-*/ #{sdk_loc}/build-tools/${dirver}
|
||||||
|
done
|
||||||
"
|
"
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue