TeaWeb/scripts/travis_deploy.sh

93 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
if [[ -z "${GIT_AUTHTOKEN}" ]]; then
echo "Missing environment variable GIT_AUTHTOKEN. Please set it before usign this script!"
exit 1
fi
GIT_COMMIT_SHORT=$(git rev-parse --short HEAD)
GIT_COMMIT_LONG=$(git rev-parse HEAD)
echo "Deploying $GIT_COMMIT_SHORT ($GIT_COMMIT_LONG) to github."
GIT_RELEASE_EXECUTABLE="/tmp/git-release"
if [[ ! -x ${GIT_RELEASE_EXECUTABLE} ]]; then
if [[ ! -f ${GIT_RELEASE_EXECUTABLE} ]]; then
echo "Downloading github-release-linux (1.2.4)"
if [[ -f /tmp/git-release.gz ]]; then
rm /tmp/git-release.gz
fi
wget https://github.com/tfausak/github-release/releases/download/1.2.4/github-release-linux.gz -O /tmp/git-release.gz -q;
[[ $? -eq 0 ]] || {
echo "Failed to download github-release-linux"
exit 1
}
gunzip /tmp/git-release.gz && chmod +x /tmp/git-release;
[[ $? -eq 0 ]] || {
echo "Failed to unzip github-release-linux"
exit 1
}
echo "Download of github-release-linux (1.2.4) finished"
else
chmod +x ${GIT_RELEASE_EXECUTABLE}
fi
if [[ ! -x ${GIT_RELEASE_EXECUTABLE} ]]; then
echo "git-release isn't executable"
exit 1
fi
fi
echo "Generating release"
${GIT_RELEASE_EXECUTABLE} release \
--repo "TeaWeb" \
--owner "TeaSpeak" \
--token "${GIT_AUTHTOKEN}" \
--title "Travis autobuild ${GIT_COMMIT_SHORT}" \
--tag "${GIT_COMMIT_SHORT}" \
--description "This is a autobuild release from travis"
[[ $? -eq 0 ]] || {
echo "Failed to generate git release"
exit 1
}
echo "Uploading release files"
folders=("/tmp/build/logs/" "/tmp/build/packages/")
uploaded_files=()
failed_files=()
for folder in "${folders[@]}"; do
echo "Scanning folder $folder"
if [[ ! -d ${folder} ]]; then
continue;
fi
for file in ${folder}*; do
if [[ -d ${file} ]]; then
echo " Skipping directory `basename $file` ($file)"
continue
fi
echo " Found entry `basename $file` ($file). Uploading file.";
${GIT_RELEASE_EXECUTABLE} upload \
--repo "TeaWeb" \
--owner "TeaSpeak" \
--token "${GIT_AUTHTOKEN}" \
--tag "${GIT_COMMIT_SHORT}" \
--file "$file" \
--name "`basename $file`"
[[ $? -eq 0 ]] && {
echo " Uploaded.";
uploaded_files+="$file"
} || {
echo "Failed to generate git release"
failed_files+="$file"
}
done
done
echo "Successfully uploaded ${#uploaded_files[@]} files. ${#failed_files[@]} uploads failed."
exit 0