-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines-main.yml
127 lines (114 loc) · 3.9 KB
/
azure-pipelines-main.yml
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
## KMDP Main Pipeline
## KMDP Maven Enforcer Rules
resources:
pipelines:
- pipeline: kmdpMvnEnforcerRulesMain
source: kmdpMvnEnforcerRulesReleaseCandidate
trigger:
branches:
- develop
# Sets Virtual Machine to Run Pipeline on
pool:
vmImage: 'ubuntu-latest'
# Gets Variables from Azure DevOps Library
variables:
- group: kmdp-platform-variables
steps:
# ------------------ PIPELINE STEPS ------------------
# Outputs pipeline steps have started
- script: |
echo Starting Develop Branch Build Pipeline!
echo Project :: KMDP Maven Enforcer Rules : Main Pipeline
displayName: 'Starting Pipeline Steps'
# Sets Git Credentials on the VM set from variable group
# $env:GIT_REDIRECT_STDERR = '2>&1' prevents unwanted errors
- task: PowerShell@2
displayName: 'Git Config User'
inputs:
targetType: 'inline'
script: |
$env:GIT_REDIRECT_STDERR = '2>&1'
git config --global user.email "$env:GIT_USER_EMAIL"
git config --global user.name "$env:GIT_USER_NAME"
Write-Host Email: "$env:GIT_USER_EMAIL"
Write-Host User Name: "$env:GIT_USER_NAME"
env:
GIT_USER_EMAIL: $(gitUserEmail)
GIT_USER_NAME: $(gitUserName)
# Gets .m2 Settings File from Azure DevOps Library
# Downloads File for use in Pipeline
- task: DownloadSecureFile@1
displayName: 'Downloads Secure .m2 Settings File'
name: settingsxml
inputs:
secureFile: settings-dev.xml
# Write settings file to Build Server
- task: PowerShell@2
displayName: 'Update m2 Settings File'
inputs:
targetType: 'inline'
script: |
New-Item -Type Directory -Force "${HOME}/.m2"
Copy-Item -Force "$(settingsxml.secureFilePath)" "${HOME}/.m2/settings.xml"
# Authenticate to Maven Feed
- task: MavenAuthenticate@0
displayName: 'Maven Authenticate'
inputs:
artifactsFeeds: 'KMD'
# Sets JDK 11 for Pipeline
# Runs Maven Goal: validate
- task: Maven@3
displayName: 'Sets Pipeline to JDK 11'
inputs:
mavenPomFile: 'pom.xml'
goals: 'validate'
options: '-ntp'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
# Rebase to main and deploy
- task: PowerShell@2
displayName: 'MVN Enforcer Rules Checkout Release Candidate'
inputs:
targetType: 'inline'
script: |
Write-Host ------ Starting Checkout ------
# Checkout main branch to create release candidate from
git checkout "release-$env:MVN_ENFORCER_RELEASE_VERSION"
git checkout main
# rebase the release version
git rebase "release-$env:MVN_ENFORCER_RELEASE_VERSION"
type pom.xml
env:
MVN_ENFORCER_RELEASE_VERSION: $(tier0MvnEnforcerReleaseVersion)
SYSTEM_ACCESSTOKEN: $(system.accesstoken)
# Sets ALM/SLM Versioning Policy
# Sets Version Tranformation: none
- task: AlmVersioning@4
displayName: 'SLM Update Version/Build #'
inputs:
projectType: java
versionFilePath: pom.xml
versionTransformation: none
# Runs Maven Goal: deploy
# Deploys to Azure DevOps Artifacts
- task: PowerShell@2
displayName: 'MVN Enforcer Rules Checkout Release Candidate'
inputs:
targetType: 'inline'
script: |
Write-Host ------ Starting Checkout ------
mvn clean install -Prelease -ntp
mvn deploy "-DaltDeploymentRepository=$env:DEPLOY_REPO::default::$env:DEPLOY_REPO_PATH" -ntp
git push "https://kmd:$env:[email protected]/mclm/KMD/_git/kmdp-mvn-enforcer-rules"
git push "https://kmd:$env:[email protected]/mclm/KMD/_git/kmdp-mvn-enforcer-rules" -d "release-$env:MVN_ENFORCER_RELEASE_VERSION"
Write-Host ------ Ending Checkout ------
env:
MVN_ENFORCER_RELEASE_VERSION: $(tier0MvnEnforcerReleaseVersion)
DEPLOY_REPO: $(deploymentRepo)
DEPLOY_REPO_PATH: $(deploymentRepoPath)
SYSTEM_ACCESSTOKEN: $(system.accesstoken)
# ------------------ END PIPELINE ------------------
# Outputs pipeline steps have ended
- script: |
echo Ending Main Branch Pipeline!
displayName: 'Ending Pipeline Steps'