druid/docs/_bin/deploy-docs.sh

98 lines
2.2 KiB
Bash
Raw Normal View History

2014-09-04 18:41:15 -04:00
#!/bin/bash -e
2013-09-27 21:50:02 -04:00
opt_api=1
2014-09-05 14:44:34 -04:00
opt_docs=1
while getopts ":adn" opt; do
case $opt in
n)
opt_dryrun="1"
;;
d)
opt_api=
;;
a)
opt_docs=
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
shift $((OPTIND-1))
2014-08-01 18:12:00 -04:00
if [ -z "$1" ]; then
version="latest"
2013-09-27 21:50:02 -04:00
else
2014-08-01 18:12:00 -04:00
version=$1
2013-09-27 21:50:02 -04:00
fi
2014-09-04 18:41:15 -04:00
druid=$(git -C "$(dirname "$0")" rev-parse --show-toplevel)
2014-09-04 18:41:15 -04:00
if [ -n "$(git -C "$druid" status --porcelain --untracked-files=no)" ]; then
echo "Working directory is not clean, aborting"
exit 1
fi
2014-09-04 18:41:15 -04:00
branch=druid-$version
if [ "$version" == "latest" ]; then
branch=master
fi
if [ -z "$(git tag -l "$branch")" ] && [ "$branch" != "master" ]; then
2014-08-01 18:12:00 -04:00
echo "Version tag does not exist: druid-$version"
2013-11-05 18:20:55 -05:00
exit 1;
fi
2014-08-01 18:12:00 -04:00
tmp=$(mktemp -d -t druid-docs-deploy)
2014-09-04 18:41:15 -04:00
target=$tmp/docs
src=$tmp/druid
2013-09-27 21:50:02 -04:00
2014-08-01 18:12:00 -04:00
echo "Using Version [$version]"
echo "Working directory [$tmp]"
2013-09-27 21:50:02 -04:00
2014-09-04 18:41:15 -04:00
git clone -q --depth 1 git@github.com:druid-io/druid-io.github.io.git "$target"
2013-09-27 21:50:02 -04:00
2014-09-04 18:41:15 -04:00
remote=$(git -C "$druid" config --local --get remote.origin.url)
git clone -q --depth 1 --branch $branch $remote "$src"
2013-09-27 21:50:02 -04:00
if [ -n "$opt_docs" ] ; then
mkdir -p $target/docs/$version
rsync -a --delete "$src/docs/content/" $target/docs/$version
fi
2014-09-04 18:41:15 -04:00
# generate javadocs for releases (not for master)
if [ "$version" != "latest" ] && [ -n "$opt_api" ] ; then
2014-09-04 18:41:15 -04:00
(cd $src && mvn javadoc:aggregate)
mkdir -p $target/api/$version
rsync -a --delete "$src/target/site/apidocs/" $target/api/$version
fi
2013-09-27 21:50:02 -04:00
2014-09-04 18:41:15 -04:00
updatebranch=update-docs-$version
2013-09-27 21:50:02 -04:00
2014-09-04 18:41:15 -04:00
git -C $target checkout -b $updatebranch
git -C $target add -A .
git -C $target commit -m "Update $version docs"
if [ -z "$opt_dryrun" ]; then
git -C $target push origin $updatebranch
2013-09-27 21:50:02 -04:00
if [ -n "$GIT_TOKEN" ]; then
curl -u "$GIT_TOKEN:x-oauth-basic" -XPOST -d@- \
https://api.github.com/repos/druid-io/druid-io.github.io/pulls <<EOF
2014-08-01 18:12:00 -04:00
{
"title" : "Update $version docs",
2014-09-04 18:41:15 -04:00
"head" : "$updatebranch",
2014-08-01 18:12:00 -04:00
"base" : "master"
}
EOF
else
echo "GitHub personal token not provided, not submitting pull request"
echo "Please go to https://github.com/druid-io/druid-io.github.io and submit a pull request from the \`$updatebranch\` branch"
fi
rm -rf $tmp
2014-08-01 18:12:00 -04:00
else
echo "Not pushing. To see changes run:"
echo "git -C $target diff HEAD^1"
2014-08-01 18:12:00 -04:00
fi