mirror of
https://github.com/lobaro/restic-backup-docker.git
synced 2026-11-14 07:52:44 +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
19 lines
842 B
Plaintext
19 lines
842 B
Plaintext
# Optional features that MUST be present in the built image.
|
|
#
|
|
# One gate name per line. Known gates and the pull request that introduces
|
|
# them (see test/features.sh):
|
|
#
|
|
# stream stream backups via RESTIC_STREAM PR #109
|
|
# docker-cli docker cli inside the container PR #99
|
|
# bash bash for pre/post hooks PR #99
|
|
# msmtp mail relay via msmtp PR #84
|
|
#
|
|
# While a gate is NOT listed here its tests are reported as SKIP when the
|
|
# feature is absent, so an open pull request does not turn master red.
|
|
#
|
|
# When you merge a feature, add its gate name below. From then on the feature
|
|
# tests are mandatory and a feature that silently disappears from the image
|
|
# fails the build.
|
|
#
|
|
# Empty on purpose: master currently ships none of the optional features.
|