Skip to content

Commit 21f216b

Browse files
committed
ci: create the GitHub Release page automatically on tag push
Calls the shared workflow in imqueue/.github. Notes come from a CHANGELOG.md section when present, otherwise GitHub's PR-derived notes, always followed by a standard About + links block so the release page is a self-contained, indexable description of the package even when the generated change list is empty. Triggered by the existing `npm version` + `git push --follow-tags` flow, so the release habit does not change. workflow_dispatch backfills an existing tag and defaults to a dry run.
1 parent 58c133e commit 21f216b

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Creates the GitHub Release page for a version tag.
2+
#
3+
# The notes are composed by the shared workflow in
4+
# imqueue/.github/.github/workflows/release.yml: a CHANGELOG.md section for the exact
5+
# version when one exists, otherwise GitHub's PR-derived notes, always followed by a
6+
# standard About + links block.
7+
#
8+
# This fires on `git push --follow-tags` after `npm version`, so it needs no change to
9+
# the existing release habit. workflow_dispatch is for backfilling a tag that already
10+
# exists, and defaults to a dry run so the notes can be read before anything is created.
11+
12+
name: Release
13+
14+
on:
15+
push:
16+
tags: ['v*']
17+
workflow_dispatch:
18+
inputs:
19+
tag:
20+
description: 'Existing tag to compose notes for, e.g. v1.2.3'
21+
required: true
22+
type: string
23+
dry-run:
24+
description: 'Only print the notes; do not create or update the release'
25+
required: false
26+
type: boolean
27+
default: true
28+
29+
jobs:
30+
release:
31+
uses: imqueue/.github/.github/workflows/release.yml@master
32+
# A called workflow can hold no more permission than its caller grants, so this is
33+
# required even though the shared workflow declares it too.
34+
permissions:
35+
contents: write
36+
with:
37+
package: '@imqueue/graphql-dependency'
38+
tag: ${{ inputs.tag || '' }}
39+
dry-run: ${{ inputs.dry-run || false }}
40+
blurb: >-
41+
`@imqueue/graphql-dependency` — Cross-service GraphQL dependencies for underlying @imqueue
42+
services. Part of the @imqueue framework for Node.js & TypeScript microservices.

0 commit comments

Comments
 (0)