39 lines
1.2 KiB
Bash
39 lines
1.2 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# This publishes the user guide to GitHub Pages.
|
||
|
|
#
|
||
|
|
# If this is a pre-release, then it goes in a separate directory called "pre-release".
|
||
|
|
# Commits are amended to avoid keeping history which can balloon the repo size.
|
||
|
|
set -ex
|
||
|
|
|
||
|
|
cargo run --no-default-features -F search -- build guide
|
||
|
|
|
||
|
|
VERSION=$(cargo metadata --format-version 1 --no-deps | jq '.packages[] | select(.name == "mdbook") | .version')
|
||
|
|
|
||
|
|
if [[ "$VERSION" == *-* ]]; then
|
||
|
|
PRERELEASE=true
|
||
|
|
else
|
||
|
|
PRERELEASE=false
|
||
|
|
fi
|
||
|
|
|
||
|
|
git fetch origin gh-pages
|
||
|
|
git worktree add gh-pages gh-pages
|
||
|
|
git config user.name "Deploy from CI"
|
||
|
|
git config user.email ""
|
||
|
|
cd gh-pages
|
||
|
|
if [[ "$PRERELEASE" == "true" ]]
|
||
|
|
then
|
||
|
|
rm -rf pre-release
|
||
|
|
mv ../guide/book pre-release
|
||
|
|
git add pre-release
|
||
|
|
git commit --amend -m "Deploy $GITHUB_SHA pre-release to gh-pages"
|
||
|
|
else
|
||
|
|
# Delete everything except pre-release and .git.
|
||
|
|
find . -mindepth 1 -maxdepth 1 -not -name "pre-release" -not -name ".git" -exec rm -rf {} +
|
||
|
|
# Copy the guide here.
|
||
|
|
find ../guide/book/ -mindepth 1 -maxdepth 1 -exec mv {} . \;
|
||
|
|
git add .
|
||
|
|
git commit --amend -m "Deploy $GITHUB_SHA to gh-pages"
|
||
|
|
fi
|
||
|
|
|
||
|
|
git push --force origin +gh-pages
|