Skip to content

Commit 26bc4dc

Browse files
authored
chore: add semantic release (#112)
1 parent 47d356c commit 26bc4dc

File tree

3 files changed

+163
-1
lines changed

3 files changed

+163
-1
lines changed

.github/workflows/ci.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@ on:
44
push:
55
branches:
66
- master
7+
- main
8+
9+
concurrency:
10+
group: ci-${{ github.head_ref || github.ref }}
11+
cancel-in-progress: true
712

813
jobs:
914
test:
1015
runs-on: ubuntu-latest
1116
steps:
12-
- uses: actions/checkout@v2
17+
- uses: actions/checkout@v3
1318
- name: Set up Ruby
1419
uses: ruby/setup-ruby@v1
1520
with:
@@ -19,3 +24,14 @@ jobs:
1924
run: bundle exec rake db:setup
2025
- name: Run Tests
2126
run: bundle exec rake
27+
publish:
28+
name: Release
29+
runs-on: ubuntu-latest
30+
if: github.ref == 'refs/heads/master'
31+
needs: [test]
32+
steps:
33+
- name: Dispatch Release
34+
uses: benc-uk/workflow-dispatch@v1
35+
with:
36+
workflow: Generate New Release
37+
token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: Generate New Release
3+
4+
on:
5+
workflow_dispatch:
6+
7+
jobs:
8+
release:
9+
name: Release
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v3
14+
with:
15+
submodules: true
16+
persist-credentials: false
17+
- name: Set up Ruby
18+
uses: ruby/setup-ruby@v1
19+
with:
20+
ruby-version: "3.1"
21+
- name: Build
22+
run: |
23+
gem install bundler
24+
git submodule update --init --recursive
25+
bundle install --jobs 4 --retry 3
26+
- name: Setup Node.js
27+
uses: actions/setup-node@v2
28+
with:
29+
node-version: 14
30+
- name: Install Dependencies
31+
run: yarn install --frozen-lockfile
32+
- name: Release
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}
36+
run: node_modules/.bin/semantic-release

package.json

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
{
2+
"name": "graphiti-rails",
3+
"version": "0.4.0",
4+
"repository": {
5+
"type": "git",
6+
"url": "git+https://github.com/graphiti-api/graphiti-rails.git"
7+
},
8+
"license": "MIT",
9+
"bugs": {
10+
"url": "https://github.com/graphiti-api/graphiti-rails/issues"
11+
},
12+
"scripts": {
13+
"semantic-release": "semantic-release"
14+
},
15+
"devDependencies": {
16+
"semantic-release-rubygem": "^1.2.0",
17+
"semantic-release": "^19.0.3",
18+
"@semantic-release/changelog": "^6.0.1",
19+
"@semantic-release/git": "^10.0.1"
20+
},
21+
"release": {
22+
"branches": [
23+
"master",
24+
{
25+
"name": "beta",
26+
"prerelease": true
27+
},
28+
{
29+
"name": "alpha",
30+
"prerelease": true
31+
}
32+
],
33+
"plugins": [
34+
[
35+
"@semantic-release/commit-analyzer",
36+
{
37+
"releaseRules": [
38+
{
39+
"type": "*!",
40+
"release": "major"
41+
},
42+
{
43+
"type": "feat",
44+
"release": "minor"
45+
},
46+
{
47+
"type": "build",
48+
"release": "patch"
49+
},
50+
{
51+
"type": "ci",
52+
"release": "patch"
53+
},
54+
{
55+
"type": "chore",
56+
"release": "patch"
57+
},
58+
{
59+
"type": "docs",
60+
"release": "patch"
61+
},
62+
{
63+
"type": "refactor",
64+
"release": "patch"
65+
},
66+
{
67+
"type": "style",
68+
"release": "patch"
69+
},
70+
{
71+
"type": "test",
72+
"release": "patch"
73+
}
74+
],
75+
"parserOpts": {
76+
"noteKeywords": [
77+
"BREAKING CHANGE",
78+
"BREAKING CHANGES",
79+
"BREAKING",
80+
"BREAKING CHANGE!",
81+
"BREAKING CHANGES!",
82+
"BREAKING!"
83+
]
84+
}
85+
}
86+
],
87+
"@semantic-release/release-notes-generator",
88+
[
89+
"@semantic-release/changelog",
90+
{
91+
"changelogTitle": "graphiti-rails changelog",
92+
"changelogFile": "CHANGELOG.md"
93+
}
94+
],
95+
"semantic-release-rubygem",
96+
"@semantic-release/github",
97+
[
98+
"@semantic-release/git",
99+
{
100+
"assets": [
101+
"CHANGELOG.md"
102+
],
103+
"message": "${nextRelease.version} CHANGELOG [skip ci]\n\n${nextRelease.notes}"
104+
}
105+
]
106+
],
107+
"debug": true,
108+
"dryRun": false
109+
}
110+
}

0 commit comments

Comments
 (0)