#!/bin/bash # Deployer for Travis-CI # DPUT uploader (e.g., Launchpad PPA) # if [[ "$__DPL_DPUT_ACTIVE" == "1" ]]; then # Install APT dependencies # paramiko required for ssh sudo apt-get install python-paramiko expect dput; # python-pip #pip install paramiko; # Output the DPUT config # Dput only works if you're using secure FTP, so that's what we default to. cat > "./dput.cf" << EOM [deployer] fqdn = ${DPL_DPUT_DOMAIN} method = ${DPL_DPUT_METHOD} incoming = ${DPL_DPUT_INCOMING} login = ${DPL_DPUT_LOGIN} allow_unsigned_uploads = 0 EOM # Output SSH config # Don't let SSH prompt us for untrusted hosts cat >> "./ssh_config" << EOM Host * StrictHostKeyChecking no UserKnownHostsFile=/dev/null PubKeyAuthentication yes IdentityFile ${PWD}/key.private IdentitiesOnly yes EOM sudo sh -c "cat < ${PWD}/ssh_config >> /etc/ssh/ssh_config"; # Get the private key echo "$DPL_SSH_KEY_PRIVATE" | base64 --decode > key.private; chmod 700 ./key.private; if [[ "$_DPL_PACKAGE_MAIN" == "1" ]]; then PACKAGEFILENAME=${PACKAGE_NAME}_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; PACKAGEDBGFILENAME=${PACKAGE_NAME}-dbg_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGENIGHTLYFILENAME=${PACKAGE_NAME}-nightly_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGENIGHTLYDBGFILENAME=${PACKAGE_NAME}-nightly-dbg_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGEPATCHFILENAME=${PACKAGE_NAME}-patch_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGEPATCHDBGFILENAME=${PACKAGE_NAME}-patch-dbg_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGEPATCHNIGHTLYFILENAME=${PACKAGE_NAME}-patch-nightly_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGEPATCHNIGHTLYDBGFILENAME=${PACKAGE_NAME}-patch-nightly-dbg_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; PACKAGEFILENAMES=( $PACKAGEFILENAME $PACKAGEDBGFILENAME #$PACKAGENIGHTLYFILENAME #$PACKAGENIGHTLYDBGFILENAME #$PACKAGEPATCHFILENAME #$PACKAGEPATCHDBGFILENAME #$PACKAGEPATCHNIGHTLYFILENAME #$PACKAGEPATCHNIGHTLYDBGFILENAME ); # Main packages are in parent of root repo folder OLDPWD=$PWD; # [repo]/build cd ../..; # Enter passphrase if required for n in ${PACKAGEFILENAMES}; do for f in $n*.changes; do # Binary builds also generate source builds, so exclude the source # builds if desired if [[ "$_DPL_PACKAGE_SOURCE" != "1" ]]; then if [[ "$f" == *"_source"* ]] || [[ "$f" == *".tar.xz"* ]]; then continue; fi; fi; expect <(cat <