Skip to content

Commit c4f2385

Browse files
committed
fix: do not use release-it
1 parent cee86bc commit c4f2385

4 files changed

Lines changed: 79 additions & 38 deletions

File tree

package.json

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,12 @@
6060
"ci-info": "^4.0.0",
6161
"commander": "^11.1.0",
6262
"compressing": "^1.10.0",
63+
"conventional-changelog": "^5.1.0",
64+
"conventional-commits-detector": "^1.0.3",
6365
"cosmiconfig": "^9.0.0",
6466
"dotenv": "^16.4.1",
6567
"esbuild": "^0.19.12",
68+
"execa": "^8.0.1",
6669
"fast-glob": "^3.3.2",
6770
"fs-extra": "^11.2.0",
6871
"lodash": "^4.17.21",
@@ -75,17 +78,25 @@
7578
},
7679
"devDependencies": {
7780
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
81+
"@types/conventional-changelog": "^3.1.5",
7882
"@types/fs-extra": "^11.0.4",
7983
"@types/lodash": "^4.14.202",
80-
"@types/node": "^20.11.9",
84+
"@types/node": "^20.11.16",
8185
"@types/update-notifier": "^6.0.8",
82-
"@typescript-eslint/eslint-plugin": "^6.19.1",
83-
"@typescript-eslint/parser": "^6.19.1",
86+
"@typescript-eslint/eslint-plugin": "^6.20.0",
87+
"@typescript-eslint/parser": "^6.20.0",
8488
"eslint": "^8.56.0",
8589
"eslint-config-prettier": "^9.1.0",
8690
"prettier": "^3.2.4",
8791
"typescript": "^5.3.3"
8892
},
93+
"pnpm": {
94+
"peerDependencyRules": {
95+
"allowAny": [
96+
"node-fetch"
97+
]
98+
}
99+
},
89100
"release-it": {
90101
"git": {
91102
"commitMessage": "chore(publish): release v${version}",

src/config.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -157,19 +157,19 @@ export async function loadConfig(file?: string): Promise<Config> {
157157
extraBuilder: () => {},
158158
addonLint: {},
159159
release: {
160-
releaseIt: {
161-
preReleaseId: "beta",
162-
git: {
163-
tagName: "v${version}",
164-
requireCleanWorkingDir: false,
165-
},
166-
npm: {
167-
publish: false,
168-
},
169-
github: {
170-
assets: [`${userConfig.dist}/*.xpi`],
171-
},
172-
},
160+
// releaseIt: {
161+
// preReleaseId: "beta",
162+
// git: {
163+
// tagName: "v${version}",
164+
// requireCleanWorkingDir: false,
165+
// },
166+
// npm: {
167+
// publish: false,
168+
// },
169+
// github: {
170+
// assets: [`${userConfig.dist}/*.xpi`],
171+
// },
172+
// },
173173
bumpp: {
174174
release: "prompt",
175175
preid: "beta",

src/lib/release.ts

Lines changed: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Base } from "./base.js";
33
import { Octokit } from "@octokit/rest";
44
import versionBump from "bumpp";
55
import ci from "ci-info";
6+
import conventionalChangelog from "conventional-changelog";
67
import { default as glob } from "fast-glob";
78
import fs from "fs-extra";
89
import _ from "lodash";
@@ -46,32 +47,45 @@ export default class Release extends Base {
4647
* release: bump version, run build, git add, git commit, git tag, git push
4748
*/
4849
bump() {
49-
// versionBump(this.config.release.bumpp);
50-
const releaseItConfig: ReleaseItConfig = {
51-
"only-version": true,
52-
};
53-
releaseIt(_.defaultsDeep(releaseItConfig, this.config.release.releaseIt));
50+
versionBump(this.config.release.bumpp);
51+
// const releaseItConfig: ReleaseItConfig = {
52+
// "only-version": true,
53+
// };
54+
// releaseIt(_.defaultsDeep(releaseItConfig, this.config.release.releaseIt));
5455
}
5556

5657
/**
5758
* Create new release and upload XPI to asset
5859
*/
59-
uploadXPI() {
60-
const releaseItConfig: ReleaseItConfig = {
61-
increment: false,
62-
git: {
63-
commit: false,
64-
tag: false,
65-
push: false,
66-
},
67-
github: {
68-
release: true,
69-
},
70-
verbose: 2,
71-
ci: true,
72-
};
73-
74-
releaseIt(_.defaultsDeep(releaseItConfig, this.config.release.releaseIt));
60+
async uploadXPI() {
61+
// const releaseItConfig: ReleaseItConfig = {
62+
// increment: false,
63+
// git: { commit: false, tag: false, push: false },
64+
// github: {
65+
// release: true,
66+
// },
67+
// verbose: 2,
68+
// ci: true,
69+
// };
70+
71+
// releaseIt(_.defaultsDeep(releaseItConfig, this.config.release.releaseIt));
72+
73+
const release = await this.creatRelease({
74+
owner: this.owner,
75+
repo: this.repo,
76+
tag_name: `v${this.version}`,
77+
name: `Release v${this.version}`,
78+
bofy: await this.getChangelog(),
79+
prerelease: this.version.includes("-"),
80+
make_latest: "true",
81+
});
82+
83+
if (!release) throw new Error("Creat release failed!");
84+
85+
this.uploadAsset(
86+
release.id,
87+
path.join(this.config.dist, `${this.xpiName}.xpi`),
88+
);
7589
}
7690

7791
async getReleaseByTag(tag: string) {
@@ -167,6 +181,22 @@ export default class Release extends Base {
167181
}
168182
}
169183

184+
getChangelog() {
185+
return new Promise((resolve, reject) => {
186+
let changelog = "";
187+
conventionalChangelog({ releaseCount: 2 }, { version: this.version })
188+
.on("data", (chunk) => {
189+
changelog += chunk.toString();
190+
})
191+
.on("end", () => {
192+
resolve(changelog);
193+
})
194+
.on("error", (err) => {
195+
reject(err);
196+
});
197+
});
198+
}
199+
170200
getClient(): Octokit {
171201
if (!process.env.GITHUB_TOKEN) throw new Error("No GITHUB_TOKEN.");
172202
const client = new Octokit({

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ export interface ConfigBase {
279279
* 发布相关配置
280280
*/
281281
release: {
282-
releaseIt: Partial<ReleaseItConfig>;
282+
// releaseIt: Partial<ReleaseItConfig>;
283283
bumpp: VersionBumpOptions;
284284
};
285285
/**

0 commit comments

Comments
 (0)