From c3da819e5f2ce1b04eb1b48f2ed9e42c69131a28 Mon Sep 17 00:00:00 2001 From: Kevin Marquette Date: Fri, 17 Aug 2018 04:59:21 -0700 Subject: [PATCH] Add PSGallery publishing support --- BuildTasks/InvokeBuildInit.ps1 | 3 +++ BuildTasks/PublishModule.Task.ps1 | 25 +++++++++++++++++++++++++ Module.build.ps1 | 1 + appveyor.yml | 8 +++++--- build.ps1 | 5 ++++- 5 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 BuildTasks/PublishModule.Task.ps1 diff --git a/BuildTasks/InvokeBuildInit.ps1 b/BuildTasks/InvokeBuildInit.ps1 index d0fcb36..d231732 100644 --- a/BuildTasks/InvokeBuildInit.ps1 +++ b/BuildTasks/InvokeBuildInit.ps1 @@ -24,4 +24,7 @@ Write-Verbose " Folders [$Folders]" $Script:TestFile = "$BuildRoot\Output\TestResults_PS$PSVersion`_$TimeStamp.xml" Write-Verbose " TestFile [$TestFile]" +$Script:PSRepository = 'PSGallery' +Write-Verbose " PSRepository [$TestFile]" + function taskx($Name, $Parameters) { task $Name @Parameters -Source $MyInvocation } diff --git a/BuildTasks/PublishModule.Task.ps1 b/BuildTasks/PublishModule.Task.ps1 new file mode 100644 index 0000000..305e19d --- /dev/null +++ b/BuildTasks/PublishModule.Task.ps1 @@ -0,0 +1,25 @@ +task PublishModule { + + if ( $ENV:BHBuildSystem -ne 'Unknown' -and + $ENV:BHBranchName -eq "master" -and + [string]::IsNullOrWhiteSpace($ENV:APPVEYOR_PULL_REQUEST_NUMBER) -and + -not [string]::IsNullOrWhiteSpace($ENV:NugetApiKey)) + { + $publishModuleSplat = @{ + Path = $Destination + NuGetApiKey = $ENV:NugetApiKey + Verbose = $true + Force = $true + Repository = $PSRepository + ErrorAction = 'Stop' + } + Publish-Module @publishModuleSplat + } + else + { + "Skipping deployment: To deploy, ensure that...`n" + + "`t* You are in a known build system (Current: $ENV:BHBuildSystem)`n" + + "`t* You are committing to the master branch (Current: $ENV:BHBranchName) `n" + + "`t* This is not a pull request" + } +} diff --git a/Module.build.ps1 b/Module.build.ps1 index 69905a5..3eeb453 100644 --- a/Module.build.ps1 +++ b/Module.build.ps1 @@ -6,6 +6,7 @@ task Default Build, Test, UpdateSource task Build Copy, Compile, BuildModule, BuildManifest, Helpify task Helpify GenerateMarkdown, GenerateHelp task Test Build, ImportModule, FullTests +task Publish Build, Test, PublishModule Write-Host 'Import common tasks' Get-ChildItem -Path $buildroot\BuildTasks\*.Task.ps1 | diff --git a/appveyor.yml b/appveyor.yml index 10f1594..8390ae8 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,8 +12,10 @@ image: Visual Studio 2017 skip_commits: message: /updated (readme|doc).*|update (readme|doc).*s/ +skip_branch_with_pr: true + build: false -#Kick off the CI/CD pipeline -test_script: - - ps: . .\build.ps1 +# Kick off the CI/CD pipeline +build_script: + - ps: . .\build.ps1 Publish diff --git a/build.ps1 b/build.ps1 index 0f8b032..8a61c9a 100644 --- a/build.ps1 +++ b/build.ps1 @@ -21,6 +21,9 @@ Get-PackageProvider -Name 'NuGet' -ForceBootstrap | Out-Null Update-LDModule -Name $Script:Modules -Scope $Script:ModuleInstallScope Set-BuildEnvironment +Get-ChildItem Env:BH* +Get-ChildItem Env:APPVEYOR* + $Error.Clear() 'Invoking build...' @@ -32,4 +35,4 @@ if ($Result.Error) exit 1 } -exit 0 \ No newline at end of file +exit 0