From: Ward Vandewege Date: Tue, 9 Jul 2019 22:23:12 +0000 (-0400) Subject: Our workbench and api server packages now have a runtime dependency on X-Git-Tag: 2.0.0~268 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/f3293c48ae509f131c6c1727e10dbc7ba997f3df?ds=sidebyside Our workbench and api server packages now have a runtime dependency on arvados-server for configuration validation. Our workbench package now also has a build-time dependency on arvados-server, because it needs some configuration while precompiling assets. closes #15449 refs #14812 Arvados-DCO-1.1-Signed-off-by: Ward Vandewege --- diff --git a/apps/workbench/fpm-info.sh b/apps/workbench/fpm-info.sh index 22ec1ba14c..48913a14d7 100644 --- a/apps/workbench/fpm-info.sh +++ b/apps/workbench/fpm-info.sh @@ -4,9 +4,9 @@ case "$TARGET" in centos*) - fpm_depends+=(git) + fpm_depends+=(git arvados-server) ;; debian* | ubuntu*) - fpm_depends+=(git g++) + fpm_depends+=(git g++ arvados-server) ;; esac diff --git a/build/package-build-dockerfiles/centos7/Dockerfile b/build/package-build-dockerfiles/centos7/Dockerfile index cc8265c3d4..d83bae8cba 100644 --- a/build/package-build-dockerfiles/centos7/Dockerfile +++ b/build/package-build-dockerfiles/centos7/Dockerfile @@ -35,7 +35,11 @@ RUN scl enable rh-python35 "easy_install-3.5 pip" && easy_install-2.7 pip RUN wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm RUN rpm -ivh epel-release-latest-7.noarch.rpm -RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle && rm -rf /tmp/arvados +RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle + +# Workbench depends on arvados-server for config manipulation +ENV GOPATH /tmp +RUN mkdir -p $GOPATH/src/git.curoverse.com && ln -sT /tmp/arvados $GOPATH/src/git.curoverse.com/arvados.git && cd $GOPATH/src/git.curoverse.com/arvados.git/cmd/arvados-server && go get -v github.com/kardianos/govendor && $GOPATH/bin/govendor sync && go get && go build && cp arvados-server /usr/local/bin/ && rm -rf /tmp/arvados # The version of setuptools that comes with CentOS is way too old RUN pip install --upgrade setuptools diff --git a/build/package-build-dockerfiles/debian8/Dockerfile b/build/package-build-dockerfiles/debian8/Dockerfile index a1a1ed6f79..62afad0dc6 100644 --- a/build/package-build-dockerfiles/debian8/Dockerfile +++ b/build/package-build-dockerfiles/debian8/Dockerfile @@ -33,7 +33,11 @@ RUN ln -s /usr/local/go/bin/go /usr/local/bin/ ADD generated/node-v6.11.2-linux-x64.tar.xz /usr/local/ RUN ln -s /usr/local/node-v6.11.2-linux-x64/bin/* /usr/local/bin/ -RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle && rm -rf /tmp/arvados +RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle + +# Workbench depends on arvados-server for config manipulation +ENV GOPATH /tmp +RUN mkdir -p $GOPATH/src/git.curoverse.com && ln -sT /tmp/arvados $GOPATH/src/git.curoverse.com/arvados.git && cd $GOPATH/src/git.curoverse.com/arvados.git/cmd/arvados-server && go get -v github.com/kardianos/govendor && $GOPATH/bin/govendor sync && go get && go build && cp arvados-server /usr/local/bin/ && rm -rf /tmp/arvados ENV WORKSPACE /arvados CMD ["/usr/local/rvm/bin/rvm-exec", "default", "bash", "/jenkins/run-build-packages.sh", "--target", "debian8"] diff --git a/build/package-build-dockerfiles/debian9/Dockerfile b/build/package-build-dockerfiles/debian9/Dockerfile index 770db51e7c..1739512e17 100644 --- a/build/package-build-dockerfiles/debian9/Dockerfile +++ b/build/package-build-dockerfiles/debian9/Dockerfile @@ -32,7 +32,11 @@ RUN ln -s /usr/local/go/bin/go /usr/local/bin/ ADD generated/node-v6.11.2-linux-x64.tar.xz /usr/local/ RUN ln -s /usr/local/node-v6.11.2-linux-x64/bin/* /usr/local/bin/ -RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle && rm -rf /tmp/arvados +RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle + +# Workbench depends on arvados-server for config manipulation +ENV GOPATH /tmp +RUN mkdir -p $GOPATH/src/git.curoverse.com && ln -sT /tmp/arvados $GOPATH/src/git.curoverse.com/arvados.git && cd $GOPATH/src/git.curoverse.com/arvados.git/cmd/arvados-server && go get -v github.com/kardianos/govendor && $GOPATH/bin/govendor sync && go get && go build && cp arvados-server /usr/local/bin/ && rm -rf /tmp/arvados ENV WORKSPACE /arvados CMD ["/usr/local/rvm/bin/rvm-exec", "default", "bash", "/jenkins/run-build-packages.sh", "--target", "debian9"] diff --git a/build/package-build-dockerfiles/ubuntu1404/Dockerfile b/build/package-build-dockerfiles/ubuntu1404/Dockerfile index 4c01c9e818..db14e5a529 100644 --- a/build/package-build-dockerfiles/ubuntu1404/Dockerfile +++ b/build/package-build-dockerfiles/ubuntu1404/Dockerfile @@ -32,7 +32,11 @@ RUN ln -s /usr/local/go/bin/go /usr/local/bin/ ADD generated/node-v6.11.2-linux-x64.tar.xz /usr/local/ RUN ln -s /usr/local/node-v6.11.2-linux-x64/bin/* /usr/local/bin/ -RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle && rm -rf /tmp/arvados +RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle + +# Workbench depends on arvados-server for config manipulation +ENV GOPATH /tmp +RUN mkdir -p $GOPATH/src/git.curoverse.com && ln -sT /tmp/arvados $GOPATH/src/git.curoverse.com/arvados.git && cd $GOPATH/src/git.curoverse.com/arvados.git/cmd/arvados-server && go get -v github.com/kardianos/govendor && $GOPATH/bin/govendor sync && go get && go build && cp arvados-server /usr/local/bin/ && rm -rf /tmp/arvados ENV WORKSPACE /arvados CMD ["/usr/local/rvm/bin/rvm-exec", "default", "bash", "/jenkins/run-build-packages.sh", "--target", "ubuntu1404"] diff --git a/build/package-build-dockerfiles/ubuntu1604/Dockerfile b/build/package-build-dockerfiles/ubuntu1604/Dockerfile index dac82097bd..3e48e8a78b 100644 --- a/build/package-build-dockerfiles/ubuntu1604/Dockerfile +++ b/build/package-build-dockerfiles/ubuntu1604/Dockerfile @@ -31,7 +31,11 @@ RUN ln -s /usr/local/go/bin/go /usr/local/bin/ ADD generated/node-v6.11.2-linux-x64.tar.xz /usr/local/ RUN ln -s /usr/local/node-v6.11.2-linux-x64/bin/* /usr/local/bin/ -RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle && rm -rf /tmp/arvados +RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle + +# Workbench depends on arvados-server for config manipulation +ENV GOPATH /tmp +RUN mkdir -p $GOPATH/src/git.curoverse.com && ln -sT /tmp/arvados $GOPATH/src/git.curoverse.com/arvados.git && cd $GOPATH/src/git.curoverse.com/arvados.git/cmd/arvados-server && go get -v github.com/kardianos/govendor && $GOPATH/bin/govendor sync && go get && go build && cp arvados-server /usr/local/bin/ && rm -rf /tmp/arvados ENV WORKSPACE /arvados CMD ["/usr/local/rvm/bin/rvm-exec", "default", "bash", "/jenkins/run-build-packages.sh", "--target", "ubuntu1604"] diff --git a/build/package-build-dockerfiles/ubuntu1804/Dockerfile b/build/package-build-dockerfiles/ubuntu1804/Dockerfile index fdfbd04206..a17f2df0d2 100644 --- a/build/package-build-dockerfiles/ubuntu1804/Dockerfile +++ b/build/package-build-dockerfiles/ubuntu1804/Dockerfile @@ -31,7 +31,11 @@ RUN ln -s /usr/local/go/bin/go /usr/local/bin/ ADD generated/node-v6.11.2-linux-x64.tar.xz /usr/local/ RUN ln -s /usr/local/node-v6.11.2-linux-x64/bin/* /usr/local/bin/ -RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle && rm -rf /tmp/arvados +RUN git clone --depth 1 git://git.curoverse.com/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle + +# Workbench depends on arvados-server for config manipulation +ENV GOPATH /tmp +RUN mkdir -p $GOPATH/src/git.curoverse.com && ln -sT /tmp/arvados $GOPATH/src/git.curoverse.com/arvados.git && cd $GOPATH/src/git.curoverse.com/arvados.git/cmd/arvados-server && go get -v github.com/kardianos/govendor && $GOPATH/bin/govendor sync && go get && go build && cp arvados-server /usr/local/bin/ && rm -rf /tmp/arvados ENV WORKSPACE /arvados CMD ["/usr/local/rvm/bin/rvm-exec", "default", "bash", "/jenkins/run-build-packages.sh", "--target", "ubuntu1804"] diff --git a/build/rails-package-scripts/postinst.sh b/build/rails-package-scripts/postinst.sh index 789a7ee17e..56d55d3276 100644 --- a/build/rails-package-scripts/postinst.sh +++ b/build/rails-package-scripts/postinst.sh @@ -259,4 +259,8 @@ elif [ "$1" = "0" ] || [ "$1" = "1" ] || [ "$1" = "2" ]; then fi report_not_ready "$DATABASE_READY" "$CONFIG_PATH/database.yml" -report_not_ready "$APPLICATION_READY" "$CONFIG_PATH/application.yml" +if printf '%s\n' "$CONFIG_PATH" | grep -Fqe "sso"; then + report_not_ready "$APPLICATION_READY" "$CONFIG_PATH/application.yml" +else + report_not_ready "$APPLICATION_READY" "/etc/arvados/config.yml" +fi diff --git a/build/run-build-packages.sh b/build/run-build-packages.sh index bd55fb9518..8a675492e7 100755 --- a/build/run-build-packages.sh +++ b/build/run-build-packages.sh @@ -384,17 +384,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 diff --git a/services/api/fpm-info.sh b/services/api/fpm-info.sh index 1d5891ed62..47e1e4bb17 100644 --- a/services/api/fpm-info.sh +++ b/services/api/fpm-info.sh @@ -6,9 +6,9 @@ fpm_depends+=('git >= 1.7.10') case "$TARGET" in centos*) - fpm_depends+=(libcurl-devel postgresql-devel) + fpm_depends+=(libcurl-devel postgresql-devel arvados-server) ;; debian* | ubuntu*) - fpm_depends+=(libcurl-ssl-dev libpq-dev g++) + fpm_depends+=(libcurl-ssl-dev libpq-dev g++ arvados-server) ;; esac