1
0
Fork 0
mirror of synced 2024-06-01 18:20:20 +12:00
ArchiveBox/bin/release.sh

86 lines
2.3 KiB
Bash
Raw Normal View History

2020-07-28 22:11:30 +12:00
#!/usr/bin/env bash
### Bash Environment Setup
# http://redsymbol.net/articles/unofficial-bash-strict-mode/
# https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
# set -o xtrace
set -o errexit
set -o errtrace
set -o nounset
set -o pipefail
IFS=$'\n'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && cd .. && pwd )"
2020-07-28 22:17:54 +12:00
VERSION_FILE="$DIR/archivebox/VERSION"
function bump_semver {
echo "$1" | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g'
}
2020-07-28 22:11:30 +12:00
source "$DIR/.venv/bin/activate"
cd "$DIR"
2020-07-28 22:17:54 +12:00
OLD_VERSION="$(cat "$VERSION_FILE")"
NEW_VERSION="$(bump_semver "$OLD_VERSION")"
2020-07-28 22:28:58 +12:00
echo "[*] Fetching latest docs version"
cd "$DIR/docs"
git pull
2020-07-28 22:44:58 +12:00
cd "$DIR"
echo "[+] Building docs"
sphinx-apidoc -o docs archivebox
cd "$DIR/docs"
make html
2020-07-28 22:28:58 +12:00
cd "$DIR"
if [ -z "$(git status --porcelain)" ] && [[ "$(git branch --show-current)" == "master" ]]; then
git pull
else
2020-08-15 17:22:29 +12:00
echo "[!] Warning: git status is dirty!"
echo " Press Ctrl-C to cancel, or wait 10sec to continue..."
sleep 10
fi
2020-07-28 22:17:54 +12:00
2020-07-28 22:28:58 +12:00
echo "[*] Bumping VERSION from $OLD_VERSION to $NEW_VERSION"
echo "$NEW_VERSION" > "$VERSION_FILE"
2020-08-15 17:22:29 +12:00
git add "$DIR/docs"
git add "$VERSION_FILE"
2020-07-28 22:11:30 +12:00
echo "[*] Cleaning up build dirs"
cd "$DIR"
rm -Rf build dist
2020-07-28 22:44:58 +12:00
echo "[+] Building sdist and bdist_wheel"
2020-07-28 22:11:30 +12:00
python3 setup.py sdist bdist_wheel
echo "[^] Pushing source to github"
git add "$DIR/archivebox.egg-info"
git commit -m "$NEW_VERSION release"
git tag -a "v$NEW_VERSION" -m "v$NEW_VERSION"
git push origin master
git push origin --tags
2020-07-28 22:11:30 +12:00
echo "[^] Uploading to test.pypi.org"
python3 -m twine upload --repository testpypi dist/*
echo "[^] Uploading to pypi.org"
python3 -m twine upload --repository pypi dist/*
2020-07-28 22:44:58 +12:00
echo "[+] Building docker image"
docker build . -t archivebox \
-t archivebox:latest \
-t archivebox:$NEW_VERSION \
-t docker.io/nikisweeting/archivebox:latest \
-t docker.io/nikisweeting/archivebox:$NEW_VERSION \
-t docker.pkg.github.com/pirate/archivebox/archivebox:latest \
-t docker.pkg.github.com/pirate/archivebox/archivebox:$NEW_VERSION
2020-07-28 22:44:58 +12:00
echo "[^] Uploading docker image"
2020-07-28 22:46:13 +12:00
# docker login --username=nikisweeting
# docker login docker.pkg.github.com --username=pirate
docker push docker.io/nikisweeting/archivebox
docker push docker.pkg.github.com/pirate/archivebox/archivebox
2020-07-28 22:44:58 +12:00
2020-07-28 22:17:54 +12:00
echo "[√] Done. Published version v$NEW_VERSION"