Skip to content

Commit c13ac40

Browse files
committed
Merged PR 166: Added new build task to call process-migrate and waiting on MSFT for proper format.
- Remove task depricted tag... - update command names to get the verification working and add download of npm tools and first execution. - Updated GitVersion to remove Preview and use Branch name - Trying new version number - Changes && to || - Updated build task numbers as well - Small updates - Moved processFilename from Options to root - Updated powershell to call process-migrate...
1 parent 0c41e8c commit c13ac40

File tree

6 files changed

+150
-37
lines changed

6 files changed

+150
-37
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ _build/
55
_packages/
66
/.vs
77
tests/data/
8+
/inheritedprocessmigration/vCurrent/configuration.json

GitVersion.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,5 @@ branches:
66
master:
77
mode: ContinuousDeployment
88
tag: ''
9-
((?!(master)|(feature)|(pull)).):
10-
tag: 'Preview'
119
ignore:
1210
sha: []
Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Save-Module -Name VstsTaskSdk -Path ..\processtemplatetask\processtemplatetaskv2\ps_modules\
2-
#Set-Location C:\Users\MartinHinshelwoodnkd\source\repos\vsts-processtemplate-task\processtemplatetask\processtemplatetaskv2
2+
#Set-Location C:\Users\MartinHinshelwoodnkd\source\repos\vsts-processtemplate-task\inheritedprocessmigration\vCurrent
33
Import-Module .\\ps_modules\VstsTaskSdk\VstsTaskSdk.psd1
44
#Import-Module -Name VstsTaskSdk
55
#### Usefull bits ##############
@@ -9,20 +9,27 @@ Import-Module .\\ps_modules\VstsTaskSdk\VstsTaskSdk.psd1
99
################################################
1010
############### Test Data Setup ################ www.itprotoday.com/microsoft-azure/read-secret-azure-key-vault-using-powershell
1111
################################################
12-
$TestDataFile = "c:\temp\pt\TestData.json"
12+
$TestDataFile = "c:\temp\inheritedprocessmigration\TestData.json"
1313
if (!(Test-Path $TestDataFile))
1414
{
1515

16-
$TestDataPS = new-object psobject
17-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name processFile -Value "c:\temp\pt\SLM-PT-VSTS-2017.7.0.zip"
18-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name AccountURL -Value "https://xxx-xxx-devbox.visualstudio.com"
19-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name ApiToken -Value "mytoken"
20-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name waitForUpdate -Value $true
21-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name waitForInterval -Value 10
22-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name overrideProcessGuid -Value ""
23-
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name overrideProcessName -Value ""
24-
$TestDataJson = ConvertTo-Json $TestDataPS
25-
New-Item $TestDataFile -ItemType FILE -Value $TestDataJson -Force
16+
$TestDataPS = new-object psobject
17+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name command -Value "migrate"
18+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name sourceAccountUrl -Value "https://nkdagility.visualstudio.com"
19+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name sourceAccountToken -Value "mytoken"
20+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name sourceProcessName -Value "nkdScrum"
21+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name targetAccountUrl -Value "https://nkdagility-dev.visualstudio.com"
22+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name targetAccountToken -Value "mytoken"
23+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name targetProcessName -Value "nkdScrum"
24+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name processFilename -Value "c:\temp\configuration.json"
25+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name logLevel -Value "verbose"
26+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name logFilename -Value "processMigrator.log"
27+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name overwritePicklist -Value $false
28+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name continueOnRuleImportFailure -Value $false
29+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name continueOnFieldDefaultValueFailure -Value $false
30+
Add-Member -InputObject $TestDataPS -MemberType NoteProperty -Name skipImportFormContributions -Value $false
31+
$TestDataJson = ConvertTo-Json $TestDataPS
32+
New-Item $TestDataFile -ItemType FILE -Value $TestDataJson -Force
2633
}
2734
$TestDataJson = Get-Content $TestDataFile -Raw
2835
$TestData = ConvertFrom-Json $TestDataJson
@@ -31,16 +38,37 @@ $erroractionpreference='stop'
3138
################################################
3239
########### setup inputs #######################
3340
################################################
34-
# Input 'MyInput':
35-
$env:INPUT_VstsXmlProcessService = 'EP1'
36-
$env:ENDPOINT_URL_EP1 = $TestData.AccountURL
37-
$env:ENDPOINT_AUTH_EP1 = "{ `"Parameters`": { `"ApiToken`": `"$($TestData.ApiToken)`"}, `"Scheme`": `"Token`" }"
41+
42+
# Command
43+
$env:INPUT_command = $TestData.command
44+
# Source Account
45+
$env:INPUT_sourceAccount = 'EP1'
46+
$env:ENDPOINT_URL_EP1 = $TestData.sourceAccountUrl
47+
$env:ENDPOINT_AUTH_EP1 = "{ `"Parameters`": { `"ApiToken`": `"$($TestData.sourceAccountToken)`"}, `"Scheme`": `"Token`" }"
3848
$env:ENDPOINT_DATA_EP1 = '{ "Key1": "Value1", "Key2": "Value2" }'
49+
# sourceProcessName
50+
$env:INPUT_sourceProcessName = $TestData.sourceProcessName
51+
# Target Account
52+
$env:INPUT_targetAccount = 'EP2'
53+
$env:ENDPOINT_URL_EP2 = $TestData.targetAccountUrl
54+
$env:ENDPOINT_AUTH_EP2 = "{ `"Parameters`": { `"ApiToken`": `"$($TestData.targetAccountToken)`"}, `"Scheme`": `"Token`" }"
55+
$env:ENDPOINT_DATA_EP2 = '{ "Key1": "Value1", "Key2": "Value2" }'
56+
# targetProcessName
57+
$env:INPUT_targetProcessName = $TestData.targetProcessName
58+
# processFilename
59+
$env:INPUT_processFilename = $TestData.processFilename
60+
# logLevel
61+
$env:INPUT_logLevel = $TestData.logLevel
62+
# logFilename
63+
$env:INPUT_logFilename = $TestData.logFilename
64+
# overwritePicklist
65+
$env:INPUT_overwritePicklist = $TestData.overwritePicklist
66+
# continueOnRuleImportFailure
67+
$env:INPUT_continueOnRuleImportFailure = $TestData.continueOnRuleImportFailure
68+
# continueOnFieldDefaultValueFailure
69+
$env:INPUT_continueOnFieldDefaultValueFailure = $TestData.continueOnFieldDefaultValueFailure
70+
# skipImportFormContributions
71+
$env:INPUT_skipImportFormContributions = $TestData.skipImportFormContributions
3972

40-
$env:INPUT_processFile = $TestData.processFile
41-
$env:INPUT_waitForUpdate = $TestData.waitForUpdate
42-
$env:INPUT_waitForInterval = $TestData.waitForInterval
43-
$env:INPUT_overrideProcessGuid = $TestData.overrideProcessGuid
44-
$env:INPUT_overrideProcessName = $TestData.overrideProcessName
45-
Invoke-vstsTaskScript -scriptBlock { . .\importProcess.ps1 } -Verbose
73+
Invoke-vstsTaskScript -scriptBlock { . .\processmigratestart.ps1 } -Verbose
4674

Lines changed: 88 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,90 @@
1+
2+
3+
# Command
4+
$command = Get-VstsInput -Name command -Require
5+
# sourceAccount
6+
$sourceAccountName = Get-VstsInput -Name sourceAccount -Require
7+
$sourceAccountEp = Get-VstsEndpoint -Name $sourceAccountName -Require
8+
$sourceAccountToken = [string]$sourceAccountEp.Auth.Parameters.ApiToken
9+
$sourceAccountUrl = [string]$sourceAccountEp.Url
10+
# sourceProcessName
11+
12+
$sourceProcessName = Get-VstsInput -Name sourceProcessName -Require
13+
# TargetAccount
14+
$targetAccountName = Get-VstsInput -Name targetAccount -Require
15+
$targetAccountEp = Get-VstsEndpoint -Name $targetAccountName -Require
16+
$targetAccountToken = [string]$targetAccountEp.Auth.Parameters.ApiToken
17+
$targetAccountUrl = [string]$targetAccountEp.Url
18+
# targetProcessName
19+
$targetProcessName = Get-VstsInput -Name targetProcessName -Require
20+
# processFilename
21+
$processFilename = Get-VstsInput -Name processFilename -Require
22+
# logLevel
23+
$logLevel = Get-VstsInput -Name logLevel -Require
24+
# logFilename
25+
$logFilename = Get-VstsInput -Name logFilename -Require
26+
# overwritePicklist
27+
$overwritePicklist = Get-VstsInput -Name overwritePicklist -Require
28+
# continueOnRuleImportFailure
29+
$continueOnRuleImportFailure = Get-VstsInput -Name continueOnRuleImportFailure -Require
30+
# continueOnFieldDefaultValueFailure
31+
$continueOnFieldDefaultValueFailure = Get-VstsInput -Name continueOnFieldDefaultValueFailure -Require
32+
# skipImportFormContributions
33+
$skipImportFormContributions = Get-VstsInput -Name skipImportFormContributions -Require
34+
35+
get-childitem -path env:INPUT_*
36+
get-childitem -path env:ENDPOINT_*
37+
38+
Write-VstsTaskVerbose "command: $command"
39+
Write-VstsTaskVerbose "sourceAccountUrl: $sourceAccountUrl"
40+
Write-VstsTaskVerbose "targetProcessName: $targetProcessName"
41+
Write-VstsTaskVerbose "targetAccountUrl: $targetAccountUrl"
42+
Write-VstsTaskVerbose "targetProcessName: $targetProcessName"
43+
44+
###########################################################
45+
46+
Get-Location
47+
48+
$configFile = "configuration.json"
49+
if (!(Test-Path $configFile))
50+
{
51+
52+
$configObject = new-object psobject
53+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name sourceAccountUrl -Value $sourceAccountUrl
54+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name sourceAccountToken -Value $sourceAccountToken
55+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name sourceProcessName -Value $sourceProcessName
56+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name targetAccountUrl -Value $targetAccountUrl
57+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name targetAccountToken -Value $targetAccountToken
58+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name targetProcessName -Value $targetProcessName
59+
60+
$configOptionsObject = new-object psobject
61+
62+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty -Name processFilename -Value $processFilename
63+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty -Name logLevel -Value $logLevel
64+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty -Name logFilename -Value $logFilename
65+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty -Name overwritePicklist -Value [bool]$overwritePicklist
66+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty -Name continueOnRuleImportFailure -Value [bool]$continueOnRuleImportFailure
67+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty -Name continueOnFieldDefaultValueFailure -Value [bool]$continueOnFieldDefaultValueFailure
68+
Add-Member -InputObject $configOptionsObject -MemberType NoteProperty] -Name skipImportFormContributions -Value [bool]$skipImportFormContributions
69+
70+
Add-Member -InputObject $configObject -MemberType NoteProperty -Name options -Value $configOptionsObject
71+
72+
$configJson = ConvertTo-Json $configObject
73+
New-Item $configFile -ItemType FILE -Value $configJson -Force
74+
}
75+
$configJson = Get-Content $configFile -Raw
76+
$ConfigData = ConvertFrom-Json $configJson
77+
78+
$ConfigData
79+
80+
######
81+
82+
###########################################################
83+
184
npm install process-migrator -g
2-
process-migrator
385

4-
Write-VstsTaskError ("Not yet implemented")
86+
Write-VstsTaskVerbose $command
87+
88+
process-migrator --mode $command --config $configFile
89+
90+

inheritedprocessmigration/vCurrent/task.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"version": {
1818
"Major": "1",
1919
"Minor": "#{GitVersion.Minor}#",
20-
"Patch": "#{GitVersion.Patch}#"
20+
"Patch": "#{GitVersion.Patch}##{GitVersion.COMMITSSINCEVERSIONSOURCE}#"
2121
},
2222
"minimumAgentVersion": "1.92.0",
2323
"groups": [
@@ -48,15 +48,15 @@
4848
"defaultValue": "",
4949
"required": true,
5050
"helpMarkDown": "Source account endpoint. Required in export/migrate mode, ignored in import mode.",
51-
"visibleRule": "command = migrate && command = export"
51+
"visibleRule": "command = migrate || command = export"
5252
},
5353
{
5454
"name": "sourceProcessName",
5555
"type": "string",
5656
"label": "Source Process Name",
5757
"helpMarkDown": "Source process name to export. Required in export/migrate mode, ignored in import mode.",
5858
"required": "false",
59-
"visibleRule": "command = migrate && command = export"
59+
"visibleRule": "command = migrate || command = export"
6060
},
6161
{
6262
"name": "targetAccount",
@@ -65,24 +65,24 @@
6565
"defaultValue": "",
6666
"required": true,
6767
"helpMarkDown": "Target account endpoint. Required in import/migrate mode, ignored in export mode. ",
68-
"visibleRule": "command = migrate && command = import"
68+
"visibleRule": "command = migrate || command = import"
6969
},
7070
{
7171
"name": "targetProcessName",
7272
"type": "string",
7373
"label": "Target Process Name",
7474
"helpMarkDown": "Target process name to export. Required in import/migrate mode, ignored in import mode.",
75-
"required": "false",
76-
"visibleRule": "command = migrate && command = import"
75+
"required": true,
76+
"visibleRule": "command = migrate || command = import"
7777
},
7878
{
7979
"name": "processFilename",
8080
"type": "filePath",
8181
"label": "Process Filename",
8282
"defaultValue": "",
8383
"helpMarkDown": "File with process payload. Required in import mode, optional for export/migrate mode.",
84-
"required": false,
85-
"groupName": "options"
84+
"required": true,
85+
"visibleRule": "command = import"
8686
},
8787
{
8888
"name": "logLevel",
@@ -91,7 +91,7 @@
9191
"defaultValue": "Verbose",
9292
"helpMarkDown": "Optional, log level for console. Possibe values are 'Verbose'/'Information'/'Warning'/'Error'.",
9393
"required": "false",
94-
"groupName": "packAdvanced",
94+
"groupName": "options",
9595
"options": {
9696
"Verbose": "Verbose",
9797
"Information": "Information",

vss-extension.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"manifestVersion": 1,
33
"id": "processtemplate",
44
"name": "VSTS Process Tools",
5-
"version": "#{GitVersion.Major}#.#{GitVersion.Minor}#.#{GitVersion.Patch}#",
5+
"version": "#{GitVersion.Major}#.#{GitVersion.Minor}#.#{GitVersion.Patch}##{GitVersion.COMMITSSINCEVERSIONSOURCE}#",
66
"public": false,
77
"publisher": "nkdAgility",
88
"galleryFlags": [
@@ -121,7 +121,7 @@
121121
"targets": [ "ms.vss-endpoint.endpoint-types" ],
122122
"properties": {
123123
"name": "VstsXmlProcessEndpoint",
124-
"displayName": "VSTS XML Process Endpoint",
124+
"displayName": "VSTS Organisation (was Account)",
125125
"authenticationSchemes": [
126126
{
127127
"type": "ms.vss-endpoint.endpoint-auth-scheme-token"

0 commit comments

Comments
 (0)