forked from webmd-health-services/BitbucketServerAutomation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
publish.ps1
47 lines (39 loc) · 1.93 KB
/
publish.ps1
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
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[CmdletBinding()]
param(
)
#Requires -Version 4
Set-StrictMode -Version 'Latest'
$moduleRoot = (Join-Path -Path $PSScriptRoot -ChildPath 'BitbucketServerAutomation' -Resolve)
$manifest = Test-ModuleManifest -Path (Join-Path -Path $moduleRoot -ChildPath 'BitbucketServerAutomation.psd1' -Resolve)
if( -not $manifest )
{
return
}
$filesNotReady = git status --porcelain --ignored $moduleRoot
if( $filesNotReady )
{
Write-Error -Message ('There are uncommitted changes under BitbucketServerAutomation. Please remove these files or commit them.{0}{1}' -f [Environment]::NewLine,($filesNotReady -join [Environment]::NewLine))
return
}
$privateData = $manifest.PrivateData['PSData']
$nugetKeyPath = Join-Path -Path $PSScriptRoot -ChildPath '.psgallerykey'
if( -not (Test-Path -Path $nugetKeyPath -PathType Leaf) )
{
$key = Read-Host -Prompt 'Please enter your PowerShell Gallery API key:' -AsSecureString
$key | Export-Clixml -Path $nugetKeyPath
}
$key = Import-Clixml -Path $nugetKeyPath
$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($key)
$key = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
Publish-Module -Path $moduleRoot -NuGetApiKey $key -Repository 'PSGallery' -ReleaseNotes $privateData['ReleaseNotes'] -Tags $privateData['Tags'] -LicenseUri $privateData['LicenseUri'] -ProjectUri $privateData['ProjectUri']