ci: Add a litmus WebDAV-conformance pipeline#2
Draft
michaelstingl wants to merge 5 commits into
Draft
Conversation
The litmus suite (the standard third-party WebDAV / RFC 4918 conformance tests) was dropped from CI when the project moved to Woodpecker, and the litmus-test-old/-new Makefile targets bit-rotted: they start a config (storage-home.toml) that no longer exists. Without this gate, WebDAV protocol regressions can land unnoticed. Add .woodpecker/litmus.yaml, shaped like cs3api-validator-decomposed.yaml: a detached revad serves WebDAV and a step runs the litmus container against it by name. Repair the two Makefile targets (drop the removed storage-home.toml, point at the maintained owncloudci/litmus image). revad is built in-pipeline so the job is self-contained and runnable with woodpecker-cli exec; switching to the S3-cache binary fetch (depends_on: build) is the production form. The locks group is omitted, as in ocis CI: reva's WebDAV locking is partial and tracked separately. Fixes: opencloud-eu#247
Build litmus (Joe Orton's canonical WebDAV / RFC 4918 suite) from its pinned, checksummed release tarball: no image dependency, native arch, and the exact litmus version is explicit in the pipeline. litmus 0.17 is stricter than earlier versions, so gate on the suites that pass cleanly (basic, copymove, http). props (31/33) and locks are documented in the job as not-yet-gated, candidates for an expected-failures list (cf. ocis run-litmus.py).
Add the two production-form swaps as commented, ready-to-enable steps: a fetch-binary step that pulls the prebuilt revad from the S3 cache like the sibling pipelines (with depends_on: build), and an opencloud-eu litmus image in place of the source build. The active job stays self-contained and locally runnable; the comments make either switch a small, obvious change.
The litmus-test-old / litmus-test-new targets are a local-only litmus runner (host network, prebuilt image). The new .woodpecker/litmus.yaml job runs litmus both in CI and locally (woodpecker-cli exec), so these targets are redundant. Remove them and the LITMUS_* / TESTS variables they used; the pipeline is now the single litmus runner.
4d78600 to
fa2978e
Compare
Owner
Author
litmus run (green)Local run of this pipeline ( Pipeline exit 0. The gated set is 🤖 drafted with Claude Code, reviewed before submitting. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Fork-internal preview to review the rendered diff against the upstream PR template. Not the upstream submission. The "Related Issue" link is shown as plain text (code span) so it does not cross-reference the real issue yet; the live
Fixeslink is added only in the upstream PR. Items still open before this could go upstream live in the kit'sPRE-UPSTREAM.md.Description
litmus is the standard third-party WebDAV / RFC 4918 conformance suite (Joe Orton / neon). It is not run in CI, and the local-only
litmus-test-old/litmus-test-newMakefile targets had bit-rotted (they referenced a removed config).This adds
.woodpecker/litmus.yaml, shaped likecs3api-validator-decomposed.yaml: a detachedrevadserves WebDAV and a step runs litmus against it by name. litmus is built from its pinned, checksummed 0.17 release tarball, so the version is explicit and there is no external image dependency. Gated suites:basic,copymove,http.props(31/33 under litmus 0.17) andlocks(reva WebDAV locking is partial) are documented in the job as not yet gated, candidates for an expected-failures list.The two production-form swaps are included as commented, ready-to-enable steps: an S3-cache binary fetch like the sibling pipelines (instead of the in-pipeline
revadbuild), and anopencloudeu/litmusimage (instead of building litmus from source). The active job stays self-contained and locally runnable; either switch is a small change.The bit-rotted Makefile litmus targets are removed; this pipeline is the single litmus runner, in CI and locally via
woodpecker-cli exec.Related Issue
opencloud-eu/reva#247Motivation and Context
Without a WebDAV conformance gate, protocol-level regressions can land unnoticed. This restores the litmus coverage the repository is set up to have but currently does not run.
How Has This Been Tested?
woodpecker-cli exec .woodpecker/litmus.yaml(Docker;revadbuilt and started in-pipeline)basic16/16 passedcopymove13/13 passedhttp4/4 passed; pipeline exit 0Screenshots (if appropriate):
Types of changes
Checklist:
🤖 drafted with Claude Code, reviewed before submitting.