Skip to content

ci: centralize upstream PHPStan, PHPUnit and Playwright templates - #115

Merged
vitormattos merged 4 commits into
mainfrom
fix/upstream-workflow-sources-20261114
Nov 15, 2026
Merged

vitormattos merged 4 commits into
mainfrom
fix/upstream-workflow-sources-20261114

Conversation

@vitormattos

Copy link
Copy Markdown
Member

Purpose

Centralize the upstream-derived GitHub Actions workflows for PHPStan, PHPUnit (SQLite/MariaDB/PostgreSQL) and Playwright in LibreCodeCoop/.github. Consumers should not maintain copies of runner changes or duplicate the official Nextcloud templates. This changes only LibreCode-owned files; nothing is committed or opened in nextcloud/.github.

Changes

  • Vendored five official Nextcloud workflows from immutable upstream revision c2798fc61844a6420779add9f5e1b51f8aabfd87, with SHA-256 pins in upstream/sources.json.
  • Registered them with the existing shared renderer in upstream/templates.json. A single generic runner alias mapping normalizes runs-on: ubuntu-latest-low to GitHub-hosted ubuntu-latest after patch processing, leaving the original vendored file and other text unchanged. No new local PHP/Playwright patches are required for this runner change.
  • Added discoverable GitHub workflow-template metadata, REUSE annotations for machine-generated metadata, and updated the upstream workflow documentation.
  • Corrected actions/sync-workflows/sync.py: it now renders consumer patches in isolation and never overwrites the last valid workflow or updates its lock if patch application fails; failures block synchronization instead of producing potentially broken CI.

Validation

  • python3 -m unittest discover -s tests -p 'test_*.py' -q: 109 tests passed.
  • python3 scripts/sync_upstream.py check upstream/sources.json: passed; vendored sources match recorded immutable SHA-256 digests.
  • python3 scripts/render_upstream.py check upstream/templates.json: passed.
  • Re-rendered all 19 templates a second time: 0 changed, 0 failed.
  • actionlint for all five new generated workflow files: passed.
  • python3 scripts/check_workflow_policy.py: passed.
  • Repo-wide REUSE has older unrelated missing annotations; this PR adds shared annotations for generated JSON and existing patches but does not claim a passing repo-wide REUSE baseline.

Consumer migration

Once merged, LibreCodeCoop/communications#1 can switch back to the standard organization sync workflow, remove its extra Nextcloud catalog sync and the duplicate PHPStan/PHPUnit/runner patches, retain only its application-specific Playwright fixture/matrix patch, and replace six .patch.license files with one REUSE.toml entry. Do not merge the consumer PR before the shared template change has propagated.

This PR is for review; no automatic merge or deploy is requested.

Avoid replacing catalog-locked workflow files or advancing the lock for a failed patch; propagate blocked status to the synchronizer.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…ht templates

Track immutable Nextcloud sources with checksums; render public runners in the LibreCode workflow catalog and distribute via the existing template synchronizer.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
vitormattos added a commit to LibreCodeCoop/communications that referenced this pull request Nov 15, 2026
…ibreCode catalog

Reduce six application patches to a single Playwright fixture overlay, use the shared catalog lock and preserve upstream PHPStan/Composer contracts. Depends on LibreCodeCoop/.github#115.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
@vitormattos
vitormattos marked this pull request as ready for review November 15, 2026 02:29
@vitormattos
vitormattos merged commit 04cf1c5 into main Nov 15, 2026
5 checks passed
@vitormattos
vitormattos deleted the fix/upstream-workflow-sources-20261114 branch November 15, 2026 02:29
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.

1 participant