在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
目录简介Gitee Jenkins Plugin 是码云基于 GitLab Plugin 开发的 Jenkins 插件。用于配置 Jenkins 触发器,接受码云平台发送的 WebHook 触发 Jenkins 进行自动化持续集成或持续部署,并可将构建状态反馈回码云平台。 目前支持特性:
计划中特性
插件安装
插件配置添加码云链接配置
配置成功后如图所示: 新建构建任务前往 Jenkins -> New Item , name 输入 'Gitee Test',选择 任务全局配置任务全局配置中需要选择前一步中的码云链接。前往某个任务(如'Gitee Test')的 Configure -> General,Gitee connection 中选择前面所配置的码云链接,如图: 源码管理配置前往某个任务(如'Gitee Test')的 Configure -> Source Code Management 选项卡
配置如图所示: 触发器配置前往任务配置的触发器构建: Configure -> Build Triggers 选项卡
构建后步骤配置前往任务配置的构建后配置: Configure -> Post-build Actions 选项卡 构建结果回评至码云
构建成功自动合并PR点击 新建码云项目WebHook进入源码管理配置中设置的码云项目中,进入 管理 -> WebHooks
测试推送触发构建
测试PR触发构建
使用脚本配置触发器pipeline { agent any triggers { gitee ( // 推送代码 triggerOnPush: true, // 评论提交记录 triggerOnCommitComment: true, // 新建 Pull Requests triggerOnOpenPullRequest: true, // 更新 Pull Requests "0":None "1":Source Branch updated "2":Target Branch updated "3":Both Source and Target Branch updated triggerOnUpdatePullRequest: "1", // 接受 Pull Requests triggerOnAcceptedPullRequest: true, // 关闭 Pull Requests triggerOnClosedPullRequest: true, // 审查通过 Pull Requests triggerOnApprovedPullRequest: true, // 测试通过 Pull Requests triggerOnTestedPullRequest: true, // 评论 Pull Requests triggerOnNoteRequest: true, // 评论内容的正则表达式 noteRegex: "build", // 构建指令过滤 "NONE":无 "CI_SKIP":[ci-skip] 指令跳过构建 "CI_BUILD":[ci-build] 指令触发构建 buildInstructionFilterType: "NONE", // PR 不要求必须测试时过滤构建 ciSkipFroTestNotRequired: false, // 过滤已经构建的 Commit 版本 skipLastCommitHasBeenBuild: false, // 取消相同 Pull Requests 未完成构建 cancelIncompleteBuildOnSamePullRequest: false, // 允许触发构建的分支 "All":允许所有分支触发构建 "NameBasedFilter":根据分支名过滤 "RegexBasedFilter":根据正则表达式过滤分支 branchFilterType: "All", // "NameBasedFilter" - 包括 includeBranchesSpec: "include", // "NameBasedFilter" - 排除 excludeBranchesSpec: "exclude", // "RegexBasedFilter" - 目标分支的正则表达式 targetBranchRegex: "regex", // Gitee WebHook 密码 secretToken: "123456" ) } stages { stage('Build') { steps{ echo 'Hello world!' } } }} 环境变量目前支持环境变量见以下函数,其中不同的 WebHook 触发可能导致有些变量为空,具体请安装插件 EnvInject Plugin,于构建中查看 Environment Variables public Map<String, String> getBuildVariables() { MapWrapper<String, String> variables = new MapWrapper<>(new HashMap<String, String>()); variables.put("giteeBranch", branch); variables.put("giteeSourceBranch", sourceBranch); variables.put("giteeActionType", actionType.name()); variables.put("giteeUserName", userName); variables.put("giteeUserEmail", userEmail); variables.put("giteeSourceRepoHomepage", sourceRepoHomepage); variables.put("giteeSourceRepoName", sourceRepoName); variables.put("giteeSourceNamespace", sourceNamespace); variables.put("giteeSourceRepoURL", sourceRepoUrl); variables.put("giteeSourceRepoSshUrl", sourceRepoSshUrl); variables.put("giteeSourceRepoHttpUrl", sourceRepoHttpUrl); variables.put("giteePullRequestTitle", pullRequestTitle); variables.put("giteePullRequestDescription", pullRequestDescription); variables.put("giteePullRequestId", pullRequestId == null ? "" : pullRequestId.toString()); variables.put("giteePullRequestIid", pullRequestIid == null ? "" : pullRequestIid.toString()); variables.put("giteePullRequestTargetProjectId", pullRequestTargetProjectId == null ? "" : pullRequestTargetProjectId.toString()); variables.put("giteePullRequestLastCommit", lastCommit); variables.put("giteePushCreated", created ? "true" : "false"); variables.put("giteePushDeleted", deleted ? "true" : "false"); variables.putIfNotNull("giteePullRequestState", pullRequestState); variables.putIfNotNull("giteeMergedByUser", mergedByUser); variables.putIfNotNull("giteePullRequestAssignee", pullRequestAssignee); variables.put("giteeTargetBranch", targetBranch); variables.put("giteeTargetRepoName", targetRepoName); variables.put("giteeTargetNamespace", targetNamespace); variables.put("giteeTargetRepoSshUrl", targetRepoSshUrl); variables.put("giteeTargetRepoHttpUrl", targetRepoHttpUrl); variables.put("giteeBefore", before); variables.put("giteeAfter", after); variables.put("giteeBeforeCommitSha", before); variables.put("giteeAfterCommitSha", after); variables.put("giteeRef", ref); variables.put("ref", ref); variables.put("beforeSha", beforeSha); variables.put("isTag", isTag); variables.put("sha", sha); variables.put("status", status); variables.put("stages", stages); variables.put("createdAt", createdAt); variables.put("finishedAt", finishedAt); variables.put("duration", buildDuration); variables.put("jsonBody", jsonBody); variables.put("noteBody", noteBody); variables.putIfNotNull("giteeTriggerPhrase", triggerPhrase); return variables; } 用户支持如在使用过程中有任何疑问,欢迎在 Gitee Jenkins Issue 中反馈。 反馈前可按以下步骤获取更多日志以便排查问题:
参与贡献欢迎提交 CI 场景特性建议或者直接提交 PR 贡献代码。 打包或运行测试打包 hpi 文件在仓库目录中执行: 直接运行测试执行: |
请发表评论