Skip to content

[stable5.5] ci(actions): Update workflow templates from organization template repository - #14112

Merged
ChristophWurst merged 3 commits into
stable5.5from
ci/fix-psalm-vulnerable-php-stable5.5
Nov 10, 2026
Merged

ChristophWurst merged 3 commits into
stable5.5from
ci/fix-psalm-vulnerable-php-stable5.5

Conversation

@ChristophWurst

Copy link
Copy Markdown
Member

Summary

Psalm CI on this branch has been permanently broken since PHP 8.1 reached
end-of-life: the "Check for vulnerable PHP dependencies" step runs
composer require --dev roave/security-advisories:dev-latest, and that
package now excludes the entire PHP 8.1.x line unconditionally (no patched
range exists for it, since no more 8.1 releases will ever ship). This
branch's minimum supported PHP is still 8.1, so the check can never pass
again as long as that support continues.

main already dropped this step via the nextcloud/.github organization
template sync. This branch predates that sync automation, so this PR
pulls in the current org template by hand:

  • removes the vulnerable-PHP check that can no longer be satisfied
  • fixes a pre-existing matrix.php-min reference bug (was never part of
    the job's matrix: object, so it silently evaluated empty)
  • switches the OCP version matrix from a hardcoded list to the dynamic
    nextcloud-version-matrix action output, driven by this branch's
    appinfo/info.xml (min-version 30, max-version 33)
  • bumps action pins to match what main already uses

AI disclosure

Investigated and implemented with Claude Code (claude-sonnet-5).

Test plan

CI on this PR is the test - static-psalm-analysis should go green with
the step removed.

…ository

The static-analysis workflow's "Check for vulnerable PHP dependencies"
step runs `composer require --dev roave/security-advisories:dev-latest`.
This branch still tests against PHP 8.1 (the app's minimum supported
version here), and PHP 8.1 is now EOL, so roave/security-advisories
permanently excludes the entire 8.1.x line with no patched range to
satisfy. The check can never pass again as long as this branch
supports PHP 8.1.

main already dropped this step via the organization template sync
(nextcloud/.github). This branch predates the sync-workflow-templates.yml
automation, so pull the current org template in by hand: this also
fixes the pre-existing matrix.php-min typo (never part of the job
matrix) and switches the OCP version matrix to the dynamic
nextcloud-version-matrix action output, driven by this branch's own
appinfo/info.xml.

Assisted-by: ClaudeCode:claude-sonnet-5
Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
AliasMapper::findAll and MailAccountMapper::findByUserId declare
list<T> return types, but QBMapper::findEntities() is typed as
array<array-key, T> against the dev-stable30 OCP stub. That OCP
version was never part of the psalm test matrix before (the matrix
was hardcoded and skipped it, even though this branch supports
Nextcloud 30), so the mismatch went undetected until the matrix was
switched to the dynamic nextcloud-version-matrix action output.

Assisted-by: ClaudeCode:claude-sonnet-5
Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
array_values() around findEntities() fixed the dev-stable30 list<T>
mismatch, but Psalm flags it as RedundantFunctionCall on dev-stable31+,
where findEntities() is already typed list<T>. Assert the type via a
docblock instead, which is correct on every OCP version in the matrix.

Assisted-by: ClaudeCode:claude-sonnet-5
Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
@ChristophWurst
ChristophWurst merged commit 9013e84 into stable5.5 Nov 10, 2026
34 of 43 checks passed
@ChristophWurst
ChristophWurst deleted the ci/fix-psalm-vulnerable-php-stable5.5 branch November 10, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants