Skip to content

Commit 41d35b4

Browse files
committed
docs: add example of company-specific GH action wrapper
1 parent 2bdf70d commit 41d35b4

File tree

3 files changed

+128
-5
lines changed

3 files changed

+128
-5
lines changed

CHANGELOG.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616

1717
## [1.0.0](https://github.com/agilecustoms/release/compare/v0.17.1...v1.0.0) (2025-08-24)
1818

19-
### ⚠ BREAKING CHANGES
20-
21-
* first beta
22-
2319
### Features
2420

2521
* add java-version input - pass it into setup-maven-codeartifact action ([e707ff4](https://github.com/agilecustoms/release/commit/e707ff4254776e8a6694e1021713b3122a7d2a5c))

docs/best-practices.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,19 @@ For more details see [semantic commits](./features/semantic-commits.md)
139139

140140
## Company-specific gha-release wrapper
141141

142-
TBD
142+
In many [examples](./examples) you may some inputs repeat, such as `aws-account`, `aws-region`, `aws-role`.
143+
You can reduce code reputation by creating your own wrapper around `agilecustoms/release`.
144+
For this just create a new GH repo with single file `action.yml`, see example [gha-release](./examples/gha-release).
145+
Here you provide company-specific defaults, see comment `# company-specific defaults`.
146+
For parameters that may vary - you add them in `inputs` section and pass them through, see comment `# pass through inputs`.
147+
For pass-through inputs you can use either same defaults as in `agilecustoms/release` (like `floating-tags` default is true)
148+
and for others you may want to set your own defaults (like `summary`).
149+
150+
Especially useful to provide default value for input `release-plugins`.
151+
This is the recommended way to have shared release configuration among multiple repos.
152+
Alternative is to have `.releaserc.json` file in each repo, but then you need to maintain it in multiple places.
153+
See [configuration](./configuration.md) for more details on configuration options.
154+
155+
Tech note. Once you create your custom GH action wrapper, make sure other repos can access it.
156+
For this go to your repo Settings > Actions > General > "Workflow permissions" > "Access" >
157+
set "Accessible from repositories in the '_mycompany_' organization"
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: 'Release'
2+
description: 'MyCompany wrapper for GH action agilecustoms/release'
3+
inputs:
4+
aws-codeartifact-maven:
5+
required: false
6+
aws-ecr:
7+
required: false
8+
dev-branch-prefix:
9+
required: false
10+
default: 'feature/'
11+
dev-release:
12+
required: false
13+
default: 'false'
14+
floating-tags:
15+
required: false
16+
default: 'true'
17+
node-version:
18+
required: false
19+
default: '22'
20+
pre-publish-script:
21+
required: false
22+
release-channel:
23+
required: false
24+
release-gh:
25+
required: false
26+
default: 'true'
27+
release-plugins:
28+
required: false
29+
default: |
30+
[
31+
[
32+
"@semantic-release/commit-analyzer",
33+
{
34+
"preset": "conventionalcommits",
35+
"releaseRules": [
36+
{ "type": "perf", "release": false },
37+
{ "type": "docs", "release": "patch" },
38+
{ "type": "misc", "release": "patch" }
39+
]
40+
}
41+
],
42+
[
43+
"@semantic-release/release-notes-generator",
44+
{
45+
"preset": "conventionalcommits",
46+
"presetConfig": {
47+
"types": [
48+
{
49+
"type": "feat",
50+
"section": "Features"
51+
},
52+
{
53+
"type": "fix",
54+
"section": "Bug Fixes"
55+
},
56+
{
57+
"type": "docs",
58+
"section": "Documentation"
59+
},
60+
{
61+
"type": "misc",
62+
"section": "Miscellaneous"
63+
}
64+
]
65+
}
66+
}
67+
]
68+
]
69+
summary:
70+
required: false
71+
default: '### Released ${version} :pushpin:'
72+
tag-format:
73+
required: false
74+
default: '${version}'
75+
version:
76+
required: false
77+
version-bump:
78+
required: false
79+
80+
runs:
81+
using: "composite"
82+
steps:
83+
- name: release
84+
id: release
85+
uses: agilecustoms/release@v1
86+
with:
87+
# company-specific defaults
88+
aws-account: 123456789012
89+
aws-region: us-east-1
90+
aws-role: ${{ inputs.dev-release == 'true' && 'ci/publisher-dev' || 'ci/publisher' }}
91+
aws-codeartifact-domain: mycompany
92+
aws-s3-bucket: mycompany-dist
93+
npm-extra-deps: conventional-changelog-conventionalcommits@9.1.0
94+
# pass through inputs
95+
aws-codeartifact-maven: ${{ inputs.aws-codeartifact-maven }}
96+
aws-ecr: ${{ inputs.aws-ecr }}
97+
dev-branch-prefix: ${{ inputs.dev-branch-prefix }}
98+
dev-release: ${{ inputs.dev-release }}
99+
floating-tags: ${{ inputs.floating-tags }}
100+
node-version: ${{ inputs.node-version }}
101+
pre-publish-script: ${{ inputs.pre-publish-script }}
102+
release-channel: ${{ inputs.release-channel }}
103+
release-gh: ${{ inputs.release-gh }}
104+
release-plugins: ${{ inputs.release-plugins }}
105+
summary: ${{ inputs.summary }}
106+
tag-format: ${{ inputs.tag-format }}
107+
version: ${{ inputs.version }}
108+
version-bump: ${{ inputs.version-bump }}
109+
110+
outputs:
111+
version:
112+
value: ${{ steps.release.outputs.version }}

0 commit comments

Comments
 (0)