diff --git a/.gitignore b/.gitignore index 97d91fc..68a44a9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ docker-compose.yml -.DS_Store \ No newline at end of file +.DS_Store +.idea diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..8d10cfa --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,18 @@ +stages: + - Build +variables: + IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA + +build-image: + stage: Build + only: + - develop + - main + image: docker:20.10.16 + services: + - docker:20.10.16-dind + + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build --pull -t $IMAGE_TAG . + - docker push $IMAGE_TAG diff --git a/resources/perform-backup.sh b/resources/perform-backup.sh index 48cf73c..45aa80e 100644 --- a/resources/perform-backup.sh +++ b/resources/perform-backup.sh @@ -15,9 +15,20 @@ do then echo -e "Database backup successfully completed for $CURRENT_DATABASE at $(date +'%d-%m-%Y %H:%M:%S')." - backup_name=$CURRENT_DATABASE_$(date +"%Y-%m-%d_%H-%M-%S").sql + + FILENAME=$CURRENT_DATABASE_$(date +"%Y-%m-%d_%H-%M-%S") + + if [ "$USE_COMPRESSION" = true ] + then + tar -czvf /tmp/$CURRENT_DATABASE.tar.gz /tmp/$CURRENT_DATABASE.sql + FILENAME=$FILENAME.tar.gz + awsoutput=$(aws s3 cp /tmp/$CURRENT_DATABASE.tar.gz s3://$AWS_BUCKET_BACKUP_PATH/$FILENAME --endpoint-url $AWS_BUCKET_URI 2>&1) + else + FILENAME=$FILENAME.sql + awsoutput=$(aws s3 cp /tmp/$CURRENT_DATABASE.sql s3://$AWS_BUCKET_BACKUP_PATH/$FILENAME --endpoint-url $AWS_BUCKET_URI 2>&1) + fi # Perform the upload to S3. Put the output to a variable. If successful, print an entry to the console and the log. If unsuccessful, set has_failed to true and print an entry to the console and the log - if awsoutput=$(aws s3 cp /tmp/$CURRENT_DATABASE.sql $AWS_BUCKET_URI$AWS_BUCKET_BACKUP_PATH/$backup_name 2>&1) + if [ "$awsoutput" = true ] then echo -e "Database backup successfully uploaded for $CURRENT_DATABASE at $(date +'%d-%m-%Y %H:%M:%S')." else