mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
125 lines
3.5 KiB
Bash
Executable File
125 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Release checklist
|
|
# - wait for travis build.
|
|
# adjust src/paperless/version.py
|
|
# changelog in the documentation
|
|
# adjust versions in docker/hub/*
|
|
# If docker-compose was modified: all compose files are the same.
|
|
|
|
# Steps:
|
|
# run release script "dev", push
|
|
# if it works: new tag, merge into master
|
|
# on master: make release "lastest", push
|
|
# on master: make release "version-tag", push
|
|
# publish release files
|
|
|
|
set -e
|
|
|
|
|
|
VERSION=$1
|
|
|
|
if [ -z "$VERSION" ]
|
|
then
|
|
echo "Need a version string."
|
|
exit 1
|
|
fi
|
|
|
|
# source root directory of paperless
|
|
PAPERLESS_ROOT=$(git rev-parse --show-toplevel)
|
|
|
|
# output directory
|
|
PAPERLESS_DIST="$PAPERLESS_ROOT/dist"
|
|
PAPERLESS_DIST_APP="$PAPERLESS_DIST/paperless-ng"
|
|
PAPERLESS_DIST_DOCKERFILES="$PAPERLESS_DIST/paperless-ng-dockerfiles"
|
|
|
|
if [ -d "$PAPERLESS_DIST" ]
|
|
then
|
|
echo "Removing $PAPERLESS_DIST"
|
|
rm "$PAPERLESS_DIST" -r
|
|
fi
|
|
|
|
mkdir "$PAPERLESS_DIST"
|
|
mkdir "$PAPERLESS_DIST_APP"
|
|
mkdir "$PAPERLESS_DIST_APP/docker"
|
|
mkdir "$PAPERLESS_DIST_APP/scripts"
|
|
mkdir "$PAPERLESS_DIST_DOCKERFILES"
|
|
|
|
# setup dependencies.
|
|
|
|
cd "$PAPERLESS_ROOT"
|
|
|
|
pipenv clean
|
|
pipenv install --dev
|
|
pipenv lock --keep-outdated -r > "$PAPERLESS_DIST_APP/requirements.txt"
|
|
|
|
# test if the application works.
|
|
|
|
cd "$PAPERLESS_ROOT/src"
|
|
pipenv run pytest --cov
|
|
pipenv run pycodestyle
|
|
|
|
# make the documentation.
|
|
|
|
cd "$PAPERLESS_ROOT/docs"
|
|
make clean html
|
|
|
|
# copy stuff into place
|
|
|
|
# the application itself
|
|
|
|
cp "$PAPERLESS_ROOT/.env" \
|
|
"$PAPERLESS_ROOT/.dockerignore" \
|
|
"$PAPERLESS_ROOT/CONTRIBUTING.md" \
|
|
"$PAPERLESS_ROOT/LICENSE" \
|
|
"$PAPERLESS_ROOT/Pipfile" \
|
|
"$PAPERLESS_ROOT/Pipfile.lock" \
|
|
"$PAPERLESS_ROOT/README.md" "$PAPERLESS_DIST_APP"
|
|
|
|
cp "$PAPERLESS_ROOT/paperless.conf.example" "$PAPERLESS_DIST_APP/paperless.conf"
|
|
|
|
# copy python source, templates and static files.
|
|
cd "$PAPERLESS_ROOT"
|
|
find src -wholename '*/templates/*' -o -wholename '*/static/*' -o -name '*.py' | cpio -pdm "$PAPERLESS_DIST_APP"
|
|
|
|
# build the front end.
|
|
|
|
cd "$PAPERLESS_ROOT/src-ui"
|
|
ng build --prod --output-hashing none --sourceMap=false --output-path "$PAPERLESS_DIST_APP/src/documents/static/frontend"
|
|
|
|
# documentation
|
|
cp "$PAPERLESS_ROOT/docs/_build/html/" "$PAPERLESS_DIST_APP/docs" -r
|
|
|
|
# docker files for building the image yourself
|
|
cp "$PAPERLESS_ROOT/docker/local/"* "$PAPERLESS_DIST_APP"
|
|
cp "$PAPERLESS_ROOT/docker/docker-compose.env" "$PAPERLESS_DIST_APP"
|
|
|
|
# docker files for pulling from docker hub
|
|
cp "$PAPERLESS_ROOT/docker/hub/"* "$PAPERLESS_DIST_DOCKERFILES"
|
|
cp "$PAPERLESS_ROOT/.env" "$PAPERLESS_DIST_DOCKERFILES"
|
|
cp "$PAPERLESS_ROOT/docker/docker-compose.env" "$PAPERLESS_DIST_DOCKERFILES"
|
|
|
|
# auxiliary files required for the docker image
|
|
cp "$PAPERLESS_ROOT/docker/docker-entrypoint.sh" "$PAPERLESS_DIST_APP/docker/"
|
|
cp "$PAPERLESS_ROOT/docker/gunicorn.conf.py" "$PAPERLESS_DIST_APP/docker/"
|
|
cp "$PAPERLESS_ROOT/docker/imagemagick-policy.xml" "$PAPERLESS_DIST_APP/docker/"
|
|
cp "$PAPERLESS_ROOT/docker/supervisord.conf" "$PAPERLESS_DIST_APP/docker/"
|
|
|
|
# auxiliary files for bare metal installs
|
|
cp "$PAPERLESS_ROOT/scripts/paperless-webserver.service" "$PAPERLESS_DIST_APP/scripts/"
|
|
cp "$PAPERLESS_ROOT/scripts/paperless-consumer.service" "$PAPERLESS_DIST_APP/scripts/"
|
|
cp "$PAPERLESS_ROOT/scripts/paperless-scheduler.service" "$PAPERLESS_DIST_APP/scripts/"
|
|
|
|
# try to make the docker build.
|
|
|
|
cd "$PAPERLESS_DIST_APP"
|
|
|
|
docker build . -t "jonaswinkler/paperless-ng:$VERSION"
|
|
|
|
# works. package the app!
|
|
|
|
cd "$PAPERLESS_DIST"
|
|
|
|
tar -cJf "paperless-ng-$VERSION.tar.xz" paperless-ng/
|
|
tar -cJf "paperless-ng-$VERSION-dockerfiles.tar.xz" paperless-ng-dockerfiles/
|