long-git-cli 1.0.13 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/deploy.d.ts +1 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +121 -50
- package/dist/commands/deploy.js.map +1 -1
- package/dist/devops/api/jenkins-client.d.ts +16 -2
- package/dist/devops/api/jenkins-client.d.ts.map +1 -1
- package/dist/devops/api/jenkins-client.js +134 -29
- package/dist/devops/api/jenkins-client.js.map +1 -1
- package/dist/devops/monitor/pipeline-monitor.d.ts +4 -0
- package/dist/devops/monitor/pipeline-monitor.d.ts.map +1 -1
- package/dist/devops/monitor/pipeline-monitor.js +43 -8
- package/dist/devops/monitor/pipeline-monitor.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/jenkins-auto-login.d.ts +41 -0
- package/dist/utils/jenkins-auto-login.d.ts.map +1 -0
- package/dist/utils/jenkins-auto-login.js +189 -0
- package/dist/utils/jenkins-auto-login.js.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqDH,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6UzE"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -15,6 +15,7 @@ const bitbucket_client_1 = require("../devops/api/bitbucket-client");
|
|
|
15
15
|
const jenkins_client_1 = require("../devops/api/jenkins-client");
|
|
16
16
|
const pipeline_monitor_1 = require("../devops/monitor/pipeline-monitor");
|
|
17
17
|
const jenkins_deployer_1 = require("../devops/deployer/jenkins-deployer");
|
|
18
|
+
const jenkins_auto_login_1 = require("../utils/jenkins-auto-login");
|
|
18
19
|
const tag_1 = require("./tag");
|
|
19
20
|
const simple_git_1 = require("simple-git");
|
|
20
21
|
const git = (0, simple_git_1.simpleGit)();
|
|
@@ -154,60 +155,135 @@ async function deployCommand(options) {
|
|
|
154
155
|
}
|
|
155
156
|
console.log(chalk_1.default.gray(`\n部署到: ${environment.name}`));
|
|
156
157
|
console.log(chalk_1.default.gray(`Jenkins Job: ${environment.jenkinsJob}\n`));
|
|
157
|
-
// 3.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
isGitRepo = false;
|
|
158
|
+
// 3. 测试 Jenkins 连接
|
|
159
|
+
console.log(chalk_1.default.cyan("测试 Jenkins 连接..."));
|
|
160
|
+
const jenkinsToken = await configManager.getJenkinsToken("app");
|
|
161
|
+
if (!jenkinsToken) {
|
|
162
|
+
throw new Error("未找到 Jenkins Token");
|
|
165
163
|
}
|
|
166
|
-
|
|
164
|
+
const jenkinsClient = new jenkins_client_1.JenkinsClient(DEPLOY_CONFIG.jenkins.baseUrl, jenkinsConfig.username, jenkinsToken);
|
|
165
|
+
const jenkinsConnected = await jenkinsClient.testConnection();
|
|
166
|
+
if (!jenkinsConnected) {
|
|
167
|
+
console.log(chalk_1.default.yellow("\nJenkins 连接失败,尝试自动登录..."));
|
|
168
|
+
const autoLogin = new jenkins_auto_login_1.JenkinsAutoLogin(DEPLOY_CONFIG.jenkins.baseUrl);
|
|
167
169
|
try {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
170
|
+
// 启动浏览器
|
|
171
|
+
await autoLogin.launch();
|
|
172
|
+
// 尝试自动登录
|
|
173
|
+
const loginSuccess = await autoLogin.login();
|
|
174
|
+
if (loginSuccess) {
|
|
175
|
+
// 登录成功,等待 Session 生效
|
|
176
|
+
console.log(chalk_1.default.cyan('等待 Session 生效...'));
|
|
177
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
178
|
+
// 关闭浏览器
|
|
179
|
+
await autoLogin.close();
|
|
180
|
+
// 重新测试连接
|
|
181
|
+
const retryConnected = await jenkinsClient.testConnection();
|
|
182
|
+
if (retryConnected) {
|
|
183
|
+
console.log(chalk_1.default.green('Jenkins 连接成功\n'));
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
console.log(chalk_1.default.red('连接仍然失败,请检查配置'));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// 自动登录未完成,询问用户
|
|
192
|
+
console.log(chalk_1.default.yellow('\n自动登录未完成'));
|
|
193
|
+
const answer = await inquirer_1.default.prompt([
|
|
194
|
+
{
|
|
195
|
+
type: 'input',
|
|
196
|
+
name: 'continue',
|
|
197
|
+
message: '请在浏览器中完成登录,完成后按回车继续...',
|
|
198
|
+
},
|
|
199
|
+
]);
|
|
200
|
+
// 关闭浏览器
|
|
201
|
+
await autoLogin.close();
|
|
202
|
+
// 重新测试连接
|
|
203
|
+
console.log(chalk_1.default.cyan('\n重新测试 Jenkins 连接...'));
|
|
204
|
+
const retryConnected = await jenkinsClient.testConnection();
|
|
205
|
+
if (retryConnected) {
|
|
206
|
+
console.log(chalk_1.default.green('Jenkins 连接成功\n'));
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
console.log(chalk_1.default.red('连接仍然失败'));
|
|
210
|
+
console.log(chalk_1.default.gray('请确保已在浏览器登录 Jenkins 后重试\n'));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
171
214
|
}
|
|
172
|
-
catch {
|
|
173
|
-
|
|
215
|
+
catch (err) {
|
|
216
|
+
console.error(chalk_1.default.red('自动登录出错:'), err.message);
|
|
217
|
+
await autoLogin.close();
|
|
218
|
+
return;
|
|
174
219
|
}
|
|
175
220
|
}
|
|
176
|
-
|
|
221
|
+
else {
|
|
222
|
+
console.log(chalk_1.default.green('Jenkins 连接成功\n'));
|
|
223
|
+
}
|
|
224
|
+
// 4. 创建或使用指定的 Tag
|
|
177
225
|
let tagName;
|
|
178
|
-
if (
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const tags = await git.tags();
|
|
184
|
-
tagName = tags.latest || "";
|
|
185
|
-
console.log(chalk_1.default.green(` Tag 已创建: ${tagName}\n`));
|
|
226
|
+
if (options.tag) {
|
|
227
|
+
// 使用指定的 tag,跳过创建步骤
|
|
228
|
+
tagName = options.tag;
|
|
229
|
+
console.log(chalk_1.default.cyan("[1/4] 使用指定 Tag"));
|
|
230
|
+
console.log(chalk_1.default.green(` Tag: ${tagName}\n`));
|
|
186
231
|
}
|
|
187
232
|
else {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
233
|
+
// 验证仓库路径
|
|
234
|
+
let isGitRepo = false;
|
|
235
|
+
let isLocalRepo = false;
|
|
236
|
+
try {
|
|
237
|
+
isGitRepo = await git.checkIsRepo();
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
isGitRepo = false;
|
|
241
|
+
}
|
|
242
|
+
if (isGitRepo) {
|
|
243
|
+
try {
|
|
244
|
+
const remotes = await git.getRemotes(true);
|
|
245
|
+
const originUrl = remotes.find((r) => r.name === "origin")?.refs.fetch || "";
|
|
246
|
+
isLocalRepo = originUrl.includes(DEPLOY_CONFIG.project.repoSlug);
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
isLocalRepo = false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// 创建 Tag
|
|
253
|
+
if (isLocalRepo) {
|
|
254
|
+
console.log(chalk_1.default.cyan("[1/4] 创建 Tag (本地 Git)"));
|
|
255
|
+
// 复用 long tag 命令
|
|
256
|
+
await (0, tag_1.tagCommand)({ pass: true });
|
|
257
|
+
// 获取最新 tag
|
|
258
|
+
const tags = await git.tags();
|
|
259
|
+
tagName = tags.latest || "";
|
|
260
|
+
console.log(chalk_1.default.green(` Tag 已创建: ${tagName}\n`));
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
console.log(chalk_1.default.cyan("[1/4] 创建 Tag (Bitbucket API)"));
|
|
264
|
+
// 询问分支
|
|
265
|
+
const branchAnswer = await inquirer_1.default.prompt([
|
|
266
|
+
{
|
|
267
|
+
type: "input",
|
|
268
|
+
name: "branch",
|
|
269
|
+
message: "要从哪个分支创建 tag:",
|
|
270
|
+
validate: (input) => (input.trim() ? true : "分支名称不能为空"),
|
|
271
|
+
},
|
|
272
|
+
]);
|
|
273
|
+
// 通过 API 创建 tag
|
|
274
|
+
const bitbucketToken = await configManager.getBitbucketPassword();
|
|
275
|
+
if (!bitbucketToken) {
|
|
276
|
+
throw new Error("未找到 Bitbucket Token");
|
|
277
|
+
}
|
|
278
|
+
const bitbucketClient = new bitbucket_client_1.BitbucketClient(config.bitbucket.username, bitbucketToken);
|
|
279
|
+
// 获取分支最新 commit
|
|
280
|
+
const commitHash = await bitbucketClient.getBranchLatestCommit(DEPLOY_CONFIG.project.workspace, DEPLOY_CONFIG.project.repoSlug, branchAnswer.branch);
|
|
281
|
+
// 生成 tag 名称
|
|
282
|
+
tagName = await generateNextTag(bitbucketClient);
|
|
283
|
+
// 创建 tag
|
|
284
|
+
await bitbucketClient.createTag(DEPLOY_CONFIG.project.workspace, DEPLOY_CONFIG.project.repoSlug, tagName, commitHash);
|
|
285
|
+
console.log(chalk_1.default.green(` Tag 已创建: ${tagName}\n`));
|
|
202
286
|
}
|
|
203
|
-
const bitbucketClient = new bitbucket_client_1.BitbucketClient(config.bitbucket.username, bitbucketToken);
|
|
204
|
-
// 获取分支最新 commit
|
|
205
|
-
const commitHash = await bitbucketClient.getBranchLatestCommit(DEPLOY_CONFIG.project.workspace, DEPLOY_CONFIG.project.repoSlug, branchAnswer.branch);
|
|
206
|
-
// 生成 tag 名称
|
|
207
|
-
tagName = await generateNextTag(bitbucketClient);
|
|
208
|
-
// 创建 tag
|
|
209
|
-
await bitbucketClient.createTag(DEPLOY_CONFIG.project.workspace, DEPLOY_CONFIG.project.repoSlug, tagName, commitHash);
|
|
210
|
-
console.log(chalk_1.default.green(` Tag 已创建: ${tagName}\n`));
|
|
211
287
|
}
|
|
212
288
|
// 5. 监听构建状态
|
|
213
289
|
console.log(chalk_1.default.cyan("[2/4] 监听构建状态"));
|
|
@@ -221,11 +297,6 @@ async function deployCommand(options) {
|
|
|
221
297
|
console.log(chalk_1.default.green(" 构建完成\n"));
|
|
222
298
|
// 6. 触发 Jenkins 部署
|
|
223
299
|
console.log(chalk_1.default.cyan("[3/4] 触发 Jenkins 部署"));
|
|
224
|
-
const jenkinsToken = await configManager.getJenkinsToken("app");
|
|
225
|
-
if (!jenkinsToken) {
|
|
226
|
-
throw new Error("未找到 Jenkins Token");
|
|
227
|
-
}
|
|
228
|
-
const jenkinsClient = new jenkins_client_1.JenkinsClient(DEPLOY_CONFIG.jenkins.baseUrl, jenkinsConfig.username, jenkinsToken);
|
|
229
300
|
const jenkinsDeployer = new jenkins_deployer_1.JenkinsDeployer(jenkinsClient);
|
|
230
301
|
console.log(chalk_1.default.cyan("[4/4] 监听部署状态"));
|
|
231
302
|
const buildInfo = await jenkinsDeployer.deploy(environment.jenkinsJob, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AA4DH,sCA+PC;AAzTD,kDAA0B;AAC1B,wDAAgC;AAChC,oEAAgE;AAChE,qEAAiE;AACjE,iEAA6D;AAC7D,yEAAqE;AACrE,0EAAsE;AACtE,+BAAmC;AACnC,2CAAuC;AAEvC,MAAM,GAAG,GAAG,IAAA,sBAAS,GAAE,CAAC;AAExB,QAAQ;AACR,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,oBAAoB;QAC9B,OAAO,EAAE,uDAAuD;QAChE,SAAS,EAAE,kBAAkB;KAC9B;IACD,SAAS,EAAE;QACT,OAAO,EAAE,uDAAuD;KACjE;IACD,OAAO,EAAE;QACP,OAAO,EAAE,+BAA+B;KACzC;IACD,YAAY,EAAE;QACZ;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,wCAAwC;SACrD;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,yCAAyC;SACtD;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,yCAAyC;SACtD;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,yCAAyC;SACtD;KACF;CACF,CAAC;AAOF;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,eAAe;IACf,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAErD,UAAU;QACV,MAAM,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;QAErD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAEpD,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClD,MAAM,gBAAgB,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC7C;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;iBACvD;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,sBAAsB;oBAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;iBAC1D;aACF,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,aAAa,CAAC,qBAAqB,CACvC,gBAAgB,CAAC,QAAQ,EACzB,gBAAgB,CAAC,KAAK,CACvB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAE9C,sBAAsB;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC3C;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;iBACvD;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,oBAAoB;oBAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;iBAC1D;aACF,CAAC,CAAC;YAEH,gBAAgB;YAChB,MAAM,aAAa,CAAC,kBAAkB,CACpC,KAAK,EACL,aAAa,CAAC,OAAO,CAAC,OAAO,EAC7B,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,KAAK,CACrB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhD,UAAU;QACV,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,YAAY;QACZ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,UAAU;QACV,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;QAExB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACnC;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAChD,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,GAAG;wBAClD,KAAK,EAAE,GAAG,CAAC,EAAE;qBACd,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;YACH,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QAEpE,YAAY;QACZ,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7E,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,YAAY;QACZ,IAAI,OAAe,CAAC;QAEpB,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,iBAAiB;YACjB,MAAM,IAAA,gBAAU,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,WAAW;YACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,OAAO,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAExD,OAAO;YACP,MAAM,YAAY,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACzC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;iBACxD;aACF,CAAC,CAAC;YAEH,gBAAgB;YAChB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAClE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,kCAAe,CACzC,MAAM,CAAC,SAAS,CAAC,QAAQ,EACzB,cAAc,CACf,CAAC;YAEF,gBAAgB;YAChB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAC5D,aAAa,CAAC,OAAO,CAAC,SAAS,EAC/B,aAAa,CAAC,OAAO,CAAC,QAAQ,EAC9B,YAAY,CAAC,MAAM,CACpB,CAAC;YAEF,YAAY;YACZ,OAAO,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;YAEjD,SAAS;YACT,MAAM,eAAe,CAAC,SAAS,CAC7B,aAAa,CAAC,OAAO,CAAC,SAAS,EAC/B,aAAa,CAAC,OAAO,CAAC,QAAQ,EAC9B,OAAO,EACP,UAAU,CACX,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,OAAO,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,YAAY;QACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAExC,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;QAClE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,kCAAe,CACzC,MAAM,CAAC,SAAS,CAAC,QAAQ,EACzB,cAAc,CACf,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,eAAe,CAAC,CAAC;QAE7D,MAAM,eAAe,CAAC,kBAAkB,CACtC,aAAa,CAAC,OAAO,CAAC,SAAS,EAC/B,aAAa,CAAC,OAAO,CAAC,QAAQ,EAC9B,OAAO,CACR,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAErC,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,8BAAa,CACrC,aAAa,CAAC,OAAO,CAAC,OAAO,EAC7B,aAAa,CAAC,QAAQ,EACtB,YAAY,CACb,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,aAAa,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE;YACrE,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,SAAS,CAAC,MAAM,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,CAC/E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,MAAuB;IACpD,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B,aAAa,CAAC,OAAO,CAAC,SAAS,EAC/B,aAAa,CAAC,OAAO,CAAC,QAAQ,CAC/B,CAAC;QAEF,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI;aAClB,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACnD,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,cAAc;QACd,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACrD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,UAAU,GAAG,OAAO,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS;QACT,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,eAAe,UAAU,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACjD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,aAA4B,EAC5B,MAAW,EACX,aAAkB;IAElB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElC,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;QAClE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,kCAAe,CACzC,MAAM,CAAC,SAAS,CAAC,QAAQ,EACzB,cAAc,CACf,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnC,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACrD,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,8BAAa,CACrC,aAAa,CAAC,OAAO,CAAC,OAAO,EAC7B,aAAa,CAAC,QAAQ,EACtB,YAAY,CACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnC,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACrD,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,OAAO;IACP,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,12 +38,26 @@ export declare class JenkinsClient {
|
|
|
38
38
|
*/
|
|
39
39
|
testConnection(): Promise<boolean>;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* 获取 Jenkins Crumb(实时获取,不缓存)
|
|
42
|
+
* @returns Crumb 信息,如果 Jenkins 未启用 CSRF 保护则返回 null
|
|
43
|
+
*/
|
|
44
|
+
private getCrumbRealtime;
|
|
45
|
+
/**
|
|
46
|
+
* 触发构建(单次尝试)
|
|
47
|
+
* @param jobName Job 名称
|
|
48
|
+
* @param parameters 构建参数
|
|
49
|
+
* @param crumb Crumb 信息
|
|
50
|
+
* @returns 队列 ID
|
|
51
|
+
*/
|
|
52
|
+
private triggerBuildOnce;
|
|
53
|
+
/**
|
|
54
|
+
* 触发构建(生产级实现,带重试)
|
|
42
55
|
* @param jobName Job 名称(可以包含文件夹路径,如 "folder/job-name")
|
|
43
56
|
* @param parameters 构建参数
|
|
57
|
+
* @param maxRetries 最大重试次数,默认 1
|
|
44
58
|
* @returns 队列 ID
|
|
45
59
|
*/
|
|
46
|
-
triggerBuild(jobName: string, parameters: Record<string, string
|
|
60
|
+
triggerBuild(jobName: string, parameters: Record<string, string>, maxRetries?: number): Promise<string>;
|
|
47
61
|
/**
|
|
48
62
|
* 获取队列项信息
|
|
49
63
|
* @param queueId 队列 ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins-client.d.ts","sourceRoot":"","sources":["../../../src/devops/api/jenkins-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgBD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAmB/D;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"jenkins-client.d.ts","sourceRoot":"","sources":["../../../src/devops/api/jenkins-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgBD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAmB/D;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA4CxC;;;OAGG;YACW,gBAAgB;IAoB9B;;;;;;OAMG;YACW,gBAAgB;IA+C9B;;;;;;OAMG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,MAAM,CAAC;IA6ClB;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY/D;;;;;OAKG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAuB5B;;;;;;OAMG;IACG,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC;IAkC5B;;;;;OAKG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,MAAM,CAAC;IA4BlB;;;;;;OAMG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC;IAW5B;;;OAGG;IACH,OAAO,CAAC,KAAK;IAIb;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAqBpB"}
|
|
@@ -43,50 +43,155 @@ class JenkinsClient {
|
|
|
43
43
|
*/
|
|
44
44
|
async testConnection() {
|
|
45
45
|
try {
|
|
46
|
-
//
|
|
46
|
+
// 直接测试连接,不需要 crumb(使用 API Token 时)
|
|
47
47
|
await this.client.get("/api/json");
|
|
48
|
+
console.log('Jenkins 连接测试成功');
|
|
48
49
|
return true;
|
|
49
50
|
}
|
|
50
51
|
catch (error) {
|
|
52
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
53
|
+
const axiosError = error;
|
|
54
|
+
if (axiosError.response) {
|
|
55
|
+
console.error('Jenkins 连接失败:', {
|
|
56
|
+
status: axiosError.response.status,
|
|
57
|
+
statusText: axiosError.response.statusText,
|
|
58
|
+
data: typeof axiosError.response.data === 'string'
|
|
59
|
+
? axiosError.response.data.substring(0, 200)
|
|
60
|
+
: axiosError.response.data,
|
|
61
|
+
});
|
|
62
|
+
if (axiosError.response.status === 403) {
|
|
63
|
+
console.error('\n检测到 Jenkins SSO 认证问题:');
|
|
64
|
+
console.error('你的 Jenkins 使用了 OpenID Connect (SSO) 认证');
|
|
65
|
+
console.error('API Token 需要浏览器 Session 才能工作\n');
|
|
66
|
+
console.error('解决方法:');
|
|
67
|
+
console.error('1. 在浏览器打开:' + this.baseUrl);
|
|
68
|
+
console.error('2. 登录你的账号(通过 SSO)');
|
|
69
|
+
console.error('3. 保持浏览器标签页打开');
|
|
70
|
+
console.error('4. 重新运行此命令\n');
|
|
71
|
+
console.error('这是 Jenkins OpenID Connect 插件的已知限制');
|
|
72
|
+
console.error('详见:https://github.com/jenkinsci/oic-auth-plugin/issues/41');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else if (axiosError.request) {
|
|
76
|
+
console.error('Jenkins 连接失败: 网络错误,无法连接到 Jenkins');
|
|
77
|
+
console.error('错误代码:', axiosError.code);
|
|
78
|
+
console.error('错误消息:', axiosError.message);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.error('Jenkins 连接失败:', axiosError.message);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
console.error('Jenkins 连接失败:', error);
|
|
86
|
+
}
|
|
51
87
|
return false;
|
|
52
88
|
}
|
|
53
89
|
}
|
|
54
90
|
/**
|
|
55
|
-
*
|
|
91
|
+
* 获取 Jenkins Crumb(实时获取,不缓存)
|
|
92
|
+
* @returns Crumb 信息,如果 Jenkins 未启用 CSRF 保护则返回 null
|
|
93
|
+
*/
|
|
94
|
+
async getCrumbRealtime() {
|
|
95
|
+
try {
|
|
96
|
+
const response = await this.client.get('/crumbIssuer/api/json');
|
|
97
|
+
return {
|
|
98
|
+
field: response.data.crumbRequestField,
|
|
99
|
+
value: response.data.crumb,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
104
|
+
const axiosError = error;
|
|
105
|
+
if (axiosError.response?.status === 404) {
|
|
106
|
+
// Jenkins 未启用 CSRF 保护
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// 其他错误抛出
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 触发构建(单次尝试)
|
|
116
|
+
* @param jobName Job 名称
|
|
117
|
+
* @param parameters 构建参数
|
|
118
|
+
* @param crumb Crumb 信息
|
|
119
|
+
* @returns 队列 ID
|
|
120
|
+
*/
|
|
121
|
+
async triggerBuildOnce(jobName, parameters, crumb) {
|
|
122
|
+
// 处理文件夹路径:将 "folder/job" 转换为 "/job/folder/job/job"
|
|
123
|
+
const jobPath = jobName.split('/').map(part => `job/${encodeURIComponent(part)}`).join('/');
|
|
124
|
+
// 准备请求头
|
|
125
|
+
const headers = {
|
|
126
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
127
|
+
};
|
|
128
|
+
// 如果有 Crumb,添加到请求头
|
|
129
|
+
if (crumb) {
|
|
130
|
+
headers[crumb.field] = crumb.value;
|
|
131
|
+
}
|
|
132
|
+
// 将参数转换为 URLSearchParams
|
|
133
|
+
const formData = new URLSearchParams();
|
|
134
|
+
Object.entries(parameters).forEach(([key, value]) => {
|
|
135
|
+
formData.append(key, value);
|
|
136
|
+
});
|
|
137
|
+
// 触发带参数的构建
|
|
138
|
+
const response = await this.client.post(`/${jobPath}/buildWithParameters`, formData.toString(), { headers });
|
|
139
|
+
// Jenkins 返回 201 状态码,Location header 包含队列 URL
|
|
140
|
+
const location = response.headers["location"];
|
|
141
|
+
if (!location) {
|
|
142
|
+
throw new Error("未获取到队列 URL");
|
|
143
|
+
}
|
|
144
|
+
// 从 Location 中提取队列 ID
|
|
145
|
+
// 格式: http://jenkins.example.com/queue/item/123/
|
|
146
|
+
const queueIdMatch = location.match(/\/queue\/item\/(\d+)/);
|
|
147
|
+
if (!queueIdMatch) {
|
|
148
|
+
throw new Error("无法解析队列 ID");
|
|
149
|
+
}
|
|
150
|
+
return queueIdMatch[1];
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* 触发构建(生产级实现,带重试)
|
|
56
154
|
* @param jobName Job 名称(可以包含文件夹路径,如 "folder/job-name")
|
|
57
155
|
* @param parameters 构建参数
|
|
156
|
+
* @param maxRetries 最大重试次数,默认 1
|
|
58
157
|
* @returns 队列 ID
|
|
59
158
|
*/
|
|
60
|
-
async triggerBuild(jobName, parameters) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
params: parameters,
|
|
72
|
-
});
|
|
73
|
-
// Jenkins 返回 201 状态码,Location header 包含队列 URL
|
|
74
|
-
const location = response.headers["location"];
|
|
75
|
-
if (!location) {
|
|
76
|
-
throw new Error("未获取到队列 URL");
|
|
159
|
+
async triggerBuild(jobName, parameters, maxRetries = 1) {
|
|
160
|
+
let lastError = null;
|
|
161
|
+
let attempt = 0;
|
|
162
|
+
while (attempt <= maxRetries) {
|
|
163
|
+
try {
|
|
164
|
+
// 1. 实时获取 Crumb(每次都重新获取,不缓存)
|
|
165
|
+
const crumb = await this.getCrumbRealtime();
|
|
166
|
+
// 2. 立即使用 Crumb 触发构建
|
|
167
|
+
const queueId = await this.triggerBuildOnce(jobName, parameters, crumb);
|
|
168
|
+
// 3. 成功,返回结果
|
|
169
|
+
return queueId;
|
|
77
170
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
171
|
+
catch (error) {
|
|
172
|
+
lastError = error;
|
|
173
|
+
// 检查是否是 403 错误
|
|
174
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
175
|
+
const axiosError = error;
|
|
176
|
+
if (axiosError.response?.status === 403) {
|
|
177
|
+
console.warn(`Jenkins 返回 403 (尝试 ${attempt + 1}/${maxRetries + 1})`);
|
|
178
|
+
// 如果还有重试次数,继续重试
|
|
179
|
+
if (attempt < maxRetries) {
|
|
180
|
+
attempt++;
|
|
181
|
+
console.log(`准备重试 (${attempt}/${maxRetries})...`);
|
|
182
|
+
// 等待 1 秒后重试
|
|
183
|
+
await this.sleep(1000);
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// 其他错误或重试次数用尽,抛出错误
|
|
189
|
+
this.handleError(error, "触发构建失败");
|
|
190
|
+
throw error;
|
|
83
191
|
}
|
|
84
|
-
return queueIdMatch[1];
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
this.handleError(error, "触发构建失败");
|
|
88
|
-
throw error;
|
|
89
192
|
}
|
|
193
|
+
// 所有尝试都失败
|
|
194
|
+
throw lastError || new Error("触发构建失败");
|
|
90
195
|
}
|
|
91
196
|
/**
|
|
92
197
|
* 获取队列项信息
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins-client.js","sourceRoot":"","sources":["../../../src/devops/api/jenkins-client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,kDAAyD;AAKzD,4CAGsB;AA+BtB;;GAEG;AACH,MAAa,aAAa;IAMxB;;;;;OAKG;IACH,YAAY,OAAe,EAAE,QAAgB,EAAE,QAAgB;QAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,OAAO,EAAE,KAAK,EAAE,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,
|
|
1
|
+
{"version":3,"file":"jenkins-client.js","sourceRoot":"","sources":["../../../src/devops/api/jenkins-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-monitor.d.ts","sourceRoot":"","sources":["../../../src/devops/monitor/pipeline-monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAkB;gBAE7B,eAAe,EAAE,eAAe;IAI5C;;;;;;;OAOG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-monitor.d.ts","sourceRoot":"","sources":["../../../src/devops/monitor/pipeline-monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAkB;gBAE7B,eAAe,EAAE,eAAe;IAI5C;;;;;;;OAOG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,GAAG,CAAC;IAuGf;;;;;;;OAOG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,cAAc,CAAC;IA6E1B;;OAEG;YACW,iBAAiB;IAe/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,cAAc;CAqBvB"}
|
|
@@ -24,17 +24,17 @@ class PipelineMonitor {
|
|
|
24
24
|
const { pollInterval = 15000, // 默认 15 秒
|
|
25
25
|
timeout = 30 * 60 * 1000, // 默认 30 分钟
|
|
26
26
|
onProgress, } = options;
|
|
27
|
-
const startTime = Date.now();
|
|
28
27
|
console.log(`获取 tag ${tagName} 的 commit hash...`);
|
|
29
28
|
/** 获取 tag 对应的 commit hash */
|
|
30
29
|
const commitHash = await this.bitbucketClient.getTagCommit(workspace, repoSlug, tagName);
|
|
31
30
|
console.log(`Commit hash: ${commitHash.substring(0, 7)}`);
|
|
32
31
|
console.log(`等待 build status 出现...`);
|
|
33
|
-
/** 等待 build status 出现(最多等待 2
|
|
32
|
+
/** 等待 build status 出现(最多等待 2 分钟,独立计时) */
|
|
34
33
|
let buildStatuses = [];
|
|
35
34
|
const maxWaitTime = 2 * 60 * 1000; // 2 分钟
|
|
36
35
|
const checkInterval = 5000; // 5 秒检查一次
|
|
37
|
-
|
|
36
|
+
const waitStartTime = Date.now();
|
|
37
|
+
while (buildStatuses.length === 0 && Date.now() - waitStartTime < maxWaitTime) {
|
|
38
38
|
buildStatuses = await this.bitbucketClient.getCommitBuildStatus(workspace, repoSlug, commitHash);
|
|
39
39
|
if (buildStatuses.length === 0) {
|
|
40
40
|
console.log(`Build status 尚未出现,等待 ${checkInterval / 1000} 秒后重试...`);
|
|
@@ -45,14 +45,27 @@ class PipelineMonitor {
|
|
|
45
45
|
throw new Error(`未找到 commit ${commitHash.substring(0, 7)} 的 build status,可能构建尚未触发`);
|
|
46
46
|
}
|
|
47
47
|
console.log(`开始监听 build status...`);
|
|
48
|
+
/** 重置开始时间,开始 30 分钟的监听 */
|
|
49
|
+
const monitorStartTime = Date.now();
|
|
48
50
|
/** 轮询 build status */
|
|
49
51
|
while (true) {
|
|
50
|
-
/**
|
|
51
|
-
if (Date.now() -
|
|
52
|
+
/** 检查超时(从找到 build status 后开始计时) */
|
|
53
|
+
if (Date.now() - monitorStartTime > timeout) {
|
|
52
54
|
throw new Error(`Build status 监听超时 (${timeout / 1000}秒)`);
|
|
53
55
|
}
|
|
54
|
-
/**
|
|
55
|
-
|
|
56
|
+
/** 获取最新状态(带重试) */
|
|
57
|
+
try {
|
|
58
|
+
buildStatuses = await this.bitbucketClient.getCommitBuildStatus(workspace, repoSlug, commitHash);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// 网络错误重试
|
|
62
|
+
if (this.isNetworkError(error)) {
|
|
63
|
+
console.log(`网络错误,5秒后重试...`);
|
|
64
|
+
await this.sleep(5000);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
56
69
|
/** 检查是否所有 build 都完成 */
|
|
57
70
|
const allCompleted = buildStatuses.every((status) => {
|
|
58
71
|
return ['SUCCESSFUL', 'FAILED', 'STOPPED'].includes(status.state);
|
|
@@ -64,7 +77,7 @@ class PipelineMonitor {
|
|
|
64
77
|
if (onProgress) {
|
|
65
78
|
onProgress({ statuses: buildStatuses });
|
|
66
79
|
}
|
|
67
|
-
console.log(`Build status: ${buildStatuses.map((s) => `${s.name || s.key}=${s.state}`).join(', ')} (${this.getElapsedTime(
|
|
80
|
+
console.log(`Build status: ${buildStatuses.map((s) => `${s.name || s.key}=${s.state}`).join(', ')} (${this.getElapsedTime(monitorStartTime)})`);
|
|
68
81
|
if (allCompleted) {
|
|
69
82
|
if (anyFailed) {
|
|
70
83
|
throw new Error(`构建失败`);
|
|
@@ -165,6 +178,28 @@ class PipelineMonitor {
|
|
|
165
178
|
sleep(ms) {
|
|
166
179
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
167
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* 判断是否为网络错误
|
|
183
|
+
*/
|
|
184
|
+
isNetworkError(error) {
|
|
185
|
+
if (!error)
|
|
186
|
+
return false;
|
|
187
|
+
const errorCode = error.code;
|
|
188
|
+
const errorMessage = error.message?.toLowerCase() || '';
|
|
189
|
+
// 常见的网络错误代码
|
|
190
|
+
const networkErrorCodes = [
|
|
191
|
+
'ECONNRESET',
|
|
192
|
+
'ETIMEDOUT',
|
|
193
|
+
'ECONNREFUSED',
|
|
194
|
+
'ENOTFOUND',
|
|
195
|
+
'ENETUNREACH',
|
|
196
|
+
'EAI_AGAIN',
|
|
197
|
+
];
|
|
198
|
+
return networkErrorCodes.includes(errorCode) ||
|
|
199
|
+
errorMessage.includes('network') ||
|
|
200
|
+
errorMessage.includes('timeout') ||
|
|
201
|
+
errorMessage.includes('econnreset');
|
|
202
|
+
}
|
|
168
203
|
}
|
|
169
204
|
exports.PipelineMonitor = PipelineMonitor;
|
|
170
205
|
//# sourceMappingURL=pipeline-monitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-monitor.js","sourceRoot":"","sources":["../../../src/devops/monitor/pipeline-monitor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKH;;GAEG;AACH,MAAa,eAAe;IAG1B,YAAY,eAAgC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,UAAuB,EAAE;QAEzB,MAAM,EACJ,YAAY,GAAG,KAAK,EAAE,UAAU;QAChC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;QACrC,UAAU,GACX,GAAG,OAAO,CAAC;QAEZ,
|
|
1
|
+
{"version":3,"file":"pipeline-monitor.js","sourceRoot":"","sources":["../../../src/devops/monitor/pipeline-monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,6 +43,7 @@ program
|
|
|
43
43
|
.description('部署 frontend-msg-admin 到测试环境')
|
|
44
44
|
.option('-e, --env <number>', '指定环境 (1-4)', parseInt)
|
|
45
45
|
.option('-t, --test', '测试 Bitbucket 和 Jenkins 连接')
|
|
46
|
+
.option('--tag <tagName>', '使用指定的 tag 继续部署(跳过创建 tag 步骤)')
|
|
46
47
|
.action(async (options) => {
|
|
47
48
|
try {
|
|
48
49
|
await (0, deploy_1.deployCommand)(options);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,wCAA4C;AAC5C,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,kDAA0B;AAC1B,mEAAkC;AAElC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6BAA6B,CAAC;KAC1C,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC,CAAC;AAExB,YAAY;AACZ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC;KAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,IAAA,gBAAU,EAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,sBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,oBAAoB,EAAE,YAAY,EAAE,QAAQ,CAAC;KACpD,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,GAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,wCAA4C;AAC5C,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,kDAA0B;AAC1B,mEAAkC;AAElC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6BAA6B,CAAC;KAC1C,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC,CAAC;AAExB,YAAY;AACZ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC;KAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,IAAA,gBAAU,EAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,sBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,oBAAoB,EAAE,YAAY,EAAE,QAAQ,CAAC;KACpD,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,IAAA,sBAAa,GAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jenkins 自动登录工具
|
|
3
|
+
* 使用 Puppeteer 自动打开浏览器并完成登录
|
|
4
|
+
*/
|
|
5
|
+
export declare class JenkinsAutoLogin {
|
|
6
|
+
private browser;
|
|
7
|
+
private page;
|
|
8
|
+
private userDataDir;
|
|
9
|
+
private jenkinsUrl;
|
|
10
|
+
constructor(jenkinsUrl: string);
|
|
11
|
+
/**
|
|
12
|
+
* 启动浏览器
|
|
13
|
+
*/
|
|
14
|
+
launch(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* 自动登录 Jenkins
|
|
17
|
+
* @returns 是否登录成功
|
|
18
|
+
*/
|
|
19
|
+
login(): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* 检查是否已登录
|
|
22
|
+
*/
|
|
23
|
+
private checkLoginStatus;
|
|
24
|
+
/**
|
|
25
|
+
* 查找并点击登录按钮
|
|
26
|
+
*/
|
|
27
|
+
private clickLoginButton;
|
|
28
|
+
/**
|
|
29
|
+
* 等待登录完成
|
|
30
|
+
*/
|
|
31
|
+
private waitForLoginComplete;
|
|
32
|
+
/**
|
|
33
|
+
* 关闭浏览器
|
|
34
|
+
*/
|
|
35
|
+
close(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* 睡眠
|
|
38
|
+
*/
|
|
39
|
+
private sleep;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=jenkins-auto-login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jenkins-auto-login.d.ts","sourceRoot":"","sources":["../../src/utils/jenkins-auto-login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,EAAE,MAAM;IAM9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB7B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAqD/B;;OAEG;YACW,gBAAgB;IAsB9B;;OAEG;YACW,gBAAgB;IAwC9B;;OAEG;YACW,oBAAoB;IAqBlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Jenkins 自动登录工具
|
|
4
|
+
* 使用 Puppeteer 自动打开浏览器并完成登录
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.JenkinsAutoLogin = void 0;
|
|
11
|
+
const puppeteer_1 = __importDefault(require("puppeteer"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const os_1 = __importDefault(require("os"));
|
|
14
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
15
|
+
class JenkinsAutoLogin {
|
|
16
|
+
constructor(jenkinsUrl) {
|
|
17
|
+
this.browser = null;
|
|
18
|
+
this.page = null;
|
|
19
|
+
this.jenkinsUrl = jenkinsUrl;
|
|
20
|
+
// 使用专门的配置目录,保存登录状态
|
|
21
|
+
this.userDataDir = path_1.default.join(os_1.default.homedir(), '.long-cli', 'chrome-profile');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 启动浏览器
|
|
25
|
+
*/
|
|
26
|
+
async launch() {
|
|
27
|
+
console.log(chalk_1.default.cyan('启动浏览器...'));
|
|
28
|
+
this.browser = await puppeteer_1.default.launch({
|
|
29
|
+
headless: false, // 显示浏览器
|
|
30
|
+
userDataDir: this.userDataDir, // 使用专门的配置目录
|
|
31
|
+
defaultViewport: null,
|
|
32
|
+
args: [
|
|
33
|
+
'--no-sandbox',
|
|
34
|
+
'--disable-setuid-sandbox',
|
|
35
|
+
'--disable-dev-shm-usage',
|
|
36
|
+
'--disable-blink-features=AutomationControlled', // 隐藏自动化特征
|
|
37
|
+
],
|
|
38
|
+
});
|
|
39
|
+
this.page = await this.browser.newPage();
|
|
40
|
+
// 设置超时
|
|
41
|
+
this.page.setDefaultTimeout(30000);
|
|
42
|
+
console.log(chalk_1.default.green('浏览器已启动'));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 自动登录 Jenkins
|
|
46
|
+
* @returns 是否登录成功
|
|
47
|
+
*/
|
|
48
|
+
async login() {
|
|
49
|
+
if (!this.page) {
|
|
50
|
+
throw new Error('浏览器未启动');
|
|
51
|
+
}
|
|
52
|
+
console.log(chalk_1.default.cyan(`正在访问 Jenkins: ${this.jenkinsUrl}`));
|
|
53
|
+
try {
|
|
54
|
+
// 1. 打开 Jenkins
|
|
55
|
+
await this.page.goto(this.jenkinsUrl, {
|
|
56
|
+
waitUntil: 'networkidle2',
|
|
57
|
+
timeout: 30000,
|
|
58
|
+
});
|
|
59
|
+
// 等待页面加载
|
|
60
|
+
await this.sleep(2000);
|
|
61
|
+
// 2. 检查是否已经登录
|
|
62
|
+
const isLoggedIn = await this.checkLoginStatus();
|
|
63
|
+
if (isLoggedIn) {
|
|
64
|
+
console.log(chalk_1.default.green('✓ 已经登录'));
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
console.log(chalk_1.default.yellow('检测到未登录,尝试自动登录...'));
|
|
68
|
+
// 3. 查找并点击登录按钮
|
|
69
|
+
const clicked = await this.clickLoginButton();
|
|
70
|
+
if (!clicked) {
|
|
71
|
+
console.log(chalk_1.default.yellow('未找到登录按钮'));
|
|
72
|
+
console.log(chalk_1.default.cyan('请在浏览器中手动完成登录...'));
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
// 4. 等待登录完成
|
|
76
|
+
const loginSuccess = await this.waitForLoginComplete();
|
|
77
|
+
if (loginSuccess) {
|
|
78
|
+
console.log(chalk_1.default.green('✓ 登录成功!'));
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.log(chalk_1.default.yellow('等待登录超时'));
|
|
83
|
+
console.log(chalk_1.default.cyan('请在浏览器中手动完成登录...'));
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.error(chalk_1.default.red('登录过程出错:'), err.message);
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 检查是否已登录
|
|
94
|
+
*/
|
|
95
|
+
async checkLoginStatus() {
|
|
96
|
+
if (!this.page)
|
|
97
|
+
return false;
|
|
98
|
+
try {
|
|
99
|
+
const hasLoginButton = await this.page.evaluate(() => {
|
|
100
|
+
// 检查页面是否包含登录相关元素
|
|
101
|
+
// @ts-ignore - 在浏览器环境中执行
|
|
102
|
+
const body = document.body.innerHTML;
|
|
103
|
+
return (body.includes('securityRealm') ||
|
|
104
|
+
body.includes('login') ||
|
|
105
|
+
// @ts-ignore - 在浏览器环境中执行
|
|
106
|
+
document.querySelector('a[href*="securityRealm"]') !== null);
|
|
107
|
+
});
|
|
108
|
+
return !hasLoginButton;
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 查找并点击登录按钮
|
|
116
|
+
*/
|
|
117
|
+
async clickLoginButton() {
|
|
118
|
+
if (!this.page)
|
|
119
|
+
return false;
|
|
120
|
+
try {
|
|
121
|
+
// 尝试多种可能的选择器
|
|
122
|
+
const selectors = [
|
|
123
|
+
'a[href*="securityRealm"]', // Jenkins SSO 登录链接
|
|
124
|
+
'a[href*="login"]',
|
|
125
|
+
'button:has-text("Login")',
|
|
126
|
+
'button:has-text("Log in")',
|
|
127
|
+
'.login-button',
|
|
128
|
+
'#login-button',
|
|
129
|
+
];
|
|
130
|
+
for (const selector of selectors) {
|
|
131
|
+
try {
|
|
132
|
+
// 等待元素出现
|
|
133
|
+
await this.page.waitForSelector(selector, { timeout: 2000 });
|
|
134
|
+
console.log(chalk_1.default.cyan(`找到登录按钮: ${selector}`));
|
|
135
|
+
// 点击按钮
|
|
136
|
+
await this.page.click(selector);
|
|
137
|
+
console.log(chalk_1.default.green('已点击登录按钮'));
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
// 继续尝试下一个选择器
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
console.error(chalk_1.default.red('点击登录按钮失败:'), err);
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* 等待登录完成
|
|
154
|
+
*/
|
|
155
|
+
async waitForLoginComplete() {
|
|
156
|
+
if (!this.page)
|
|
157
|
+
return false;
|
|
158
|
+
console.log(chalk_1.default.cyan('等待登录完成...'));
|
|
159
|
+
try {
|
|
160
|
+
// 等待 Jenkins 主页面元素出现
|
|
161
|
+
await this.page.waitForSelector('.jenkins-header, #header, .page-header, #main-panel', { timeout: 60000 });
|
|
162
|
+
// 额外等待,确保页面完全加载
|
|
163
|
+
await this.sleep(2000);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* 关闭浏览器
|
|
172
|
+
*/
|
|
173
|
+
async close() {
|
|
174
|
+
if (this.browser) {
|
|
175
|
+
console.log(chalk_1.default.gray('关闭浏览器...'));
|
|
176
|
+
await this.browser.close();
|
|
177
|
+
this.browser = null;
|
|
178
|
+
this.page = null;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* 睡眠
|
|
183
|
+
*/
|
|
184
|
+
sleep(ms) {
|
|
185
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
exports.JenkinsAutoLogin = JenkinsAutoLogin;
|
|
189
|
+
//# sourceMappingURL=jenkins-auto-login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jenkins-auto-login.js","sourceRoot":"","sources":["../../src/utils/jenkins-auto-login.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "long-git-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "A CLI tool for Git tag management.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"koa-static": "^5.0.0",
|
|
51
51
|
"open": "^11.0.0",
|
|
52
52
|
"ora": "^5.4.1",
|
|
53
|
+
"puppeteer": "^24.34.0",
|
|
53
54
|
"simple-git": "^3.22.0"
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|