-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate-tier1-tier2-snapshot-versions.yml
143 lines (127 loc) · 4.53 KB
/
update-tier1-tier2-snapshot-versions.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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
### Update Tier 1 & Tier 2 Snapshot Versions for Develop Pipeline
### Snapshot Branch Versioning Stategy: X.X.X-SNAPSHOT
### Project :: kmdp-trisotech-asset-repository-service
trigger:
branches:
exclude:
- develop
- feature*
paths:
exclude:
- azure-pipelines-develop.yml
- azure-pipelines-features.yml
- release-notes.md
- README.md
# Watches upstream build for success to run
# resources:
# pipelines:
# - pipeline: kmdpTrisotechAssetRepositoryServiceDevelopTier1Tier2Dependencies
# source: kmdpBomDevelop
# 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
# ------------------ PIPELINE STEPS ------------------
steps:
# Outputs pipeline steps have started
- script: |
echo Starting Develop Branch Update Tier 1 and Tier 2 Dependencies Pipeline!
echo Project :: kmdp-trisotech-asset-repository-service
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'
- task: PowerShell@2
displayName: Output Initial Variable Values
inputs:
targetType: 'inline'
script: |
[xml]$pomXml = Get-Content .\pom.xml
Write-Host --------------------------------
Write-Host Original POM Variables:
Write-Host ParentVersion: $pomXml.project.parent.version
Write-Host ServersVersion: $pomXml.project.properties."kmdp.servers.version"
Write-Host Will be updated to:
Write-Host NewParentVersion: $(tier1NewDevelopVersion)
Write-Host NewServersVersion: $(tier2NewDevelopVersion)
Write-Host --------------------------------
- task: PowerShell@2
displayName: 'Update Tier 1 & Tier 2 Dependencies'
inputs:
targetType: 'inline'
script: |
Write-Host ----- Starting Checkout -----
# Checkout develop branch
git checkout develop
# Update parent version & servers version
mvn versions:update-parent "-DparentVersion=$(tier1NewDevelopVersion)" -DallowSnapshots=true -ntp
mvn versions:set-property "-Dproperty=kmdp.servers.version" "-DnewVersion=$(tier2NewDevelopVersion)" -DallowSnapshots=true -ntp
mvn clean install -ntp -DskipTests
git add pom.xml
git commit -m "updated tier 1 & tier 2 dependencies versions"
git push "https://kmd:$env:SYSTEM_ACCESSTOKEN@dev.azure.com/mclm/KMD/_git/kmdp-trisotech-asset-repository-service"
Write-Host ------------ Ending Checkout --------------------
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
- task: PowerShell@2
displayName: 'Output Updated Variables'
inputs:
targetType: 'inline'
script: |
[xml]$pomXml = Get-Content .\pom.xml
Write-Host --------------------------------
Write-Host Updated POM Variables:
Write-Host ParentVersion: $pomXml.project.parent.version
Write-Host ServersVersion: $pomXml.project.properties."kmdp.servers.version"
# ------------------ END PIPELINE ------------------
# Outputs pipeline steps have ended
- script: |
echo Ending Updating Develop Branch Tier 1 Tier 2 Dependencies!
displayName: 'Ending Pipeline Steps'