Goal
Turn the current LibreSign release procedure into reusable, testable automation for Nextcloud applications.
Architecture decision
Implement this in the dedicated reusable workflow repository tracked by #4, not in github-governance.
Start with reusable workflows plus testable scripts. Extract a dedicated action only after the interface proves stable across more than one application.
Release plan stage
The first workflow should be non-mutating and produce a release plan that validates:
- target stable branch;
- milestone state and unresolved blockers;
- pending backports;
- generated files;
- current application/release metadata;
- proposed semantic version;
- changelog inputs;
- required credentials and publication prerequisites.
Planning must fail closed when release blockers are present.
Apply stage
A separate explicitly-invoked release workflow should:
- require an explicit version and target branch;
- rerun the plan checks;
- update release metadata;
- prepare or validate the release commit/PR;
- build the final artifact;
- validate the artifact itself;
- create the tag and GitHub Release;
- publish through the existing Nextcloud App Store flow;
- verify publication.
Safety
- planning is the default;
- mutation requires an explicit workflow invocation;
- signing/publication credentials stay in the consumer repository/environment;
- third-party actions use immutable SHA pins with exact version comments;
- release workflows should support protected environments for publication;
- a failed validation must not leave a partial release silently accepted.
Initial consumer
LibreSign should be the first migration target because its current manual release process provides the reference behavior.
Acceptance criteria
- release planning is testable without publishing;
- required backports/blockers prevent release;
- produced artifact is validated;
- release/tag publication is explicit and auditable;
- credentials are not centralized in the shared workflow repository;
- at least one second Nextcloud app can adopt the same interface without product-specific code changes.
Goal
Turn the current LibreSign release procedure into reusable, testable automation for Nextcloud applications.
Architecture decision
Implement this in the dedicated reusable workflow repository tracked by #4, not in
github-governance.Start with reusable workflows plus testable scripts. Extract a dedicated action only after the interface proves stable across more than one application.
Release plan stage
The first workflow should be non-mutating and produce a release plan that validates:
Planning must fail closed when release blockers are present.
Apply stage
A separate explicitly-invoked release workflow should:
Safety
Initial consumer
LibreSign should be the first migration target because its current manual release process provides the reference behavior.
Acceptance criteria