Skip to content

Commit 4c3e030

Browse files
committed
feat(release): introduce release-please for release automation
1 parent 9b2527e commit 4c3e030

File tree

6 files changed

+97
-0
lines changed

6 files changed

+97
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.4"
3+
}

.github/release-please-config.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"bootstrap-sha": "9b2527e512e0be9d9833838d50111bd3522785b2",
3+
"packages": {
4+
".": {
5+
"release-type": "node",
6+
"package-name": "openapi-request-validation"
7+
}
8+
}
9+
}

.github/workflows/commitlint.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: commitlint
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- master
8+
9+
permissions:
10+
contents: read
11+
pull-requests: read
12+
13+
jobs:
14+
commitlint:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- uses: wagoid/commitlint-github-action@v6
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: release-please
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: write
11+
issues: write
12+
pull-requests: write
13+
14+
jobs:
15+
release-please:
16+
runs-on: ubuntu-latest
17+
outputs:
18+
release_created: ${{ steps.release.outputs.release_created }}
19+
tag_name: ${{ steps.release.outputs.tag_name }}
20+
steps:
21+
- id: release
22+
uses: googleapis/release-please-action@v4
23+
with:
24+
config-file: .github/release-please-config.json
25+
manifest-file: .github/.release-please-manifest.json
26+
27+
publish-npm:
28+
needs: release-please
29+
if: ${{ needs.release-please.outputs.release_created == 'true' }}
30+
runs-on: ubuntu-latest
31+
permissions:
32+
contents: read
33+
id-token: write
34+
steps:
35+
- uses: actions/checkout@v4
36+
with:
37+
ref: ${{ needs.release-please.outputs.tag_name }}
38+
39+
- uses: actions/setup-node@v4
40+
with:
41+
node-version: 20
42+
registry-url: https://registry.npmjs.org
43+
44+
- run: npm install
45+
46+
- run: npm test
47+
48+
- run: npm publish --provenance --access public
49+
env:
50+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,7 @@ validateExpressRequest(validateCreateCustomerOrderRequest, req, {
9191
createError: (message) => new BadRequestProblem(message),
9292
})
9393
```
94+
95+
## Release automation
96+
97+
This repo uses the release-please flow for release automation.

package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,12 @@
4444
"dist",
4545
"README.md"
4646
],
47+
"publishConfig": {
48+
"access": "public"
49+
},
4750
"scripts": {
4851
"build": "node ./scripts/build.mjs",
52+
"prepack": "npm run build",
4953
"test": "npm run build && node ./node_modules/jest/bin/jest.js --runInBand"
5054
},
5155
"keywords": [
@@ -58,6 +62,14 @@
5862
"engines": {
5963
"node": ">=20"
6064
},
65+
"repository": {
66+
"type": "git",
67+
"url": "git+https://github.com/maxdev1/openapi-request-validation.git"
68+
},
69+
"bugs": {
70+
"url": "https://github.com/maxdev1/openapi-request-validation/issues"
71+
},
72+
"homepage": "https://github.com/maxdev1/openapi-request-validation#readme",
6173
"dependencies": {
6274
"@apidevtools/swagger-parser": "^12.0.0",
6375
"ajv": "^8.17.1",

0 commit comments

Comments
 (0)