1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-10-03 17:50:11 +02:00

buildserver: setup env vars using standard script

bash provides a standard file location for a script to be run when the
shell starts: /etc/profile.d/  This converts the scattered bits of code for
making ~/.bsenv into a single provisioning script to generate
/etc/profile.d/bsenv.sh, which gets automatically executed when bash starts
This commit is contained in:
Hans-Christoph Steiner 2016-06-15 13:09:57 +02:00
parent 721b3b79a6
commit e449d2f583
5 changed files with 23 additions and 13 deletions

View File

@ -97,12 +97,6 @@ easy_install_package "compare-locales" do
action :install
end
execute "add-bsenv" do
user user
command "echo \". ./.bsenv \" >> /home/#{user}/.bashrc"
not_if "grep bsenv /home/#{user}/.bashrc"
end
execute "set-default-java" do
command "update-java-alternatives --set java-1.7.0-openjdk-i386"
end

View File

@ -40,9 +40,3 @@ EOF
chmod a+x /opt/gradle/bin/gradle
"
end
execute "add-android-ndk-path" do
user user
command "echo \"export PATH=\\$PATH:/opt/gradle/bin #PATH-GRADLE\" >> /home/#{user}/.bsenv"
not_if "grep PATH-GRADLE /home/#{user}/.bsenv"
end

View File

@ -0,0 +1,16 @@
#!/bin/sh
#
# sets up the environment vars needed by the build process
set -e
set -x
bsenv=/etc/profile.d/bsenv.sh
echo "# generated on "`date` > $bsenv
echo export ANDROID_HOME=$1 >> $bsenv
echo export ANDROID_NDK_HOME=$2 >> $bsenv
echo 'export PATH=$PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/opt/gradle/bin' >> $bsenv
chmod 0644 $bsenv

View File

@ -388,7 +388,7 @@ def build_server(app, build, vcs, build_dir, output_dir, force):
if options.verbose:
cmdline += ' --verbose'
cmdline += " %s:%s" % (app.id, build.vercode)
chan.exec_command('bash -c ". ~/.bsenv && ' + cmdline + '"')
chan.exec_command('bash -c "' + cmdline + '"')
output = bytes()
while not chan.exit_status_ready():
while chan.recv_ready():

View File

@ -373,6 +373,12 @@ if config['apt_package_cache']:
""".format(aptcachedir)
vagrantfile += """
config.vm.provision "shell" do |shell|
shell.path = "setup-env-vars"
shell.args = ["/home/vagrant/android-sdk", "/home/vagrant/android-ndk"]
end
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "cookbooks"
chef.log_level = :debug