From 98223fbbaf8895c5d0b4bfff1d8ed36877ffa086 Mon Sep 17 00:00:00 2001 From: Martin Szymanski Date: Mon, 15 Jul 2019 15:34:02 +0200 Subject: [PATCH 1/2] Add backup deletion function and option --- .env.example | 3 +++ CHANGELOG.md | 4 ++++ README.md | 1 + deploy.sh | 24 ++++++++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/.env.example b/.env.example index 5218de7..2c64159 100644 --- a/.env.example +++ b/.env.example @@ -9,3 +9,6 @@ DEPLOY_ASSETS_DIR="uploads" # Restart PHP if symlinks are cached – optional DEPLOY_RESTART_PHP="" + +# Backups to keep +DEPLOY_KEEP_BACKUPS=5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 83834fa..7f52875 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ Things change, people change, everything changes. +## Unreleased +### Added +- Added `DEPLOY_KEEP_BACKUPS` option and function. + ## [0.6.0](https://github.com/elfacht/craft-deploy/compare/0.5.0...0.6.0) - 2019-07-08 ### Added - Added `.env` environment to separate config from code. diff --git a/README.md b/README.md index 7ab0b77..98dc23f 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ Creates the necessary `releases`, `shared` and `shared/web` folders on the serve - Runs `./craft migrate/all` and `./craft project-config/sync`. - Creates a symlink from the `current` folder to the newest release. - Deletes old releases and keeps max. 5 releases. +- Deletes oldest backup and keeps max. `[DEPLOY_KEEP_BACKUPS]` backups. - Restarts PHP to delete symlink cache (optional) ### gitlab-webhook-push.php diff --git a/deploy.sh b/deploy.sh index 4c5d7ac..77e3783 100755 --- a/deploy.sh +++ b/deploy.sh @@ -35,6 +35,7 @@ GIT_REPO=$(read_var DEPLOY_REPO .env) ROOT_PATH=$(read_var DEPLOY_ROOT .env) ASSETS_DIR=$(read_var DEPLOY_ASSETS_DIR .env) RESTART_PHP=$(read_var DEPLOY_RESTART_PHP .env) +KEEP_BACKUPS=$(read_var DEPLOY_KEEP_BACKUPS .env) ####################################### # Exit if any command fails @@ -158,6 +159,29 @@ if composer install --no-interaction --prefer-dist --optimize-autoloader; then printf -- ' DONE!\n'; fi + ####################################### + # Kepp max. X backups, + # delete oldest backup + ####################################### + COUNT=`/bin/ls -l $ROOT_PATH/shared/storage/backups | /usr/bin/wc -l` + MINBACKUPS=$KEEP_BACKUPS+1 # Keep X releases + + if [[ $COUNT -gt $MINBACKUPS ]]; then + OLDEST_BACKUP=$(ls -tr $ROOT_PATH/shared/storage/backups/* | head -1) + printf -- "- Delete oldest backup '$OLDEST_BACKUP' .." + + DONE=0; + while [ $DONE -eq 0 ]; do + rm -rf $OLDEST_BACKUP + + if [ "$?" = "0" ]; then DONE=1; fi; + printf -- '.'; + sleep 1; + done + + printf -- ' DONE!\n'; + fi + ####################################### # Restart PHP ####################################### From 94b6ee49c5210694efa2ffd8cc2e43b88aa075c7 Mon Sep 17 00:00:00 2001 From: Martin Szymanski Date: Mon, 15 Jul 2019 15:35:22 +0200 Subject: [PATCH 2/2] Bump version --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f52875..2b5abe7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ Things change, people change, everything changes. -## Unreleased +## [0.6.1](https://github.com/elfacht/craft-deploy/compare/0.6.0...0.6.1) - 2019-07-15 ### Added - Added `DEPLOY_KEEP_BACKUPS` option and function.