mirror of
https://github.com/lobaro/restic-backup-docker.git
synced 2026-11-14 16:02:43 +00:00
The repository had no tests: CI only built the image, and the old container-structure-test setup was parked as config-broken.yml / docker-compose.test.broken.yml. This adds suites that actually run the image. - test/compat.sh: backup, restore, forget, check, hooks, failure handling and timezone behaviour against the default configuration. These describe what users depend on today, so a change that turns them red is a breaking change. - test/features.sh: optional features, each guarded by a detection check against the built image. Absent features are reported as SKIP, so open pull requests do not turn master red, and their feature tests start running by themselves once the pull request is rebased. Covers #109 (RESTIC_STREAM), #99 (docker cli, bash) and #84 (msmtp). - test/required-features.txt: once a feature is merged its gate is listed here and a missing feature becomes a failure instead of a skip. - test/structure.yml: revived image layout checks, falls back to the official container-structure-test image when the tool is not installed. - test/run.sh --sabotage: breaks the backup call on a throwaway copy of the tree and expects the suite to fail, so the tests cannot be watered down into always passing. CI runs this as its own step. - .github/workflows/test.yml: shellcheck plus all suites on every pull request. Also adds .gitattributes pinning shell scripts, the Dockerfile and YAML to LF. With a Windows checkout (core.autocrlf=true) the scripts were checked out with CRLF, and the resulting image failed to start with "exec /entry.sh: no such file or directory". No runtime file is touched, the image itself is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Agent-Id: agent-7034f75b-1ddc-4aa1-a4ea-3a54b340e8d9
2.0 KiB
2.0 KiB
Changelog
Unreleased
Added
- Test suites in
test/(compat, features, structure) that run the image as a real container, plus aTestGitHub Actions workflow running them on every pull request .gitattributespinning shell scripts, the Dockerfile and YAML files to LF line endings. With a Windows checkout (core.autocrlf=true) the scripts were checked out with CRLF, which made the built image fail to start withexec /entry.sh: no such file or directory
Removed
config-broken.ymlanddocker-compose.test.broken.yml, replaced bytest/structure.ymland the test workflow
v1.4.2
Removed
- Execute a repository check after prune was passed as a parameter in the forget call - use RESTIC_CHECK_CRON Var instead
v1.4.1
Changed
- Execute a repository check after prune was passed as a parameter in the forget call
v1.4.0
Added
- Option to set the target folder backup
- Multi-platform image build
v1.3.2 (restic 0.16.0)
Changed
- Base image directly on official restic image
- Semver aligned version naming including restic version
- Updated to restic 0.16.0
Added
- rclone to docker image
- Implemented a simple mail notification after backups using mailx
- MAILX_ARGS environment variable
v1.3.1-0.9.6
Changed
- Update to Restic v0.9.5
- Reduced the number of layers in the Docker image
Fixed
- Check if a repo already exists works now for all repository types
Added
- shh added to container
- fuse added to container
- support to send mails using external SMTP server after backups
v1.2-0.9.4
Added
- AWS Support
v1.1
Fixed
--prunemust be passed toRESTIC_FORGET_ARGSto execute prune after forget.
Changed
- Switch to base Docker container to
golang:1.7-alpineto support latest restic build.
v1.0
Initial release.
The container has proper logs now and was running for over a month in production. There are still some features missing. Sticking to semantic versioning we do not expect any breaking changes in the 1.x releases.