This plugin allows Gitee to trigger builds in Jenkins when code is committed or pull requests are opened/updated. It can also send build status back to Gitee.
Go on Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
Enter Gitee
or the name you want in Connection name
Enter the full URL address of Gitee in Gitee host URL'':
https://gitee.com`` (Customers of Gitee privatization enter the deployed domain name)
If you haven't configured the Code Cloud APIV5 private token in Credentials'', click
Add'' -> Jenkins
Domain
select Global credentials
Kind
select Gitee API Token
Scope
choose the range you needGitee API Token
Enter your code cloud private token to obtain the address: https://gitee.com/profile/personal_access_tokens
ID
, Descripiton
.Credentials
Select the configured Gitee APIV5 Token
Click Advanced
, you can configure whether to ignore SSL errors (depending on whether your Jenkins environment supports it), and set the link test timeout period (depending on your network environment)
Click Test Connection
to test whether the link is successful, if it fails, please check the above 3, 5, 6 steps.
After the configuration is successful, as shown in the figure :
Go to Jenkins -> New Item, enter'Gitee Test' as name, select Freestyle project
and save to create a build project.
In the task global configuration, you need to select the code cloud link in the previous step. Go to Configure -> General of a task (such as'Gitee Test'), and select the code cloud link configured earlier in Gitee connection, as shown in the figure: :
Go to the Configure -> Source Code Management tab of a task (such as'Gitee Test')
git@your.gitee.server:gitee_group/gitee_project.git
origin
, Refspec Field input +refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/pull/*/MERGE
,Note that the new version of jenkins no longer accepts multiple refs descriptions that contain * wildcards at the same time. If only the push trigger can write the first half, if only PR triggers, only the second half can be written. See the figure below for details :
origin/${giteeSourceBranch}
pull/${giteePullRequestIid}/MERGE
origin
${ReleaseBranch}
The default branch (release branch) you want to mergeThe configuration is shown in the figure:
Go to the trigger build of task configuration: Configure -> Build Triggers tab
Enabled Gitee triggers
Check the build trigger rules you need, such as Push Event
, Opened Merge Request Events
, the checked events will receive WebHook and trigger the build. Currently supported trigger events are :
Build Instruction Filter
:
None
[ci-skip] skip build
:When commit message or PR description contains [ci-skip]
, skip the build trigger.[ci-build] trigger build
:When commit message or PR description contains [ci-build]
, the build will be triggered.Ignore last commit has build
This option can skip the Commit version that has been built.Cancel incomplete build on same Pull Requests
This option will determine whether there is an unfinished build with the same PR when the PR triggers the build. If there is, the unfinished build will be cancelled and the current build will be carried out.Ignore Pull Request conflicts
This option will select whether to build according to the PR conflict when the PR triggers the build.Allowed branches
You can configure the branches that are allowed to be built, and currently support branch names and regular expressions for filtering.Secret Token for Gitee WebHook
This option can configure the password of WebHook, which needs to be consistent with the password configured by Code Cloud WebHook to trigger the construction.Go to the post-build configuration of task configuration: Configure -> Post-build Actions tab
Add post-build action
to select: Add note with build status on Gitee pull requests
Advanced
:
Click the drop-down box of Add post-build action
to select: Accept Gitee pull request on success
Enter the Gitee project set in the source management configuration, enter Management -> WebHooks
Trigger configuration: Build when a change is pushed to Gitee. Gitee webhook URL
, as shown in : http://127.0.0.1:8080/jenkins/project/fu
pipeline {
agent any
triggers {
gitee (
// Push code
triggerOnPush: true,
// Comment submission record
triggerOnCommitComment: true,
// New Pull Requests
triggerOnOpenPullRequest: true,
// Update Pull Requests "0":None "1":Source Branch updated "2":Target Branch updated "3":Both Source and Target Branch updated
triggerOnUpdatePullRequest: "1",
// accept Pull Requests
triggerOnAcceptedPullRequest: true,
// Close Pull Requests
triggerOnClosedPullRequest: true,
// Approved Pull Requests
triggerOnApprovedPullRequest: true,
// Test passed Pull Requests
triggerOnTestedPullRequest: true,
// comment Pull Requests
triggerOnNoteRequest: true,
// Regular expression for comment content
noteRegex: "build",
// Build command filtering "NONE": None "CI_SKIP":[ci-skip] command to skip building "CI_BUILD":[ci-build] command to trigger build
buildInstructionFilterType: "NONE",
// PR does not require that you filter the build when you have to test
ciSkipFroTestNotRequired: false,
// Filter the Commit version that has been built
skipLastCommitHasBeenBuild: false,
// Cancel the same Pull Requests incomplete construction
cancelIncompleteBuildOnSamePullRequest: false,
// Branches allowed to trigger construction "All": Allow all branches to trigger construction "NameBasedFilter": Filter by branch name "RegexBasedFilter":Filter branches based on regular expressions
branchFilterType: "All",
// "NameBasedFilter" - include
includeBranchesSpec: "include",
// "NameBasedFilter" - exclude
excludeBranchesSpec: "exclude",
// "RegexBasedFilter" - Regular expression of the target branch
targetBranchRegex: "regex",
// Gitee WebHook password
secretToken: "123456"
)
}
stages {
stage('Build') {
steps{
echo 'Hello world!'
}
}
}
}
The currently supported environment variables are shown in the following functions. Different WebHook triggers may cause some variables to be empty. Please install the plug-in for details. EnvInject Plugin, View in build 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;
}
If you have a problem or question about using the plugin, please make sure you are using the latest version. Then create an issue in the Gitee project if necessary. New issues should include the following:
Gitee Jenkins plugin introduced improved logging for debugging purposes. To enable it:
Welcome to submit CI scenario feature suggestions or directly submit PR contribution code
To perform a plugin hpi file, maintainers can run mvn package
To release a snapshot, e.g. with a bug fix for users to test, just run mvn hpi:run
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. Open source ecosystem
2. Collaboration, People, Software
3. Evaluation model