From 5f048cdf83015ab617065e963ef1e782a6b6d060 Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Thu, 11 Jan 2024 19:46:29 +0100 Subject: [PATCH] feat: add database backup verification --- .github/workflows/build.yml | 2 +- build.sh | 4 ++-- go.mod | 3 +++ src/{docker => }/Dockerfile | 1 - src/pg_bkup.sh | 14 +++++++++----- 5 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 go.mod rename src/{docker => }/Dockerfile (90%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b25e4a3..0b64b25 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: uses: docker/build-push-action@v3 with: push: true - file: "./src/docker/Dockerfile" + file: "./src/Dockerfile" platforms: linux/amd64,linux/arm64 tags: | "${{env.BUILDKIT_IMAGE}}:v0.2" diff --git a/build.sh b/build.sh index a78cb4f..f6815c4 100755 --- a/build.sh +++ b/build.sh @@ -6,6 +6,6 @@ if [ $# -eq 0 ] tag=$1 fi -docker build -f src/docker/Dockerfile -t jkaninda/pg-bkup:$tag . +docker build -f src/Dockerfile -t jkaninda/pg-bkup:$tag . -docker compose up -d \ No newline at end of file +#docker compose up -d \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ef0fbab --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/jkaninda/pg-bkup + +go 1.20 diff --git a/src/docker/Dockerfile b/src/Dockerfile similarity index 90% rename from src/docker/Dockerfile rename to src/Dockerfile index c332aab..7f8063e 100644 --- a/src/docker/Dockerfile +++ b/src/Dockerfile @@ -13,7 +13,6 @@ ARG DEBIAN_FRONTEND=noninteractive ENV VERSION="0.2" RUN apt-get update -qq -RUN apt-get install build-essential libcurl4-openssl-dev libxml2-dev mime-support -y RUN apt install s3fs postgresql-client postgresql-client-common libpq-dev supervisor cron -y # Clear cache diff --git a/src/pg_bkup.sh b/src/pg_bkup.sh index 2b3a828..fe12a19 100755 --- a/src/pg_bkup.sh +++ b/src/pg_bkup.sh @@ -155,11 +155,15 @@ else export PGPASSWORD=${DB_PASSWORD} ## Test database connection + export BK_FILE_NAME="${DB_NAME}_${TIME}.sql.gz" ## Backup database - pg_dump -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USERNAME} -d ${DB_NAME} | gzip > ${STORAGE_PATH}/${DB_NAME}_${TIME}.sql.gz - echo "$TIME: ${DB_NAME}_${TIME}.sql.gz" | tee -a "${STORAGE_PATH}/history.txt" - - info "Database has been saved" + pg_dump -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USERNAME} -d ${DB_NAME} | gzip > ${STORAGE_PATH}/$BK_FILE_NAME + if [[ $? -eq 0 ]];then + echo $BK_FILE_NAME | tee -a "${STORAGE_PATH}/history.txt" + info "Database has been backed up" + else + fatal "An error occurred during the backup" + fi fi exit 0 } @@ -266,7 +270,7 @@ scheduled_mode() } flags "$@" -# ? + if [ $EXECUTION_MODE == 'default' ] then if [ $OPERATION != 'backup' ]