Commit Graph
165 Commits
Author SHA1 Message Date
Tobias KaupatandClaude Sonnet 5.5 6605114e27 test: make structure permission checks independent of checkout umask
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:20:06 +02:00
Tobias KaupatandClaude Sonnet 5.5 be7d426f78 test: move container test suites to pytest (#112)
* test: scaffold pytest suite with mise, uv and Task

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* ci: run the pytest suite via mise and task

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: make test cleanup survive repeated SIGINT

A group Ctrl-C reaches pytest a second time via task and uv while the
session fixture tears down, aborting the volume cleanup. Ignore SIGINT
and SIGTERM during cleanup, remove volumes in finally, and tolerate
already-removed objects.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: pin Python 3.13 for uv without mise

Add .python-version (read by mise and uv) and cap requires-python at
<3.14 so bare uv uses 3.13 or fails instead of picking 3.14.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: clean up test containers on SIGTERM

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: port compat tests to pytest

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: assert the success message first in the corruption test

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: assert the empty-tag snapshot carries no tags

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: remove anonymous volumes with short-lived test containers

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: port feature-gated tests to pytest

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: port sabotage self-test to task test:sabotage

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: create parent directories in put_file

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: move structure.yml to tests and remove cst volume leak

container-structure-test left one anonymous volume per test container.
tests/structure.py runs it with --save and removes the new containers
with their volumes afterwards.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: remove the Bash suite

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* ci: run only the Python suite in the test job

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* docs: describe the Python test suite

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: isolate scenario steps, share helpers, use restore_latest, HEAD dir probe

Scenario fixtures record each step; a failing step fails only the tests
that assert on it. running() and raise_interrupt() live in helpers.py.
put_file probes parent directories with a HEAD request instead of a
get_archive stream. stream_run uses restore_latest and asserts its result.
Docstrings no longer refer to the removed Bash suite.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: sabotage check rejects errors and malformed reports

Only <failure> of the expected tests counts as red; errors in them and a
malformed JUnit report exit 2 (invalid) instead of passing or exiting 1.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* test: structure wrapper removes only its own containers

Restrict cleanup to containers of the image under test without the
rbd-test-run label and ignore NotFound.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* build: run all test suites and aggregate the exit code

task test no longer stops at the first failing suite.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: sabotage check treats failed scenario steps as INVALID

StepFailed is no AssertionError any more; sabotage.py counts a JUnit failure
named StepFailed as error, so an expected-red test only counts when its own
assertion fails.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: hard timeout for container-structure-test

CST_TIMEOUT (default 300 s) kills a hanging run; existing cleanup removes the
containers; exit code 124 with a clear message.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: shorten sabotage message for lint

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix: handle JUnit failures without message in sabotage check

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:47:03 +02:00
Tobias KaupatandClaude Opus 5.5 31f06b5d9b test: add container test suites and run them in CI (#111)
Adds structure, compat and feature-gated container test suites (test/run.sh), runs them in CI, and gates image publishing on a green test run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:46:42 +02:00
Max Konrädi 47d29529e9 chore: Changelog v1.4.2 2025-08-13 15:19:14 +02:00
Max Konrädi 97c74a94a7 Revert "feat: add restic check after forget with prune"
This reverts commit 5f2b322e54.
2025-08-13 15:15:37 +02:00
Max Konrädi 901cd5487f chore: Changelog v1.4.1 2025-08-13 14:58:23 +02:00
Max Konrädi a66e72cb7e Merge pull request #103 from lobaro/feat/check_after_forget_prune
feat: add restic check after forget with prune
2025-08-13 14:56:17 +02:00
Max Konrädi 5f2b322e54 feat: add restic check after forget with prune 2025-08-13 13:43:48 +02:00
Max Konrädi 50e6fdbdf2 chore: Update CHANGELOG.md
v1.4.0
2025-04-23 15:04:50 +02:00
Max Konrädi 281c77f000 Merge pull request #88 from modem/patch-1
Update README.md
v1.4.0
2025-04-23 14:54:58 +02:00
Max Konrädi 2dd2b9ec2f Merge pull request #94 from lobaro/dependabot/github_actions/sigstore/cosign-installer-3.8.2
Bump sigstore/cosign-installer from 3.8.1 to 3.8.2
2025-04-23 14:53:11 +02:00
Max Konrädi d864717eca Merge pull request #95 from lobaro/chore/restic_upgrade
chore: remove arm64 specific dockerfile - platform target now impleme…
2025-04-23 14:52:04 +02:00
dependabot[bot] 5b057f7554 Bump sigstore/cosign-installer from 3.8.1 to 3.8.2
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.8.1...v3.8.2)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-23 12:51:07 +00:00
Max Konrädi aac1a371e1 Merge pull request #90 from krombel/master
Update restic, rclone and workflow dependencies
2025-04-23 14:50:28 +02:00
Max Konrädi ff27b6e0c4 Merge branch 'master' into master 2025-04-23 14:48:20 +02:00
Max Konrädi 424d4552cc Update dependabot.yml 2025-04-23 14:47:22 +02:00
Max Konrädi 30df2e301a chore: remove arm64 specific dockerfile - platform target now implemented in main dockerfile 2025-04-23 14:38:57 +02:00
Max Konrädi 4a3487bc1a Merge pull request #87 from zimbres/master
Multiarch Docker images / Backup_Sources Folder option
2025-04-23 14:31:28 +02:00
Max Konrädi 61e741240d Merge branch 'master' into master 2025-04-23 14:31:04 +02:00
Max Konrädi 646a4ffc40 Merge pull request #93 from lobaro/chore/restic_upgrade
Chore/restic upgrade
2025-04-22 11:16:36 +02:00
Max Konrädi db48b9982a Merge branch 'master' into chore/restic_upgrade 2025-04-22 11:15:58 +02:00
Max Konrädi 3c113ab2f4 feat: add shadow package for simple user management 2025-04-22 11:14:25 +02:00
Max Konrädi f695ea5253 Chore/restic upgrade (#92)
* chore: update restic to 0.18.0

* feat: add arm64 specific dockerfile

* fix: for podman compatibility prefix image with'docker.io/'
2025-04-16 18:13:33 +02:00
Max Konrädi e38f19c6d2 fix: default dockerfile uses amd64 arch 2025-04-16 18:12:21 +02:00
Max Konrädi 214edc2721 fix: for podman compatibility prefix image with'docker.io/' 2025-04-16 15:25:17 +02:00
Max Konrädi e75e026e92 feat: add arm64 specific dockerfile 2025-04-16 15:03:33 +02:00
Max Konrädi 740b897581 chore: update restic to 0.18.0 2025-04-16 13:35:23 +02:00
Matthias Kesler e7b7efa431 Merge pull request #2 from krombel/dependabot/docker/restic/restic-0.18.0
Bump restic/restic from 0.17.3 to 0.18.0
2025-04-01 14:58:28 +02:00
dependabot[bot] 53aba762e2 Bump restic/restic from 0.17.3 to 0.18.0
Bumps restic/restic from 0.17.3 to 0.18.0.

---
updated-dependencies:
- dependency-name: restic/restic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-01 10:38:59 +00:00
Matthias Kesler dbd3e9c459 Merge pull request #1 from krombel/dependabot/github_actions/sigstore/cosign-installer-3.8.1
Bump sigstore/cosign-installer from 3.7.0 to 3.8.1
2025-03-05 14:16:49 +01:00
Matthias Kesler 36e90b55e1 Update cosign version accordingly 2025-03-05 14:15:49 +01:00
dependabot[bot] 04fa95a5be Bump sigstore/cosign-installer from 3.7.0 to 3.8.1
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.7.0 to 3.8.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.7.0...v3.8.1)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 10:29:46 +00:00
Matthias Kesler 0fd1e1da91 Create dependabot.yml 2025-01-16 18:52:25 +01:00
Matthias Kesler 157bc07533 Update to restic 0.17.3 2024-11-15 18:51:46 +01:00
Matthias Kesler 1b7d44a85e update github workflow dependencies 2024-10-07 17:58:08 +02:00
Matthias Kesler b2c209cbc0 update restic 2024-10-07 17:48:42 +02:00
modem 9967b3fb2a Update README.md
Fix image in docker compose example
2024-04-17 14:54:16 +01:00
Marcio Zimbres 2f0ce618b8 Adjust file name of rclone zip in Dockerfile 2023-12-07 20:23:09 -03:00
Marcio Zimbres b2616ef2dc Adjust Dockerfile in order to download rclone that matches container architecture 2023-12-07 19:55:23 -03:00
Marcio Zimbres 9b829f90e0 Change Action to add multi-platform image build 2023-12-07 19:25:36 -03:00
Marcio Zimbres bf2dabd2c7 Added option to set the target folder backup 2023-12-07 14:02:36 -03:00
Tobias Kaupat c2ae895ed8 Update README.md 2023-08-06 00:02:38 +02:00
Tobias Kaupat 47b30e90b1 Update CHANGELOG.md 2023-08-06 00:00:45 +02:00
Tobias Kaupat e25f09d0ce Update README.md 2023-08-06 00:00:18 +02:00
Tobias Kaupat a018fdc2ec Fix mailx setup for latest restic image that is based on latest alpine
- mailx is known as mail in alpine
tmp v1.3.2 v1.3.2+restic-0-16-0
2023-08-05 23:54:01 +02:00
Tobias Kaupat 1d222b9798 Update CHANGELOG.md
fix typos
2023-08-05 23:08:21 +02:00
Tobias Kaupat e09de3ee18 Update README.md 2023-08-05 23:04:31 +02:00
Tobias Kaupat 33d48e8e0d Update CHANGELOG.md 2023-08-05 22:53:40 +02:00
Tobias Kaupat 412a96877f Update to restic 0.16.0 2023-08-05 22:40:12 +02:00
Tobias Kaupat ffcf548155 Link new docker container in readme 2023-08-05 22:34:25 +02:00