X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/53843c61d600a0911e9f4f512b0d5c34b18f9d33..366a2efdd0ac4630f4381f3b47d70ef155ed2df4:/build/run-build-packages.sh diff --git a/build/run-build-packages.sh b/build/run-build-packages.sh index b800d43e08..8df8f981db 100755 --- a/build/run-build-packages.sh +++ b/build/run-build-packages.sh @@ -19,7 +19,7 @@ Options: --debug Output debug information (default: false) --target - Distribution to build packages for (default: debian8) + Distribution to build packages for (default: debian9) --only-build Build only a specific package (or $ONLY_BUILD from environment) --command @@ -42,7 +42,7 @@ VENDOR="Veritas Genetics, Inc." DEBUG=${ARVADOS_DEBUG:-0} EXITCODE=0 -TARGET=debian8 +TARGET=debian9 COMMAND= PARSEDOPTS=$(getopt --name "$0" --longoptions \ @@ -323,9 +323,8 @@ package_go_binary tools/keep-rsync keep-rsync \ package_go_binary tools/keep-exercise keep-exercise \ "Performance testing tool for Arvados Keep" -# The Python SDK +# The Python SDK - Should be built first because it's needed by others fpm_build_virtualenv "arvados-python-client" "sdk/python" -fpm_build_virtualenv "arvados-python-client" "sdk/python" "python3" # Arvados cwl runner fpm_build_virtualenv "arvados-cwl-runner" "sdk/cwl" @@ -339,12 +338,15 @@ fpm_build_virtualenv "arvados-fuse" "services/fuse" # The node manager fpm_build_virtualenv "arvados-node-manager" "services/nodemanager" -# The Docker image cleaner -fpm_build_virtualenv "arvados-docker-cleaner" "services/dockercleaner" "python3" - # The Arvados crunchstat-summary tool fpm_build_virtualenv "crunchstat-summary" "tools/crunchstat-summary" +# The Python SDK - Python3 package +fpm_build_virtualenv "arvados-python-client" "sdk/python" "python3" + +# The Docker image cleaner +fpm_build_virtualenv "arvados-docker-cleaner" "services/dockercleaner" "python3" + # The cwltest package, which lives out of tree cd "$WORKSPACE" if [[ -e "$WORKSPACE/cwltest" ]]; then @@ -356,13 +358,16 @@ mkdir cwltest/bin && touch cwltest/bin/cwltest fpm_build_virtualenv "cwltest" "cwltest" rm -rf "$WORKSPACE/cwltest" +calculate_go_package_version arvados_server_version cmd/arvados-server +arvados_server_iteration=$(default_iteration "arvados-server" "$arvados_server_version" "go") + # Build the API server package test_rails_package_presence arvados-api-server "$WORKSPACE/services/api" if [[ "$?" == "0" ]]; then handle_rails_package arvados-api-server "$WORKSPACE/services/api" \ "$WORKSPACE/agpl-3.0.txt" --url="https://arvados.org" \ --description="Arvados API server - Arvados is a free and open source platform for big data science." \ - --license="GNU Affero General Public License, version 3.0" + --license="GNU Affero General Public License, version 3.0" --depends "arvados-server = ${arvados_server_version}-${arvados_server_iteration}" fi # Build the workbench server package @@ -370,6 +375,22 @@ test_rails_package_presence arvados-workbench "$WORKSPACE/apps/workbench" if [[ "$?" == "0" ]] ; then ( set -e + + # The workbench package has a build-time dependency on the arvados-server + # package for config manipulation, so install it first. + cd $WORKSPACE/cmd/arvados-server + get_complete_package_name arvados_server_pkgname arvados-server ${arvados_server_version} go + + arvados_server_pkg_path="$WORKSPACE/packages/$TARGET/${arvados_server_pkgname}" + if [[ ! -e ${arvados_server_pkg_path} ]]; then + arvados_server_pkg_path="$WORKSPACE/packages/$TARGET/processed/${arvados_server_pkgname}" + fi + if [[ "$FORMAT" == "deb" ]]; then + dpkg -i ${arvados_server_pkg_path} + else + rpm -i ${arvados_server_pkg_path} + fi + cd "$WORKSPACE/apps/workbench" # We need to bundle to be ready even when we build a package without vendor directory @@ -382,17 +403,17 @@ if [[ "$?" == "0" ]] ; then rm -rf tmp mkdir tmp - # Set up application.yml and production.rb so that asset precompilation works - \cp config/application.yml.example config/application.yml -f - \cp config/environments/production.rb.example config/environments/production.rb -f - sed -i 's/secret_token: ~/secret_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/' config/application.yml - sed -i 's/keep_web_url: false/keep_web_url: exampledotcom/' config/application.yml + # Set up an appropriate config.yml + arvados-server config-dump -config <(cat /etc/arvados/config.yml 2>/dev/null || echo "Clusters: {zzzzz: {}}") > /tmp/x + mkdir -p /etc/arvados/ + mv /tmp/x /etc/arvados/config.yml + perl -p -i -e 'BEGIN{undef $/;} s/WebDAV(.*?):\n( *)ExternalURL: ""/WebDAV$1:\n$2ExternalURL: "example.com"/g' /etc/arvados/config.yml RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake npm:install >/dev/null RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile >/dev/null # Remove generated configuration files so they don't go in the package. - rm config/application.yml config/environments/production.rb + rm -rf /etc/arvados/ ) if [[ "$?" != "0" ]]; then @@ -402,7 +423,7 @@ if [[ "$?" == "0" ]] ; then handle_rails_package arvados-workbench "$WORKSPACE/apps/workbench" \ "$WORKSPACE/agpl-3.0.txt" --url="https://arvados.org" \ --description="Arvados Workbench - Arvados is a free and open source platform for big data science." \ - --license="GNU Affero General Public License, version 3.0" + --license="GNU Affero General Public License, version 3.0" --depends "arvados-server = ${arvados_server_version}-${arvados_server_iteration}" fi fi