#!/bin/bash # Deployer for Travis-CI # FTP Uploader # # Package files are uploaded to, e.g., ftp://username:password@example.com:21/path/to/upload/STJr/SRB2/master/460873812-151.1 # With file `commit.txt` and folder(s) `bin` and `package` # # Set these environment variables in your Travis-CI settings, where they are stored securely. # See other shell scripts for more options. # # DPL_FTP_PROTOCOL = ftp (ftp or sftp or ftps or however your FTP URI begins) # DPL_FTP_USER = username # DPL_FTP_PASS = password # DPL_FTP_HOSTNAME = example.com # DPL_FTP_PORT = 21 # DPL_FTP_PATH = path/to/upload (do not add trailing slash) if [[ "$__DPL_FTP_ACTIVE" == "1" ]]; then if [[ "$TRAVIS_JOB_NAME" != "" ]]; then JOBNAME=$TRAVIS_JOB_NAME; else if [[ "$_DPL_JOB_NAME" != "" ]]; then JOBNAME=$_DPL_JOB_NAME; else JOBNAME=$TRAVIS_OS_NAME; fi; fi; # Generate commit.txt file echo "Travis-CI Build $TRAVIS_OS_NAME - $TRAVIS_REPO_SLUG/$TRAVIS_BRANCH - $TRAVIS_JOB_NUMBER - $JOBNAME" > "commit.txt"; echo "Job ID $TRAVIS_JOB_ID" >> "commit.txt"; echo "" >> "commit.txt"; echo "Commit $TRAVIS_COMMIT" >> "commit.txt"; echo "$TRAVIS_COMMIT_MESSAGE" >> "commit.txt"; echo "" >> "commit.txt"; # Initialize FTP parameters if [[ "$DPL_FTP_PORT" == "" ]]; then DPL_FTP_PORT=21; fi; if [[ "$DPL_FTP_PROTOCOL" == "" ]]; then DPL_FTP_PROTOCOL=ftp; fi; __DPL_FTP_LOCATION=$DPL_FTP_PROTOCOL://$DPL_FTP_HOSTNAME:$DPL_FTP_PORT/$DPL_FTP_PATH/$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH/$TRAVIS_JOB_ID-$TRAVIS_JOB_NUMBER-$JOBNAME; # Upload to FTP! echo "Uploading to FTP..."; curl --ftp-create-dirs -T "commit.txt" -u $DPL_FTP_USER:$DPL_FTP_PASS "$__DPL_FTP_LOCATION/commit.txt"; if [[ "$__DPL_DEBIAN_ACTIVE" == "1" ]]; then 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 ../..; for n in ${PACKAGEFILENAMES}; do for f in ./$n*; 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; curl --ftp-create-dirs -T "$f" -u $DPL_FTP_USER:$DPL_FTP_PASS "$__DPL_FTP_LOCATION/package/main/$f"; done; done; # Go back to [repo]/build folder cd $OLDPWD; fi; if [[ "$_DPL_PACKAGE_ASSET" == "1" ]]; then PACKAGEFILENAME=${PACKAGE_NAME}-data_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGENIGHTLYFILENAME=${PACKAGE_NAME}-nightly-data_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGEPATCHFILENAME=${PACKAGE_NAME}-patch-data_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; #PACKAGEPATCHNIGHTLYFILENAME=${PACKAGE_NAME}-patch-nightly-data_${PACKAGE_VERSION}${PACKAGE_SUBVERSION}${PACKAGE_REVISION}; PACKAGEFILENAMES=( $PACKAGEFILENAME #$PACKAGENIGHTLYFILENAME #$PACKAGEPATCHFILENAME #$PACKAGEPATCHNIGHTLYFILENAME ) # Asset packages are in root repo folder OLDPWD=$PWD; # [repo]/build cd ..; for n in ${PACKAGEFILENAMES}; do for f in ./$n*; 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; curl --ftp-create-dirs -T "$f" -u $DPL_FTP_USER:$DPL_FTP_PASS "$__DPL_FTP_LOCATION/package/asset/$f"; done; done; # Go back to [repo]/build folder cd $OLDPWD; fi; else if [[ "$_DPL_BINARY" == "1" ]]; then find bin -type f -exec curl -u $DPL_FTP_USER:$DPL_FTP_PASS --ftp-create-dirs -T {} $__DPL_FTP_LOCATION/{} \;; fi; if [[ "$_DPL_PACKAGE_BINARY" == "1" ]]; then sudo rm -r package/_CPack_Packages find package -type f -exec curl -u $DPL_FTP_USER:$DPL_FTP_PASS --ftp-create-dirs -T {} $__DPL_FTP_LOCATION/{} \;; fi; fi; fi