Feature: Add automated Nextcloud compatibility workflow - #338
kevinveenbirkenbach wants to merge 3 commits into
Conversation
|
@kevinveenbirkenbach I'm inclined to say this is too much automation :) Would it be possible to trim down the PR to just the changes needed for 34 compat? |
|
Why? What are the disadvantages of the implementation :) |
|
You can also merge this one instead ;) |
Primarily the additional 500 lines of unreadable scripting that now need to be maintained. Overall the automation is too complicated for what it offers, since the plugin should be manually tested before marking a new release anyway. Sounds good. I (incorrectly) assumed there were some additional updates needed for compat. |
|
That the code is unreadable I understand. Could refactor it and add some playwright tests for clarity. But why do you want to test it manual? |
|
Broadly speaking,
|
|
I disagree. I think with well written playwright tests you can catch almost all flaky behaviour and you see when UI\UX changes on a way that you need to adapt your tooling. I teach my team every time, that the test speaks for itself. I just need to read the e2e test to understand what the software is doing and what is covered. So we have at Infinito.Nexus e2e tests in all levels. We wouldn't had realized that the oidc_login plugin isn't updated it there wouldn't had been a test to verify the login. For all SaaS applications which we have implemented we have autoupdate scripts which run against our tests, open a PR if a version changed and in this PR the full CI of this branch incl. all frontend playwright tests are executed. Example for the tests in our Nextcloud role: And here the PR which was auto generated and showed us that the update to Nextcloud 34 wasn't possible due to the incompatibility of oidc_login with 34 :) If you like to you can stay with the manual approach, but I can also clean up this branch and implement a structure which just needs your approval of autocreated PR's like at us :) |
|
But you can automate a secure setup. I mean this is the core of TDD. I don't know why you shouldn't generate tests. Especially if you do E2E playwright testing against the current versions. Humans make mistakes, classical tests are deterministic (if some solar flare doesn't change the charge in a transistor ;D ) Anyhow if it next time takes an month to update I would just clone it if you don't mind, because I would like to have faster release cycles :) PS: But if you like to my offer there to refactor my automatic testing in this repository. |
|
Your test may be deterministic but still the oidc_login is broken with current nextcloud on some setups - and your test did not find that. It only passes for your specific setup while bringing additional maintenance overhead. |
|
Yes but the manual approvement did neither ;D |
|
@kevinveenbirkenbach seems like there's some misunderstanding here. I'm not against testing, but I am against --
Typically the flow to make a new release would look like --
When (1) / (2) doesn't happen, the project is likely dead and should be archived :) |
Summary
ghcr.io/navikt/mock-oauth2-server:latest.max-versioninappinfo/info.xmlwhen the latest Nextcloud version passes compatibility checks.appinfo/info.xmlonmain/mastertriggers a release.Validation
bash -n .github/nextcloud-compatibility/run.shshellcheck .github/nextcloud-compatibility/run.shactionlint .github/workflows/release.yaml .github/workflows/nextcloud-compatibility.yamlgit diff --checkact workflow_dispatch -W .github/workflows/nextcloud-compatibility.yaml -j compatibility --input nextcloud_image_tag=34 ...The
actrun completed successfully against Nextcloud34.0.1, including app activation and OIDC login.