wire-rm-actions · version · build-image · quay-login · publish-chart · notify-rm · changelog · release-declaration · release-documents · release-manifest · compatibility · release-inputs · release-source · promote-image · ci-gate · draft-release · publish-chart-s3
Gather the release note and the release declaration of a release or a dev build, and the
documentsobject of its release manifest.
Every release carries two documents written ahead in the repository (ADR-0020
§2 and §3): the release note, what a reader learns about the version, and the
release declaration, what an operator must know before upgrading.
release-documents finds them, checks them and hands them to
release-manifest and to the draft GitHub
Release.
| Build | Release note | Release declaration |
|---|---|---|
ga |
required, copied to <out-dir>/release-note.md |
required, written to <out-dir>/release-declaration.json |
alpha, beta, rc |
optional (warning), copied | optional, written |
dev |
optional (warning), referenced by its repository path | never |
Both live in publication/ (ADR-0020): publication/release-note.md, the
note of the version the build leads to, and publication/declaration.json
(schema wire.component-release/v1alpha2), the declaration of that GA, which
its pre-releases share. The declaration is the release-declaration input
(sent by the release manager, kept byte for byte), else
publication/declaration.json in canonical JSON, validated with
release-declaration with the component
and the base version (1.41.5 for 1.41.5-rc.1).
| Input | Required | Default | Description |
|---|---|---|---|
component |
yes | Component id the declaration must declare. | |
version |
yes | The version, without v. |
|
release-type |
yes | ga, alpha, beta, rc or dev. |
|
release-note |
no | "" |
The release_note dispatch input. |
note-input |
no | ignore |
ignore: the repository note wins, the input only warns. override: the input replaces the repository note of a release. |
release-declaration |
no | "" |
JSON text of the declaration; empty reads the repository file. |
publication-dir |
no | publication |
Folder of release-note.md and declaration.json, read first. |
out-dir |
no | . |
Where the release documents are written. |
| Output | Description |
|---|---|
documents-json |
The documents object of the manifest, {} when empty. |
note-file, note-path, note-sha256, note-source |
The note: file name (or repository path for a dev build), path found, sha256, repository or input. |
declaration-file, declaration-sha256, declaration-source |
The declaration: release-declaration.json, sha256, release_manager or repository. |
bashandjq(all GitHub-hosted runners); a checkout of the source commit.
- id: documents
uses: wireapp/wire-rm-actions/release-documents@<sha> # vX.Y.Z
with:
component: my-component
version: ${{ steps.version.outputs.version }}
release-type: ${{ inputs.type }}
release-declaration: ${{ inputs.release_declaration }}
out-dir: ${{ runner.temp }}/releaseWritten ahead, read at the source commit. The note and the declaration are reviewed in a pull request like the code they describe, so a release never waits for someone to write them, and a GA without them does not start.
Dev builds warn early. A dev build attaches the note of the version it leads to and warns when there is none: the missing note shows weeks before the GA, not on release day.