mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-21 12:01:05 +00:00
137 lines
5 KiB
Bash
137 lines
5 KiB
Bash
#!/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
|