feat: render patched upstream workflow templates - #5
Merged
vitormattos merged 21 commits intoSep 20, 2026
Merged
Conversation
vitormattos
changed the base branch from
main
to
feat/automate-upstream-refresh
September 20, 2026 02:31
Signed-off-by: Vitor Mattos <vitor@php.rio>
vitormattos
force-pushed
the
feat/render-upstream-patches
branch
from
September 20, 2026 02:32
137e6f3 to
4d51e0d
Compare
vitormattos
merged commit Sep 20, 2026
7853675
into
feat/automate-upstream-refresh
4 of 5 checks passed
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.
Summary
Add the patch-aware rendering layer on top of #4's automated upstream refresh.
The complete flow becomes:
The renderer processes every declared workflow instead of stopping on the first broken patch.
GitHub-native template output
Generated workflows are published under
workflow-templates/, matching GitHub's organization workflow template convention.Template metadata (
*.properties.json) is maintained by LibreCode so names, descriptions, categories and icons can be optimized for our developer experience without inheriting Nextcloud-specific branding. The first template uses a GitHub Octicon rather than copying Nextcloud's trademark SVG.LibreCodeCoop/github-workflowsremains the source of truth. A follow-up (#7) will publish these generated templates to the specialLibreCodeCoop/.githubrepository so they appear in Actions → New workflow and validate the first end-to-end consumer.Automated update behavior
When the scheduled refresh finds upstream changes it:
If every patch applies, the pull request is opened normally.
If one or more patches fail, the workflow still opens the update pull request as draft. Its body lists the affected template, patch path and patch error. The vendored upstream file is included, while the generated template for that failed patch remains at its previous known-good version. After the PR is created, the workflow fails so the problem is visible both in the PR and in Actions.
Failures while resolving/downloading/verifying upstream sources remain fatal and do not create partial update pull requests.
First adapted workflow
The first rendered template is Nextcloud's
appstore-build-publish.yml.The first shared patch only removes the upstream restriction to the
nextcloud-releasesorganization. Other current LibreSign divergences are not copied into the shared contract without a separate justification.This replaces the current silent-fork pattern with explicit, versioned and testable downstream adaptations.