Skip to content

Commit bbd7eb7

Browse files
committed
feat: add semantic-release
1 parent e733a83 commit bbd7eb7

File tree

7 files changed

+20148
-12
lines changed

7 files changed

+20148
-12
lines changed

.github/workflows/release.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Auto Release to PackageCloud
2+
on:
3+
push:
4+
branches:
5+
- master
6+
# Only attempt publish when the package.json has changed
7+
paths:
8+
- 'javascript/package.json'
9+
- 'css/package.json'
10+
- 'react/package.json'
11+
jobs:
12+
publish:
13+
runs-on: ubuntu-latest
14+
if: |
15+
!contains(github.event.head_commit.message, '[skip ci]') &&
16+
!contains(github.event.head_commit.message, '[skip release]')
17+
steps:
18+
- uses: actions/checkout@v3
19+
with:
20+
# Required for commit analyzer to access git history
21+
fetch-depth: 0
22+
# needs to be false, otherwise the generated GITHUB_TOKEN will interfere
23+
# with the global when used to write to the master (protected) branch
24+
# https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/github-actions.md#pushing-packagejson-changes-to-a-master-branch
25+
persist-credentials: false
26+
27+
# Setup .npmrc file to publish package
28+
- name: Setup Node.js
29+
uses: actions/setup-node@v3
30+
with:
31+
node-version: 'lts/*'
32+
registry-url: 'https://packagecloud.io/ratehub/npm/npm/'
33+
scope: '@ratehub'
34+
35+
- name: Install Dependencies
36+
run: npm ci --workspaces
37+
env:
38+
NODE_AUTH_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
39+
40+
- name: Generate Release (& Publish)
41+
run: npm run release --workspaces -- --dry-run
42+
env:
43+
GITHUB_TOKEN: ${{ secrets.GH_RATEHUB_MACHINE_TOKEN }}
44+
# NODE_AUTH_TOKEN must be set in step context (and not at job/workflow
45+
# context) or it will be override by the default, causing 401s.
46+
NODE_AUTH_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
47+
# Tell `npm publish` to use config created in previous setup.
48+
NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

css/package.json

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
"description": "A set of linting rules for RateHub projects using CSS and Styled Components",
55
"main": "index.js",
66
"scripts": {
7-
"test": "test"
7+
"release": "semantic-release"
88
},
99
"repository": {
1010
"type": "git",
11-
"url": "https://github.com/ratehub/code-style/tree/master/css"
11+
"url": "https://github.com/ratehub/code-style"
1212
},
1313
"bugs": {
1414
"url": "https://github.com/ratehub/code-style/issues"
@@ -29,7 +29,39 @@
2929
"stylelint-config-styled-components": "^0.1.1",
3030
"stylelint-processor-styled-components": "^1.5.2"
3131
},
32-
"dependencies": {},
3332
"devDependencies": {
33+
"semantic-release": "^19.0.3",
34+
"@semantic-release/commit-analyzer": "^9.0.2",
35+
"@semantic-release/git": "^10.0.1",
36+
"@semantic-release/github": "^8.0.5",
37+
"@semantic-release/npm": "^9.0.1",
38+
"@semantic-release/release-notes-generator": "^10.0.3"
39+
},
40+
"dependencies": {},
41+
"release": {
42+
"branches": [
43+
"master"
44+
],
45+
"plugins": [
46+
"@semantic-release/commit-analyzer",
47+
"@semantic-release/release-notes-generator",
48+
"@semantic-release/npm",
49+
[
50+
"@semantic-release/git",
51+
{
52+
"assets": [
53+
"package.json",
54+
"package-lock.json"
55+
],
56+
"message": "chore(release): ${nextRelease.gitTag}\n\n${nextRelease.notes}\n\n[skip release]"
57+
}
58+
],
59+
[
60+
"@semantic-release/github",
61+
{
62+
"failComment": false
63+
}
64+
]
65+
]
3466
}
35-
}
67+
}

javascript/package.json

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
"description": "ESLint config for use on RateHub JavaScript projects",
55
"main": "index.js",
66
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1"
7+
"release": "semantic-release"
88
},
99
"repository": {
1010
"type": "git",
11-
"url": "https://github.com/ratehub/code-style/tree/master/javascript"
11+
"url": "https://github.com/ratehub/code-style"
1212
},
1313
"bugs": {
1414
"url": "https://github.com/ratehub/code-style/issues"
@@ -26,5 +26,40 @@
2626
"@babel/eslint-parser": "^7.18.9",
2727
"eslint": ">= 8",
2828
"eslint-plugin-import": "^2.26.0"
29+
},
30+
"devDependencies": {
31+
"semantic-release": "^19.0.3",
32+
"@semantic-release/commit-analyzer": "^9.0.2",
33+
"@semantic-release/git": "^10.0.1",
34+
"@semantic-release/github": "^8.0.5",
35+
"@semantic-release/npm": "^9.0.1",
36+
"@semantic-release/release-notes-generator": "^10.0.3"
37+
},
38+
"dependencies": {},
39+
"release": {
40+
"branches": [
41+
"master"
42+
],
43+
"plugins": [
44+
"@semantic-release/commit-analyzer",
45+
"@semantic-release/release-notes-generator",
46+
"@semantic-release/npm",
47+
[
48+
"@semantic-release/git",
49+
{
50+
"assets": [
51+
"package.json",
52+
"package-lock.json"
53+
],
54+
"message": "chore(release): ${nextRelease.gitTag}\n\n${nextRelease.notes}\n\n[skip release]"
55+
}
56+
],
57+
[
58+
"@semantic-release/github",
59+
{
60+
"failComment": false
61+
}
62+
]
63+
]
2964
}
3065
}

0 commit comments

Comments
 (0)