From 6ce197696a64debe405d1603173d90671e094f27 Mon Sep 17 00:00:00 2001 From: Frederik Ring Date: Fri, 9 Jul 2021 08:14:35 +0200 Subject: [PATCH] scaffold basic testing in CI --- .circleci/config.yml | 22 ++++++++-------------- src/backup.sh | 16 +++++++++++----- test/default/docker-compose.yml | 0 test/default/test.sh | 5 +++++ 4 files changed, 24 insertions(+), 19 deletions(-) create mode 100644 test/default/docker-compose.yml create mode 100644 test/default/test.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index 5470420..6100f32 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,29 +2,23 @@ version: 2.1 jobs: canary: - docker: - - image: cimg/base:2020.06 + machine: + image: ubuntu-1604:202007-01 working_directory: ~/docker-volume-backup steps: - checkout - - setup_remote_docker: - version: 20.10.6 - run: name: Build command: | docker build . -t offen/docker-volume-backup:canary - run: - name: Create container from image + name: Run tests command: | - docker run -d offen/docker-volume-backup:canary - echo "Sleeping for 30s before checking if container is still running." - sleep 30 - count=$(docker ps -q | wc -l) - if [[ $count != "1" ]]; then - echo "Expected one container to be running, found $count." - exit 1 - fi - docker stop $(docker ps -q) + which docker + which docker-compose + for test in test/**/test.sh; do + . $test + done build: docker: diff --git a/src/backup.sh b/src/backup.sh index d46c7a2..ab98f96 100644 --- a/src/backup.sh +++ b/src/backup.sh @@ -17,13 +17,12 @@ DOCKER_SOCK="/var/run/docker.sock" if [ -S "$DOCKER_SOCK" ]; then TEMPFILE="$(mktemp)" - docker ps \ - --format "{{.ID}}" \ + docker ps -q \ --filter "label=docker-volume-backup.stop-during-backup=$BACKUP_STOP_CONTAINER_LABEL" \ > "$TEMPFILE" CONTAINERS_TO_STOP="$(cat $TEMPFILE | tr '\n' ' ')" CONTAINERS_TO_STOP_TOTAL="$(cat $TEMPFILE | wc -l)" - CONTAINERS_TOTAL="$(docker ps --format "{{.ID}}" | wc -l)" + CONTAINERS_TOTAL="$(docker ps -q | wc -l)" rm "$TEMPFILE" echo "$CONTAINERS_TOTAL containers running on host in total." echo "$CONTAINERS_TO_STOP_TOTAL containers marked to be stopped during backup." @@ -99,7 +98,12 @@ if [ ! -z "$BACKUP_RETENTION_DAYS" ]; then sleep "$BACKUP_PRUNING_LEEWAY" bucket=$AWS_S3_BUCKET_NAME - rule_applies_to=$(mc rm $MC_GLOBAL_OPTIONS --fake --recursive -force --older-than "${BACKUP_RETENTION_DAYS}d" "backup-target/$bucket" | wc -l) + rule_applies_to=$( + mc rm $MC_GLOBAL_OPTIONS --fake --recursive -force \ + --older-than "${BACKUP_RETENTION_DAYS}d" \ + "backup-target/$bucket" \ + | wc -l + ) if [ "$rule_applies_to" == "0" ]; then echo "No backups found older than the configured retention period of $BACKUP_RETENTION_DAYS days." echo "Doing nothing." @@ -114,6 +118,8 @@ if [ ! -z "$BACKUP_RETENTION_DAYS" ]; then exit 1 fi - mc rm $MC_GLOBAL_OPTIONS --recursive -force --older-than "${BACKUP_RETENTION_DAYS}d" "backup-target/$bucket" + mc rm $MC_GLOBAL_OPTIONS \ + --recursive -force \ + --older-than "${BACKUP_RETENTION_DAYS}d" "backup-target/$bucket" echo "Successfully pruned ${rule_applies_to} backups older than ${BACKUP_RETENTION_DAYS} days." fi diff --git a/test/default/docker-compose.yml b/test/default/docker-compose.yml new file mode 100644 index 0000000..e69de29 diff --git a/test/default/test.sh b/test/default/test.sh new file mode 100644 index 0000000..499f26e --- /dev/null +++ b/test/default/test.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -e + +echo "all is well"