Skip to content

Model reusable Nextcloud app release automation #5

Description

@vitormattos

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions