2411: Add exceptions.
[arvados.git] / build / run-build-packages-one-target.sh
index 6fdffd09da49a36ad608dd533174f133fb61424e..5cfdfe625ff3ab22d9d0690b169ad6baa0b54b39 100755 (executable)
@@ -7,14 +7,16 @@ Syntax:
         WORKSPACE=/path/to/arvados $(basename $0) [options]
 
 --target <target>
-    Distribution to build packages for (default: debian7)
+    Distribution to build packages for (default: debian8)
 --command
     Build command to execute (default: use built-in Docker image command)
 --test-packages
-    Run package install test script "test-packages-$target.sh"
+    Run package install test script "test-packages-[target].sh"
 --debug
     Output debug information (default: false)
---only-test
+--only-build <package>
+    Build only a specific package
+--only-test <package>
     Test only a specific package
 
 WORKSPACE=path         Path to the Arvados source tree to build packages from
@@ -40,13 +42,13 @@ if ! [[ -d "$WORKSPACE" ]]; then
 fi
 
 PARSEDOPTS=$(getopt --name "$0" --longoptions \
-    help,debug,test-packages,target:,command:,only-test: \
+    help,debug,test-packages,target:,command:,only-test:,only-build: \
     -- "" "$@")
 if [ $? -ne 0 ]; then
     exit 1
 fi
 
-TARGET=debian7
+TARGET=debian8
 COMMAND=
 DEBUG=
 
@@ -62,10 +64,15 @@ while [ $# -gt 0 ]; do
             TARGET="$2"; shift
             ;;
         --only-test)
+            test_packages=1
             packages="$2"; shift
             ;;
+        --only-build)
+            ONLY_BUILD="$2"; shift
+            ;;
         --debug)
             DEBUG=" --debug"
+            ARVADOS_DEBUG="1"
             ;;
         --command)
             COMMAND="$2"; shift
@@ -92,7 +99,8 @@ if [[ -n "$test_packages" ]]; then
 
     if [[ -n "$(find $WORKSPACE/packages/$TARGET -name '*.deb')" ]] ; then
         (cd $WORKSPACE/packages/$TARGET
-         dpkg-scanpackages .  2> >(grep -v 'warning' 1>&2) | gzip -c > Packages.gz
+          dpkg-scanpackages .  2> >(grep -v 'warning' 1>&2) | tee Packages | gzip -c > Packages.gz
+          apt-ftparchive -o APT::FTPArchive::Release::Origin=Arvados release . > Release
         )
     fi
 
@@ -121,12 +129,14 @@ popd
 
 if test -z "$packages" ; then
     packages="arvados-api-server
-        arvados-data-manager
         arvados-docker-cleaner
         arvados-git-httpd
         arvados-node-manager
         arvados-src
         arvados-workbench
+        crunch-dispatch-local
+        crunch-dispatch-slurm
+        crunch-run
         crunchstat
         keep-balance
         keep-block-check
@@ -137,10 +147,6 @@ if test -z "$packages" ; then
         libarvados-perl"
 
     case "$TARGET" in
-        centos6)
-            packages="$packages python27-python-arvados-fuse
-                  python27-python-arvados-python-client python27-python-arvados-cwl-runner"
-            ;;
         *)
             packages="$packages python-arvados-fuse
                   python-arvados-python-client python-arvados-cwl-runner"
@@ -166,11 +172,14 @@ docker_volume_args=(
 
 if [[ -n "$test_packages" ]]; then
     for p in $packages ; do
+        if [[ -n "$ONLY_BUILD" ]] && [[ "$p" != "$ONLY_BUILD" ]]; then
+            continue
+        fi
         echo
         echo "START: $p test on $IMAGE" >&2
         if docker run --rm \
             "${docker_volume_args[@]}" \
-            --env ARVADOS_DEBUG=1 \
+            --env ARVADOS_DEBUG=$ARVADOS_DEBUG \
             --env "TARGET=$TARGET" \
             --env "WORKSPACE=/arvados" \
             "$IMAGE" $COMMAND $p
@@ -185,9 +194,18 @@ if [[ -n "$test_packages" ]]; then
 else
     echo
     echo "START: build packages on $IMAGE" >&2
+    # Move existing packages and other files into the processed/ subdirectory
+    if [[ ! -e "${WORKSPACE}/packages/${TARGET}/processed" ]]; then
+      mkdir -p "${WORKSPACE}/packages/${TARGET}/processed"
+    fi
+    set +e
+    mv -f ${WORKSPACE}/packages/${TARGET}/* ${WORKSPACE}/packages/${TARGET}/processed/ 2>/dev/null
+    set -e
+    # Build packages
     if docker run --rm \
         "${docker_volume_args[@]}" \
-        --env ARVADOS_DEBUG=1 \
+        --env ARVADOS_DEBUG=$ARVADOS_DEBUG \
+        --env "ONLY_BUILD=$ONLY_BUILD" \
         "$IMAGE" $COMMAND
     then
         echo