Skip to content

Commit a8670f3

Browse files
committed
release automation for openai-adapters, llm-info, and fetch
1 parent 4cc1fcc commit a8670f3

File tree

10 files changed

+162
-68
lines changed

10 files changed

+162
-68
lines changed

.github/workflows/release-config-yaml.yml

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,15 @@ on:
44
push:
55
branches:
66
- main
7-
- nate/semantic-release
87
paths:
98
- "packages/config-yaml/**"
109

11-
permissions:
12-
contents: write
13-
issues: write
14-
pull-requests: write
15-
1610
jobs:
1711
release:
18-
name: Release
19-
runs-on: ubuntu-latest
20-
defaults:
21-
run:
22-
working-directory: packages/config-yaml
23-
steps:
24-
- name: Checkout
25-
uses: actions/checkout@v4
26-
with:
27-
fetch-depth: 0
28-
29-
- name: Use Node.js from .nvmrc
30-
uses: actions/setup-node@v4
31-
with:
32-
node-version-file: ".nvmrc"
33-
34-
- name: Install dependencies
35-
run: npm ci
36-
37-
- name: Build
38-
run: npm run build
39-
40-
- name: Run tests
41-
run: npm test
42-
43-
- name: Release
44-
env:
45-
# Requires read/write for issues and contents
46-
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}
47-
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
48-
NODE_AUTH_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
49-
run: npx semantic-release
12+
uses: ./.github/workflows/reusable-release.yml
13+
with:
14+
package-name: "config-yaml"
15+
package-path: "packages/config-yaml"
16+
secrets:
17+
SEMANTIC_RELEASE_GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}
18+
SEMANTIC_RELEASE_NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}

.github/workflows/release-fetch.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Release @continuedev/fetch
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "packages/fetch/**"
9+
10+
jobs:
11+
release:
12+
uses: ./.github/workflows/reusable-release.yml
13+
with:
14+
package-name: "fetch"
15+
package-path: "packages/fetch"
16+
secrets:
17+
SEMANTIC_RELEASE_GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}
18+
SEMANTIC_RELEASE_NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Release @continuedev/llm-info
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "packages/llm-info/**"
9+
10+
jobs:
11+
release:
12+
uses: ./.github/workflows/reusable-release.yml
13+
with:
14+
package-name: "llm-info"
15+
package-path: "packages/llm-info"
16+
secrets:
17+
SEMANTIC_RELEASE_GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}
18+
SEMANTIC_RELEASE_NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Release @continuedev/openai-adapters
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "packages/openai-adapters/**"
9+
10+
jobs:
11+
release:
12+
uses: ./.github/workflows/reusable-release.yml
13+
with:
14+
package-name: "openai-adapters"
15+
package-path: "packages/openai-adapters"
16+
secrets:
17+
SEMANTIC_RELEASE_GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}
18+
SEMANTIC_RELEASE_NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Reusable Release Workflow
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
package-name:
7+
required: true
8+
type: string
9+
package-path:
10+
required: true
11+
type: string
12+
secrets:
13+
SEMANTIC_RELEASE_GITHUB_TOKEN:
14+
required: true
15+
SEMANTIC_RELEASE_NPM_TOKEN:
16+
required: true
17+
18+
permissions:
19+
contents: write
20+
issues: write
21+
pull-requests: write
22+
23+
jobs:
24+
release:
25+
name: Release ${{ inputs.package-name }}
26+
runs-on: ubuntu-latest
27+
defaults:
28+
run:
29+
working-directory: ${{ inputs.package-path }}
30+
steps:
31+
- name: Checkout
32+
uses: actions/checkout@v4
33+
with:
34+
fetch-depth: 0
35+
36+
- name: Use Node.js from .nvmrc
37+
uses: actions/setup-node@v4
38+
with:
39+
node-version-file: ".nvmrc"
40+
41+
- name: Install dependencies
42+
run: npm ci
43+
44+
- name: Build
45+
run: npm run build
46+
47+
- name: Run tests
48+
run: npm test
49+
50+
- name: Release
51+
env:
52+
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}
53+
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
54+
NODE_AUTH_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
55+
run: npx semantic-release
Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,3 @@
1-
export default {
2-
branches: ["main"],
3-
tagFormat: "@continuedev/config-yaml@${version}",
4-
plugins: [
5-
[
6-
"@semantic-release/commit-analyzer",
7-
{
8-
releaseRules: [
9-
// Only release if commits affect this package
10-
{ scope: "packages/config-yaml", release: "patch" },
11-
// { scope: "packages/config-yaml", type: "feat", release: "minor" },
12-
{ scope: "packages/config-yaml", type: "fix", release: "patch" },
13-
{ scope: "packages/config-yaml", breaking: true, release: "major" },
14-
],
15-
},
16-
],
17-
"@semantic-release/release-notes-generator",
18-
"@semantic-release/changelog",
19-
"@semantic-release/npm",
20-
[
21-
"@semantic-release/git",
22-
{
23-
assets: ["CHANGELOG.md", "package.json"],
24-
message:
25-
"chore(release): @continuedev/config-yaml@${nextRelease.version} [skip ci]",
26-
},
27-
],
28-
"@semantic-release/github",
29-
],
30-
};
1+
import createReleaseConfig from "../shared-release.config.js";
2+
3+
export default createReleaseConfig("config-yaml");

packages/fetch/release.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import createReleaseConfig from "../shared-release.config.js";
2+
3+
export default createReleaseConfig("fetch");

packages/llm-info/release.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import createReleaseConfig from "../shared-release.config.js";
2+
3+
export default createReleaseConfig("llm-info");
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import createReleaseConfig from "../shared-release.config.js";
2+
3+
export default createReleaseConfig("openai-adapters");

packages/shared-release.config.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
export default function createReleaseConfig(packageName) {
2+
return {
3+
branches: ["main"],
4+
tagFormat: `@continuedev/${packageName}@\${version}`,
5+
plugins: [
6+
[
7+
"@semantic-release/commit-analyzer",
8+
{
9+
releaseRules: [
10+
{ scope: `packages/${packageName}`, release: "patch" },
11+
{ scope: `packages/${packageName}`, type: "fix", release: "patch" },
12+
{ scope: "packages/config-yaml", type: "feat", release: "minor" },
13+
{
14+
scope: `packages/${packageName}`,
15+
breaking: true,
16+
release: "major",
17+
},
18+
],
19+
},
20+
],
21+
"@semantic-release/release-notes-generator",
22+
"@semantic-release/changelog",
23+
"@semantic-release/npm",
24+
[
25+
"@semantic-release/git",
26+
{
27+
assets: ["CHANGELOG.md", "package.json"],
28+
message: `chore(release): @continuedev/${packageName}@\${nextRelease.version} [skip ci]`,
29+
},
30+
],
31+
"@semantic-release/github",
32+
],
33+
};
34+
}

0 commit comments

Comments
 (0)