* Try running tests in Docker
* Spawn new container for each test
* Store test artifacts outside of mount
* When requested, build up to date image in test script
* sudo is unneccessary in containerized test env
* Skip azure test
* Backdate fixture file in JSON database
* Pin versions for azure tools
* Mount temp volume for /var/lib/docker to prevent dangling ones created by VOLUME instruction
* Fail backdating tests with message
* Add some documentation on test setup
* Cache images
* Run compose stacks with shortened default timeout
* Replace envconfig with env
* Adjust config options and processing
* Added _FILE variant for all password vars.
* Try pathenvconfig
* Revert everything so far
* Use our fork of envconfig with custom lookup
* Use our fork of envconfig with custom lookup
* Test compose timeout option
* Remove secret resolving and specific _FILE config
* Fix timing issue in swarm tests
* Revert "Test compose timeout option"
This reverts commit ab50b21748, reversing
changes made to 0282514b2b.
Revert "Test compose timeout option"
This reverts commit 0282514b2b.
* Use offen/envconfig v1.5.0
* Add info about _FILE in README
* Value > File. Panic on file error. Panic on duplicate presence.
* Test panic on duplicate vars and panic on file error.
* Skip backends while pruning
* Add pruning test step and silence download log for better readability
* Add test cases for pruning in all backends
Also add -q or --quiet-pull to all tests.
* Add test case for skipping backends while pruning
* Adjusted test logging, generate new test spec file
* Gitignore for temp test file
* Add new storage backend: Dropbox (#103)
* Remove duplicate check
* Add concurrency level for parallel upload to dropbox.
* Fixed some instabilites. Changed default concurrency to 6.
* Added some env config vars to readme. WIP
* Wrap errors for storage backend creation.
* Fixed token issue, added OAuth2 including recipe and docs.
* Readme typo fix
* Test for dropbox integration
* Update info and TOC
* Missed a file
* Docker-compose fix
* Fix endpoint connection
* Fix container names
* Fix log fetching
* Fix log fetching (again)
* Print command output to logs
* Addressing comments part 1
* Address comments part 2
* OpenAPI Mock spec path adjusted
* Dropbox FileMetadata reflection refactored
* NaturalNumber type added
* Add OAuth2 mock server for CI testing
* Fix env name of oauth2 endpoint
* Remove hostname
* Add forgotten change to commit...
* Fix oauth2 endpoint
"Worked on my machine"
* Try again
* Try suggested hostname again
* Fix docker internal DNS resolving issues (as suggested by oauth2 mock docs)
* Add docker network, remove hostname
* Network not external
* Last hostname try
* Add more delay, add oauth2 endpoint log
* Temp CI log output of command even when failing
* Try different config and method
* Add custom server-hostname. Rename test folder to accellerate debugging
* Try that fix again
* Adding quotes
* Port fix attempt
* Try localhost
* Try extra hosts
* Change network mode
* Undo some changes
* Use static IP
* Remove specific IP binding
* Change to default net driver
* Fix static IP
* Squash for revert
* Revert "Squash for revert"
This reverts commit e9b617be9a.
* Actual fix for CI testing from #257
* Replace docker-compose reference with docker[space]compose
* Update shoutrrr only to 0.7.1
* modules after go mod tidy
* Refer to v0.7 docs of shoutrrr
* Replace docker-compose reference with docker[space]compose
* Update shoutrrr only to 0.7.1
* modules after go mod tidy
* Refer to v0.7 docs of shoutrrr
* Remove 'v' from shoutrrr doc link
* Add user option for docker exec
* Add test for user option
* Return test version for image
* remove gitea config file
* refactor tests
* remove comments & fix image name
* add docs
* cleanup
* Update README.md with suggested correction
Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
* fix backup command & bind folder instead of volume
---------
Co-authored-by: tao <generaltao.md@gmail.com>
Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
* Run tests in GitHub actions
* Do not try to allocate a pseudo TTY when running compose commands
* Try hard disabling TTY allocation
* Use compose plugin
* Test scripts shall not try to allocate a TTY
* Pass correct base version
* Check whether env var is even needed
* Stop running tests in CircleCI
* Run releases from GitHub actions as well
* Manually construct tags to be pushed on release
* Scaffold Azure storage backend that does nothing yet
* Implement copy for Azure Blob Storage
* Set up automated testing for Azure Storage
* Implement pruning for Azure blob storage
* Add documentation for Azure Blob Storage
* Add support for remote path
* Add azure to notifications doc
* Tidy go.mod file
* Allow use of managed identity credential
* Use volume in tests
* Auto append trailing slash to endpoint if needed, clarify docs, tidy mod file
* Add test case for extending image and calling through to rsync
* Keep backup file location env var
* Add documentation
* Work against untared content in test
* Refactor label command mechanism to be more flexible
* Run all steps wrapped in labeled commands
* Rename methods to be in line with lifecycle
* Deprecate exec-pre and exec-post labels
* Add documentation
* Use type alias for lifecycle phases
* Fix bad imports
* Fix command lookup for deprecated labels
* Use more generic naming for lifecycle phase
* Fail on erroneous post command
* Update documentation
* Isolate S3 test case
* Isolate webdav test case
* Isolate SSH test case
* Isolate local storage test case
* Isolate gpg test case
* Add missing volume mount
* Fix file locations for local test case
* Remove compose test case, use utils
* Use test utils throughout
* Use dedicated tmp dir
* Fix link location that is being tested
* Use dedicated tmp_dirs when working on host fs
* Force delete artifact
* Fix expected filename
* Provide helpful messages on failing tests
* Fix filename
* Use proper volume names
* Fix syntax error, use large resource class
* Use named Docker volumes when referencing them in test scripts
* Add name of test case to logging output
* Hoist walking of files so it can be used for features other than archive creation
* Add option to ignore files from backup using glob patterns
* Use Regexp instead of glob for exclusion
* Ignore artifacts
* Add teardown to test
* Allow single Re for filtering only
* Add documentation
* Use MatchString on re, add bad input to message in case of error
* Retry on lock being unavailable
* Refactor locking to return plain error
* Collect LockedTime in stats
* Add test case
* Add documentation for LOCK_TIMEOUT
* Log in case lock needs to be awaited
* Release resources created for awaiting lock
* Allow mounting of config directory for multiple schedules
* Add docs for conf.d feature
* Fix behavior on multiple files
* Define default case first in entrypoint script
* Add option to run pre commands on arbitrary container
* Correctly handle quoted args in commands
* Provide defaults for test version arg
* Allow filtering of target containers
* Add documentation on exec commands
* Use mysqldump in exec test
* Add mysqldump section to recipes
* Also run commands test in swarm mode
* Use name instead of id
* Add syntax highlighting
* Add missing license headers
* Update targz library to include potential ownership fix
* Move archive logic to main repo
* Remove assertions for debugging
* Use relative path in assertion
* Strip local part from archive location
* Log when extracting in tests
* Fix trimming of prfix
* Add license info to archive.go file
* Undo change in test assertion
* Add test checking for preserved file ownership
* use same postgres version in tests
* Wrap errors when archiving, handle deletion at script layer
* Add test case for notification feature
* Fix template data
* bash is needed to interpret test
* Do not use bashisms in test
* Only print FullPath
* Fix assertion
* add studio-b12/gowebdav to be able to upload to webdav server
* make sure all env variables are present for webdav upload
* implement file upload to WebDav server
directory defaults to the base directory
* docs: add the new feature to the documentation
* if no WebDav env variable are given throw no error
* docs: use more elegant english :D
Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
* docs: use official spelling of "WebDAV"
* perf: golang likes to return early instead of having an else block
* use WEBDAV_PATH instead of WEBDAV_DIRECTORY
* use split_words for more convenience
like shown here: https://github.com/kelseyhightower/envconfig#struct-tag-support
* simplify
* feat: add pruning of files in WebDAV remote
Based on / Inspired by the minio/S3 implementation of pruning remote files.
* remove logging from the development
* test: first try implementing tests
Sandly I have to use the remote pipeline -- local wont work for me.
* test: adapt used volume names
* test: specify image only once!
* test: minio AND webdav data should be present
* test: backups on WebDAV remote are laying in the root directory
* test: the webdav server stores date in /var/lib/dav
* trying with data subfolder
* test: 1 container was added so the number raised from 3 to 4
* webdav subfolder is "data" not "backup"
* fix: password AND username must be defined
not password OR username
* improve logging
* feat: if the given path on the server isnt preset it will be created
* test: add creation of new folder for webdav to tests
Co-authored-by: Frederik Ring <frederik.ring@gmail.com>