spacemacs/.travisci/pub_prep.sh

150 lines
4.3 KiB
Bash
Raw Normal View History

2018-05-19 20:42:12 +00:00
#!/usr/bin/env bash
## Documentation publishing preparation script for Travis CI integration
##
## Copyright (c) 2012-2014 Sylvain Benner
## Copyright (c) 2014-2018 Sylvain Benner & Contributors
##
## Author: Eugene Yaremenko
## URL: https://github.com/syl20bnr/spacemacs
##
## This file is not part of GNU Emacs.
##
## License: GPLv3
2018-10-13 08:47:20 +00:00
fold_start() {
echo -e "travis_fold:start:$1\033[33;1m$2\033[0m"
2018-05-19 20:42:12 +00:00
}
2018-10-13 08:47:20 +00:00
fold_end() {
echo -e "\ntravis_fold:end:$1\r"
}
mkdir -p ~/.ssh
printf "Host github.com\n" > ~/.ssh/config
printf " StrictHostKeyChecking no\n" >> ~/.ssh/config
printf " UserKnownHostsFile=/dev/null\n" >> ~/.ssh/config
2019-12-05 10:37:00 +00:00
git config --global user.name "${BOT_NAME}"
git config --global user.email "${BOT_EMAIL}"
git config --global push.default simple
git config --global hub.protocol https
export GITHUB_TOKEN=$BOT_TK
2019-12-09 20:47:10 +00:00
git remote update
2019-12-09 21:28:20 +00:00
base_revision=$(git rev-parse '@')
echo $base_revision > /tmp/base_revision
echo "Base revision $base_revision"
2019-12-09 20:47:10 +00:00
2021-01-08 08:08:08 +00:00
fold_start "UPDATING_BUILT_IN_FILES"
2021-01-08 08:36:22 +00:00
built_in_manifest="${TRAVIS_BUILD_DIR}/.ci/built_in_manifest"
2021-01-08 08:08:08 +00:00
lines=$(cat "${built_in_manifest}")
while read line; do
url=$(echo $line | cut -f1 -d " ")
target=$(echo $line | cut -f2 -d " ")
curl "${url}" --output "${TRAVIS_BUILD_DIR}/${target}"
if [ $? -ne 0 ]; then
echo "Failed to update built in file: ${target} from url: ${url}"
echo "Please update manifest file: .emacs.d/.ci/built_in_manifest"
exit 2
fi
done <"${built_in_manifest}"
fold_end "UPDATING_BUILT_IN_FILES"
fold_start "CREATING_BUILT_IN_PATCH_FILE"
git add --all
git commit -m "Built-in files auto-update: $(date -u)"
if [ $? -ne 0 ]; then
echo "Built-in files don't need an update."
else
git format-patch -1 HEAD --stdout > /tmp/built_in.patch
if [ $? -ne 0 ]; then
echo "Failed to create built-in patch file."
exit 2
fi
2021-01-08 08:36:22 +00:00
git reset --hard HEAD~1
2021-01-08 08:08:08 +00:00
cat /tmp/built_in.patch
fi
fold_end "CREATING_BUILT_IN_PATCH_FILE"
2021-01-08 08:36:22 +00:00
fold_start "FORMATTING_DOCUMENTATION"
docker run \
--rm \
-v "/tmp/elpa/:/root/.emacs.d/elpa/" \
-v "${TRAVIS_BUILD_DIR}/.ci/spacedoc-cfg.edn":/opt/spacetools/spacedoc-cfg.edn \
-v "${TRAVIS_BUILD_DIR}":/tmp/docs/ \
jare/spacetools docfmt /tmp/docs/
if [ $? -ne 0 ]; then
echo "Formatting failed."
exit 2
fi
fold_end "FORMATTING_DOCUMENTATION"
fold_start "CREATING_DOCUMENTATION_PATCH_FILE"
git add --all
git commit -m "documentation formatting: $(date -u)"
if [ $? -ne 0 ]; then
echo "Documentation doesn't need fixes."
else
git format-patch -1 HEAD --stdout > /tmp/docfmt.patch
if [ $? -ne 0 ]; then
echo "Failed to create documentation patch file."
exit 2
fi
git reset --hard HEAD~1
cat /tmp/docfmt.patch
fi
fold_end "CREATING_DOCUMENTATION_PATCH_FILE"
2018-05-19 20:42:12 +00:00
rm -rf ~/.emacs.d
mv "${TRAVIS_BUILD_DIR}" ~/.emacs.d
cd ~/.emacs.d
2018-10-13 08:47:20 +00:00
cp ./.travisci/.spacemacs ~/
ln -sf ~/.emacs.d "${TRAVIS_BUILD_DIR}"
2018-05-19 20:42:12 +00:00
2018-10-13 08:47:20 +00:00
fold_start "INSTALLING_DEPENDENCIES"
2020-08-29 00:29:23 +00:00
docker run \
--rm \
-v "/tmp/elpa/:/root/.emacs.d/elpa/" \
-v "${TRAVIS_BUILD_DIR}:/root/.emacs.d" \
-v "${TRAVIS_BUILD_DIR}/.travisci/.spacemacs:/root/.spacemacs" \
--entrypoint emacs \
jare/spacetools -batch -l /root/.emacs.d/init.el
2018-05-19 20:42:12 +00:00
if [ $? -ne 0 ]; then
echo "Dependencies installation failed."
exit 2
fi
2018-10-13 08:47:20 +00:00
fold_end "INSTALLING_DEPENDENCIES"
2018-05-19 20:42:12 +00:00
2019-05-07 10:40:06 +00:00
fold_start "EXPORTING_DOCUMENTATION"
2020-08-29 00:29:23 +00:00
docker run \
--rm \
-v "/tmp/elpa/:/root/.emacs.d/elpa/" \
-v "${TRAVIS_BUILD_DIR}:/root/.emacs.d" \
-v "${TRAVIS_BUILD_DIR}/.travisci/.spacemacs:/root/.spacemacs" \
--entrypoint emacs \
jare/spacetools -batch \
-l /root/.emacs.d/init.el \
-l /root/.emacs.d/core/core-documentation.el \
-f spacemacs/publish-doc
2019-05-07 10:40:06 +00:00
if [ $? -ne 0 ]; then
echo "spacemacs/publish-doc failed"
exit 2
fi
fold_end "EXPORTING_DOCUMENTATION"
2018-10-13 08:47:20 +00:00
fold_start "INSTALLING_HUB"
hub_version="2.5.1"
2018-10-13 08:47:20 +00:00
hub_url="https://github.com/github/hub/releases/download/"
hub_url+="v${hub_version}/hub-linux-amd64-${hub_version}.tgz"
curl -L $hub_url | tar \
--strip-components=2 \
-xz \
--wildcards \
-C /tmp/ \
"*hub"
if [ $? -ne 0 ]; then
echo "Hub installation failed."
exit 2
fi
fold_end "INSTALLING_HUB"