forked from jenkinsci/nexus-platform-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile.sonatype
65 lines (57 loc) · 2.27 KB
/
Jenkinsfile.sonatype
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* Copyright (c) 2016-present Sonatype, Inc. All rights reserved.
* Includes the third-party code listed at http://links.sonatype.com/products/nexus/attributions.
* "Sonatype" is a trademark of Sonatype, Inc.
*/
@Library(['private-pipeline-library', 'jenkins-shared', 'int-jenkins-shared']) _
import com.sonatype.jenkins.pipeline.GitHub
String apiToken = null
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'integrations-github-api',
usernameVariable: 'GITHUB_API_USERNAME', passwordVariable: 'GITHUB_API_PASSWORD']]) {
apiToken = env.GITHUB_API_PASSWORD
}
GitHub gitHub = new GitHub(this, 'jenkinsci/nexus-platform-plugin', apiToken)
String getCommitId() {
return runSafely ('git rev-parse HEAD', true)
}
Closure postHandler = {
currentBuild, env ->
def commitId = getCommitId()
if (currentBuild.currentResult == 'SUCCESS') {
gitHub.statusUpdate commitId, 'success', 'CI', 'CI Passed'
}
else {
gitHub.statusUpdate commitId, 'failure', 'CI', 'CI Failed'
}
// only notify to #int-builds on the deploy branch
if(isDeployBranch(env, 'main')) {
notifyChat(currentBuild: currentBuild, env: env, room: 'int-builds')
}
}
Closure iqPolicyEvaluation = {
stage ->
def commitId = getCommitId()
gitHub.statusUpdate commitId, 'pending', 'analysis', 'Nexus Lifecycle Analysis is running'
try {
def evaluation = nexusPolicyEvaluation failBuildOnNetworkError: false, iqApplication: 'nexus-platform-plugin',
iqScanPatterns: [[scanPattern: 'scan_nothing']], iqStage: stage, jobCredentialsId: ''
gitHub.statusUpdate commitId, 'success', 'analysis', 'Nexus Lifecycle Analysis passed',
"${evaluation.applicationCompositionReportUrl}"
}
catch (error) {
def evaluation = error.policyEvaluation
gitHub.statusUpdate commitId, 'failure', 'analysis', 'Nexus Lifecycle Analysis failed',
"${evaluation.applicationCompositionReportUrl}"
throw error
}
}
mavenSnapshotPipeline(
mavenOptions: '-D skipTests',
mavenVersion: 'Maven 3.6.x',
mavenProfiles: ['sonatype'],
downstreamJobName: 'extra-tests',
notificationSender: postHandler,
deployBranch: 'main',
iqPolicyEvaluation: iqPolicyEvaluation,
runFeatureBranchPolicyEvaluations: true
)