Merge pull request #923 from cbcoutinho/chore/ci-drop-nc31-enable-nc33

ci: drop deprecated NC31 from matrix, enable NC33, stage NC34
This commit is contained in:
Chris Coutinho
2026-06-18 02:20:45 +02:00
committed by GitHub
3 changed files with 28 additions and 16 deletions
+8 -8
View File
@@ -59,9 +59,9 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
nextcloud_version: nextcloud_version:
- "31"
- "32" - "32"
# - "33" # Disabled until all upstream apps support NC 33 - "33"
# - "34" # Disabled until all upstream apps support NC 34
mode: mode:
- "single-user" - "single-user"
- "multi-user-basic" - "multi-user-basic"
@@ -69,14 +69,14 @@ jobs:
- "keycloak" - "keycloak"
include: include:
# Version-specific image pins — Renovate updates these via customManagers in renovate.json # Version-specific image pins — Renovate updates these via customManagers in renovate.json
# Each entry is pinned to its major version (e.g., NC 31 only gets 31.x updates) # Each entry is pinned to its major version (e.g., NC 32 only gets 32.x updates)
- nextcloud_version: "31"
nextcloud_image: "docker.io/library/nextcloud:31.0.14@sha256:07ec73cc816e58d6f45a162cd53ef886462c29271a23fc68d0124cec276e3767"
- nextcloud_version: "32" - nextcloud_version: "32"
nextcloud_image: "docker.io/library/nextcloud:32.0.11@sha256:3ae4045d53e890680ec35e3e4349332123d959c72808aceb44930e79f1be9b9b" nextcloud_image: "docker.io/library/nextcloud:32.0.11@sha256:3ae4045d53e890680ec35e3e4349332123d959c72808aceb44930e79f1be9b9b"
# Disabled until all upstream apps support NC 33 - nextcloud_version: "33"
# - nextcloud_version: "33" nextcloud_image: "docker.io/library/nextcloud:33.0.5@sha256:56bdc45109067500fd0832fa64832b7c77a167d9394cbf5f0f4b59740b94194d"
# nextcloud_image: "docker.io/library/nextcloud:33.0.5@sha256:56bdc45109067500fd0832fa64832b7c77a167d9394cbf5f0f4b59740b94194d" # Disabled until all upstream apps support NC 34
# - nextcloud_version: "34"
# nextcloud_image: "docker.io/library/nextcloud:34.0.0@sha256:851ca6ef9da101ce3c8a32ec7b6fc65a726b380b5f466307a54c17d32fb77c9a"
# Mode-specific properties # Mode-specific properties
- mode: single-user - mode: single-user
+4 -4
View File
@@ -14,10 +14,6 @@
}, },
{ {
"description": "Pin each Nextcloud matrix entry to its own major version", "description": "Pin each Nextcloud matrix entry to its own major version",
"matchDepNames": ["nextcloud-31"],
"allowedVersions": "/^31\\./"
},
{
"matchDepNames": ["nextcloud-32"], "matchDepNames": ["nextcloud-32"],
"allowedVersions": "/^32\\./" "allowedVersions": "/^32\\./"
}, },
@@ -25,6 +21,10 @@
"matchDepNames": ["nextcloud-33"], "matchDepNames": ["nextcloud-33"],
"allowedVersions": "/^33\\./" "allowedVersions": "/^33\\./"
}, },
{
"matchDepNames": ["nextcloud-34"],
"allowedVersions": "/^34\\./"
},
{ {
"description": "Pin docker-compose.yml Nextcloud image to 32.x", "description": "Pin docker-compose.yml Nextcloud image to 32.x",
"matchPackageNames": ["docker.io/library/nextcloud"], "matchPackageNames": ["docker.io/library/nextcloud"],
+16 -4
View File
@@ -246,8 +246,14 @@ async def _complete_login_flow_v2(browser, login_url: str) -> None:
await page.goto(login_url, wait_until="networkidle", timeout=60000) await page.goto(login_url, wait_until="networkidle", timeout=60000)
logger.info("Step 1 - Current URL: %s", page.url) logger.info("Step 1 - Current URL: %s", page.url)
# Step 1: "Connect to your account" page - click "Log in" # Step 1: "Connect to your account" page - click "Log in".
login_btn = page.get_by_role("button", name="Log in") # exact=True is required: NC33's connect page also renders an
# "Alternative log in using app password" button, and a non-exact
# "Log in" name substring-matches both -> Playwright strict-mode error
# that was silently swallowed below, leaving the flow stuck on the
# connect page (every login-flow test then times out "Login Flow v2 did
# not complete"). NC32 has a single match, so exact=True is safe there.
login_btn = page.get_by_role("button", name="Log in", exact=True)
try: try:
await login_btn.wait_for(timeout=10000) await login_btn.wait_for(timeout=10000)
await login_btn.click() await login_btn.click()
@@ -803,8 +809,14 @@ async def _complete_login_flow_v2_as_user(
await page.goto(login_url, wait_until="networkidle", timeout=60000) await page.goto(login_url, wait_until="networkidle", timeout=60000)
logger.info("[%s] Step 1 - Current URL: %s", username, page.url) logger.info("[%s] Step 1 - Current URL: %s", username, page.url)
# Step 1: "Connect to your account" page - click "Log in" # Step 1: "Connect to your account" page - click "Log in".
login_btn = page.get_by_role("button", name="Log in") # exact=True is required: NC33's connect page also renders an
# "Alternative log in using app password" button, and a non-exact
# "Log in" name substring-matches both -> Playwright strict-mode error
# that was silently swallowed below, leaving the flow stuck on the
# connect page (every login-flow test then times out "Login Flow v2 did
# not complete"). NC32 has a single match, so exact=True is safe there.
login_btn = page.get_by_role("button", name="Log in", exact=True)
try: try:
await login_btn.wait_for(timeout=10000) await login_btn.wait_for(timeout=10000)
await login_btn.click() await login_btn.click()