From bedc9557ae42558b395233f538127170917a6711 Mon Sep 17 00:00:00 2001 From: JustinGrote Date: Wed, 7 Mar 2018 16:18:01 -0800 Subject: [PATCH 1/5] Update CI config --- Tests/00-PowershellModule.Tests.ps1 | 2 +- appveyor.yml | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Tests/00-PowershellModule.Tests.ps1 b/Tests/00-PowershellModule.Tests.ps1 index 567fdf5..326a838 100644 --- a/Tests/00-PowershellModule.Tests.ps1 +++ b/Tests/00-PowershellModule.Tests.ps1 @@ -1,5 +1,5 @@ #requires -module BuildHelpers -if (-not import-module BuildHelpers -PassThru -erroraction silentlycontinue) { +if (-not (import-module BuildHelpers -PassThru -erroraction silentlycontinue)) { install-module buildhelpers -scope currentuser -erroraction stop -force import-module BuildHelpers -erroraction stop } diff --git a/appveyor.yml b/appveyor.yml index a3c2be8..f0e41de 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,9 +6,11 @@ environment: NuGetApiKey: secure: HncD30pn+cWRepdP28pyB1l4BNg3x3MdvcNV8EysOhQ5kBFMHVyXiQM0whuUW78P -image: Visual Studio 2015 +image: + - Visual Studio 2015 + - Visual Studio 2017 install: - - ps: Install-Module -Name Pester,PSScriptAnalyzer,BuildHelpers,InvokeBuild -Confirm:$false -Force -ErrorAction Stop -SkipPublisherCheck + - ps: Install-Module -Name InvokeBuild -Confirm:$false -ErrorAction Stop -Force # Skip on updates to the readme. # We can force this by adding [skip ci] or [ci skip] anywhere in commit message @@ -18,12 +20,12 @@ skip_commits: #Kick off the CI/CD pipeline. We do test and build in the same script #To be portable to non-Appveyor builds #We run it at the test step so that we can upload test results back to the system. -build: false +build_script: + - ps: Invoke-Build Build test_script: - - ps: Invoke-Build + - ps: Invoke-Build Test deploy: false on_finish: -#If "AppveyorRDPDebug" is in the commit message, open an RDP session to investigate after build. - ps: if ($env:APPVEYOR_REPO_COMMIT_MESSAGE -match 'AppveyorRDPDebug') {$blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))} \ No newline at end of file From 487ce85322736e5254e8eaef7ecee8f6323d07e0 Mon Sep 17 00:00:00 2001 From: JustinGrote Date: Wed, 7 Mar 2018 16:24:04 -0800 Subject: [PATCH 2/5] More CI Updates --- .vscode/tasks.json | 62 +++++++++++++++++++++++---- GitVersion.yml | Bin 21 -> 48 bytes PowerHTML.build.ps1 | 102 ++++++++++++++++++++++++++++---------------- 3 files changed, 120 insertions(+), 44 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 1f35b5d..5e9fe2a 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -41,22 +41,27 @@ "tasks": [ { "label": "Test", - "group": "test", + "group": { + "kind": "test", + "isDefault": true + }, "windows": { - "command": "powershell.exe", + "command": "powershell.exe" }, "osx": { - "command": "pwsh", + "command": "pwsh" }, "linux": { - "command": "pwsh", + "command": "pwsh" }, "args": [ "-NoProfile", "-NonInteractive", - "-ExecutionPolicy", "Bypass", - "-Command", "Invoke-Build -Verbose Test" + "-ExecutionPolicy", + "Bypass", + "-Command", + "Invoke-Build -Verbose Test" ], "problemMatcher": "$pester" }, @@ -67,8 +72,49 @@ "args": [ "-NoProfile", "-NonInteractive", - "-ExecutionPolicy", "Bypass", - "-Command", "Invoke-Build -Verbose Test" + "-ExecutionPolicy", + "Bypass", + "-Command", + "Invoke-Build -Verbose Test" + ], + "problemMatcher": "$pester" + }, + { + "label": "Build", + "group": { + "kind": "build", + "isDefault": true + }, + "windows": { + "command": "powershell.exe" + }, + "osx": { + "command": "pwsh" + }, + "linux": { + "command": "pwsh" + }, + "args": [ + "-NoProfile", + "-NonInteractive", + "-ExecutionPolicy", + "Bypass", + "-Command", + "Invoke-Build Build" + ], + "problemMatcher": "$pester" + }, + { + "label": "Build-on-PSCore", + "group": "build", + "command": "pwsh", + "args": [ + "-NoProfile", + "-NonInteractive", + "-ExecutionPolicy", + "Bypass", + "-Command", + "Invoke-Build Build" ], "problemMatcher": "$pester" } diff --git a/GitVersion.yml b/GitVersion.yml index 63d616f464b5e9d1b8037ae23ad6e45f49a6c96d..1b454c97c986da485961de5a1c71acefcc56fe28 100644 GIT binary patch literal 48 vcmezWFOMOWp@N}=L6@Nn$SPteX2@j7XUJo)Vo+c(V9*0&Lk3<3E-(fFAa@95 literal 21 ccmc~xttingOD!tS%+Iq@Fwis5Gvwj|08}mpP5=M^ diff --git a/PowerHTML.build.ps1 b/PowerHTML.build.ps1 index 7ea1ad1..33f3d74 100644 --- a/PowerHTML.build.ps1 +++ b/PowerHTML.build.ps1 @@ -6,7 +6,7 @@ #This variable specifies what modules to bootstrap for the build #It is recommended to only bootstrap BuildHelpers and PSDepend, and use PSDepend for remaining prereqs -$BuildHelperModules = "BuildHelpers", "PSDepend", "Pester", "powershell-yaml", "Microsoft.Powershell.Archive" +$BuildHelperModules = "BuildHelpers", "PSDepend", "Pester", "powershell-yaml", "Microsoft.Powershell.Archive", "PSScriptAnalyzer" #Initialize Build Environment Enter-Build { @@ -20,24 +20,34 @@ Enter-Build { } #Detect if we are in a continuous integration environment (Appveyor, etc.) or otherwise running noninteractively - if ($ENV:CI -or ([Environment]::GetCommandLineArgs() -like '^-noni*')) { + if ($ENV:CI -or ([Environment]::GetCommandLineArgs() -like '-noni*')) { write-build Green 'Detected a Noninteractive or CI environment, disabling prompt confirmations' $SCRIPT:CI = $true $ConfirmPreference = 'None' + $ProgressPreference = "SilentlyContinue" } #Fetch Build Helper Modules using Install-ModuleBootstrap script (works in PSv3/4) #The comma in ArgumentList a weird idiosyncracy to make sure a nested array is created to ensure Argumentlist #doesn't unwrap the buildhelpermodules as individual arguments + #We suppress verbose output for master builds (because they should have already been built once cleanly) + foreach ($BuildHelperModuleItem in $BuildHelperModules) { if (-not (Get-module $BuildHelperModuleItem -listavailable)) { write-verbose "Installing $BuildHelperModuleItem from Powershell Gallery to your currentuser module directory" - install-module -scope currentuser -Name $BuildHelperModuleItem -ErrorAction stop if ($PSVersionTable.PSVersion.Major -lt 5) { write-verboseheader "Bootstrapping Powershell Module: $BuildHelperModuleItem" Invoke-Command -ArgumentList @(, $BuildHelperModules) -ScriptBlock ([scriptblock]::Create((new-object net.webclient).DownloadString('https://git.io/PSModBootstrap'))) } else { - + $installModuleParams = @{ + Scope = "CurrentUser" + Name = $BuildHelperModuleItem + ErrorAction = "Stop" + } + if ($SCRIPT:CI) { + $installModuleParams.Force = $true + } + install-module @installModuleParams } } } @@ -46,8 +56,14 @@ Enter-Build { $Timestamp = Get-date -uformat "%Y%m%d-%H%M%S" $PSVersion = $PSVersionTable.PSVersion.Major Set-BuildEnvironment -force + write-build Green "Current Branch Name: $BranchName" $PassThruParams = @{} + if ( ($VerbosePreference -ne 'SilentlyContinue') -or ($CI -and ($BranchName -ne 'master')) ) { + write-build Green "Verbose Build Logging Enabled" + $SCRIPT:VerbosePreference = "Continue" + $PassThruParams.Verbose = $true + } #If the branch name is master-test, run the build like we are in "master" if ($env:BHBranchName -eq 'master-test') { @@ -57,13 +73,6 @@ Enter-Build { $SCRIPT:BranchName = $env:BHBranchName } - #We suppress verbose output for master builds (because they should have already been built once cleanly) - if ( ($VerbosePreference -ne 'SilentlyContinue') -or ($CI -and ($BranchName -ne 'master')) ) { - write-build Green "Verbose Build Logging Enabled" - $SCRIPT:VerbosePreference = "Continue" - $PassThruParams.Verbose = $true - } - write-verboseheader "Build Environment Prepared! Environment Information:" Get-BuildEnvironment | format-list | out-string | write-verbose @@ -86,10 +95,17 @@ Enter-Build { Get-PackageProvider Nuget @PassThruParams | format-list | out-string | write-verbose } + #Fix a bug with the Appveyor 2017 image having a broken nuget (points to v3 URL but installed packagemanagement doesn't query v3 correctly) + #Next command will add this back + if ($ENV:APPVEYOR -and ($ENV:APPVEYOR_BUILD_WORKER_IMAGE -eq 'Visual Studio 2017')) { + write-verbose "Detected Appveyor VS2017 Image, using v2 Nuget API" + UnRegister-PackageSource -Name nuget.org + } + #Add the nuget repository so we can download things like GitVersion if (!(Get-PackageSource "nuget.org" -erroraction silentlycontinue)) { write-verbose "Registering nuget.org as package source" - Register-PackageSource -provider NuGet -name nuget.org -location http://www.nuget.org/api/v2 -Trusted @PassThruParams | out-string | out-verbose + Register-PackageSource -provider NuGet -name nuget.org -location http://www.nuget.org/api/v2 -Trusted @PassThruParams | out-string | write-verbose } else { $nugetOrgPackageSource = Set-PackageSource -name 'nuget.org' -Trusted @PassThruParams @@ -97,11 +113,10 @@ Enter-Build { write-verboseheader "Nuget.Org Package Source Info " $nugetOrgPackageSource | format-table | out-string | write-verbose } - } #Move to the Project Directory if we aren't there already - Set-Location $ENV:BHProjectPath + Set-Location $buildRoot #Define the Project Build Path $SCRIPT:ProjectBuildPath = $ENV:BHBuildOutput + "\" + $ENV:BHProjectName @@ -111,18 +126,17 @@ Enter-Build { task Clean { #Reset the BuildOutput Directory if (test-path $env:BHBuildOutput) { - write-verbose "Removing and resetting $($ENV:BHBuildOutput)" + Write-Verbose "Removing and resetting Build Output Path: $($ENV:BHBuildOutput)" remove-item $env:BHBuildOutput -Recurse -Force @PassThruParams } - New-Item -ItemType Directory $ProjectBuildPath -force | % FullName | out-string | write-verbose - + New-Item -ItemType Directory $ProjectBuildPath -force | ForEach-Object FullName | out-string | write-verbose #Unmount any modules named the same as our module } task Version { #This task determines what version number to assign this build - $GitVersionConfig = "$env:BHProjectPath/GitVersion.yml" + $GitVersionConfig = "$buildRoot/GitVersion.yml" #Fetch GitVersion #TODO: Use Nuget.exe to fetch to make this v3/v4 compatible @@ -130,10 +144,10 @@ task Version { if (!(Get-Package $GitVersionCMDPackageName -erroraction SilentlyContinue)) { write-verbose "Package $GitVersionCMDPackageName Not Found Locally, Installing..." write-verboseheader "Nuget.Org Package Source Info for fetching Gitversion" - Get-PackageSource | ft | out-string | write-verbose + Get-PackageSource | Format-Table | out-string | write-verbose #Fetch GitVersion - Install-Package $GitVersionCMDPackageName -scope currentuser -source 'nuget.org' -force @PassThruParams + Install-Package $GitVersionCMDPackageName -scope currentuser -source 'nuget.org' -force @PassThruParams | Out-Null } $GitVersionEXE = ((get-package $GitVersionCMDPackageName).source | split-path -Parent) + "\tools\GitVersion.exe" @@ -142,7 +156,7 @@ task Version { if (Test-Path $env:BHPSModuleManifest) { write-verbose "Fetching Version from Powershell Module Manifest (if present)" $ModuleManifestVersion = [Version](Get-Metadata $env:BHPSModuleManifest) - if (Test-Path $env:BHProjectPath/GitVersion.yml) { + if (Test-Path $buildRoot/GitVersion.yml) { $GitVersionConfigYAML = [ordered]@{} #ConvertFrom-YAML returns as individual key-value hashtables, we need to combine them into a single hashtable (Get-Content $GitVersionConfig | ConvertFrom-Yaml) | foreach-object {$GitVersionConfigYAML += $PSItem} @@ -156,14 +170,14 @@ task Version { #Calcuate the GitVersion write-verbose "Executing GitVersion to determine version info" - $GitVersionOutput = & $GitVersionEXE $env:BHProjectPath + $GitVersionOutput = & $GitVersionEXE $buildRoot #Since GitVersion doesn't return error exit codes, we look for error text in the output in the output - if ($GitVersionOutput -match '^[ERROR|INFO] \[') {throw "An error occured when running GitVersion.exe $env:BHProjectPath"} + if ($GitVersionOutput -match '^[ERROR|INFO] \[') {throw "An error occured when running GitVersion.exe $buildRoot"} try { $GitVersionInfo = $GitVersionOutput | ConvertFrom-JSON -ErrorAction stop } catch { - throw "There was an error when running GitVersion.exe $env:BHProjectPath. The output of the command (if any) follows:" + throw "There was an error when running GitVersion.exe $buildRoot. The output of the command (if any) follows:" $GitVersionOutput } @@ -186,9 +200,12 @@ task Version { #Copy all powershell module "artifacts" to Build Directory task CopyFilesToBuildDir { - $FilesToCopy = "Public","Private","lib","Types","$($Env:BHProjectName).psm1","$($Env:BHProjectName).psd1",".\LICENSE","README.md" - #Make sure we are in the project location in case somethign changed - Set-Location $ENV:BHProjectPath + #Make sure we are in the project location in case somethign changedf + Set-Location $buildRoot + + #The file or file paths to copy, excluding the powershell psm1 and psd1 module and manifest files which will be autodetected + #TODO: Move this somewhere higher in the hierarchy into a settings file, or rather go the "exclude" route + $FilesToCopy = "lib","Public","Private","Types","LICENSE","README.md","$($Env:BHProjectName).psm1","$($Env:BHProjectName).psd1" copy-item -Recurse -Path $FilesToCopy -Destination $ProjectBuildPath @PassThruParams } @@ -212,7 +229,6 @@ task UpdateMetadata CopyFilesToBuildDir,Version,{ Update-Metadata -Path $ProjectBuildManifest -PropertyName ModuleVersion -Value $ProjectBuildVersion # Are we in the master or develop/development branch? Bump the version based on the powershell gallery if so, otherwise add a build tag - write-build Yellow "BranchName: $BranchName" if ($BranchName -match '^(master|dev(elop)?(ment)?)$') { write-build Green "In Master/Develop branch, adding Tag Version $ProjectBuildVersion to this build" $Script:ProjectVersion = $ProjectBuildVersion @@ -234,12 +250,25 @@ task UpdateMetadata CopyFilesToBuildDir,Version,{ } else { write-build Green "Not in Master/Develop branch, marking this as a feature prelease build" $Script:ProjectVersion = $ProjectSemVersion - if (-not (git tag -l "$ProjectSemVersion")) { - exec { git tag "$ProjectSemVersion" -a -m "Automatic GitVersion Prerelease Tag Generated by Invoke-Build" } - } else { - write-warning "Tag $ProjectSemVersion already exists. This is normal if you are running multiple builds on the same commit, otherwise this should not happen" + #Set an email address for tag commit to work if it isn't already present + if (-not (git config user.email)) { + git config user.email "buildtag@$env:ComputerName" + $tempTagGitEmailSet = $true + } + try { + $gitVersionTag = "v$ProjectSemVersion" + if (-not (git tag -l $gitVersionTag)) { + exec { git tag "$gitVersionTag" -a -m "Automatic GitVersion Prerelease Tag Generated by Invoke-Build" } + } else { + write-warning "Tag $gitVersionTag already exists. This is normal if you are running multiple builds on the same commit, otherwise this should not happen" + } + } finally { + if ($tempTagGitEmailSet) { + git config --unset user.email + } } + #Create an empty file in the root directory of the module for easy identification that its not a valid release. "This is a prerelease build and not meant for deployment!" > (Join-Path $ProjectBuildPath "PRERELEASE-$ProjectSemVersion") } @@ -255,6 +284,7 @@ task Pester { $PesterResultFile = "$($env:BHBuildOutput)\$($env:BHProjectName)-TestResults_PS$PSVersion`_$TimeStamp.xml" $PesterParams = @{ + Script = "Tests" OutputFile = $PesterResultFile OutputFormat = "NunitXML" PassThru = $true @@ -266,13 +296,13 @@ task Pester { $PesterParams.PesterOption = (new-pesteroption -IncludeVSCodeMarker) } - $PesterResult = Invoke-Pester @PesterParams + Invoke-Pester @PesterParams | Out-Null # In Appveyor? Upload our test results! If ($ENV:APPVEYOR) { $UploadURL = "https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)" write-verbose "Detected we are running in AppVeyor" - write-verbose "Uploading Pester Results to $UploadURL" + write-verbose "Uploading Pester Results to Appveyor: $UploadURL" (New-Object 'System.Net.WebClient').UploadFile( "https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", $PesterResultFile ) @@ -286,7 +316,7 @@ task Pester { "`n" } -task PackageArtifacts Version,{ +task Package Version,{ $ZipArchivePath = (join-path $env:BHBuildOutput "$env:BHProjectName-$ProjectVersion.zip") write-build green "Writing Finished Module to $ZipArchivePath" #Package the Powershell Module @@ -300,7 +330,7 @@ task PackageArtifacts Version,{ } #Deploy Supertask -task Deploy PackageArtifacts +task Deploy Package #Build SuperTask task Build Clean,CopyFilesToBuildDir,UpdateMetadata From a7559a61f5a8589b4b44510c53a27ad6c37bc310 Mon Sep 17 00:00:00 2001 From: JustinGrote Date: Wed, 7 Mar 2018 16:39:23 -0800 Subject: [PATCH 3/5] More random fixes --- PowerHTML.build.ps1 => PSModule.build.ps1 | 2 +- Tests/00-PowershellModule.Tests.ps1 | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename PowerHTML.build.ps1 => PSModule.build.ps1 (99%) diff --git a/PowerHTML.build.ps1 b/PSModule.build.ps1 similarity index 99% rename from PowerHTML.build.ps1 rename to PSModule.build.ps1 index 33f3d74..e85ebc3 100644 --- a/PowerHTML.build.ps1 +++ b/PSModule.build.ps1 @@ -324,7 +324,7 @@ task Package Version,{ #If we are in Appveyor, push completed zip to Appveyor Artifact if ($env:APPVEYOR) { - write-host -ForegroundColor Green "Detected Appveyor, pushing Powershell Module archive to Artifacts" + write-build Green "Detected Appveyor, pushing Powershell Module archive to Artifacts" Push-AppveyorArtifact $ZipArchivePath } } diff --git a/Tests/00-PowershellModule.Tests.ps1 b/Tests/00-PowershellModule.Tests.ps1 index 326a838..59f56e9 100644 --- a/Tests/00-PowershellModule.Tests.ps1 +++ b/Tests/00-PowershellModule.Tests.ps1 @@ -3,10 +3,9 @@ if (-not (import-module BuildHelpers -PassThru -erroraction silentlycontinue)) { install-module buildhelpers -scope currentuser -erroraction stop -force import-module BuildHelpers -erroraction stop } - +Set-BuildEnvironment -force $PSVersion = $PSVersionTable.PSVersion.Major $BuildOutputProject = Join-Path $env:BHBuildOutput $env:BHProjectName - Describe 'Powershell Module' { $ModuleManifestPath = Join-Path $BuildOutputProject '\*.psd1' Context "$env:BHProjectName" { @@ -67,8 +66,9 @@ Describe 'Powershell Module' { } Describe 'PSScriptAnalyzer' { - $results = Invoke-ScriptAnalyzer -Path $BuildOutputProject -Recurse -ExcludeRule "PSAvoidUsingCmdletAliases" -Verbose:$false + $results = Invoke-ScriptAnalyzer -Path $BuildOutputProject -Recurse -ExcludeRule "PSAvoidUsingCmdletAliases","PSAvoidGlobalVars" -Verbose:$false It 'PSScriptAnalyzer returns zero errors for all files in the repository' { + $results $results.Count | Should Be 0 } } \ No newline at end of file From 78c8afba9fcd3084cfb74a8bf4e0d6b77eee62b4 Mon Sep 17 00:00:00 2001 From: JustinGrote Date: Wed, 7 Mar 2018 16:51:40 -0800 Subject: [PATCH 4/5] Don't Test if not built --- PSModule.build.ps1 | 4 ++++ Tests/00-PowershellModule.Tests.ps1 | 6 +++++- Tests/PowerHTML.Tests.ps1 | 1 - 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/PSModule.build.ps1 b/PSModule.build.ps1 index e85ebc3..ea53483 100644 --- a/PSModule.build.ps1 +++ b/PSModule.build.ps1 @@ -280,6 +280,10 @@ task UpdateMetadata CopyFilesToBuildDir,Version,{ #Pester Testing task Pester { + $BuildOutputProject = Join-Path $env:BHBuildOutput $env:BHProjectName + $ModuleManifestPath = Join-Path $BuildOutputProject '\*.psd1' + if (-not (Test-Path $ModuleManifestPath)) {throw "Module Manifest not found at $ModuleManifestPath. Did you run 'Invoke-Build Build' first?"} + write-verboseheader "Starting Pester Tests..." $PesterResultFile = "$($env:BHBuildOutput)\$($env:BHProjectName)-TestResults_PS$PSVersion`_$TimeStamp.xml" diff --git a/Tests/00-PowershellModule.Tests.ps1 b/Tests/00-PowershellModule.Tests.ps1 index 59f56e9..5b93384 100644 --- a/Tests/00-PowershellModule.Tests.ps1 +++ b/Tests/00-PowershellModule.Tests.ps1 @@ -6,8 +6,12 @@ if (-not (import-module BuildHelpers -PassThru -erroraction silentlycontinue)) { Set-BuildEnvironment -force $PSVersion = $PSVersionTable.PSVersion.Major $BuildOutputProject = Join-Path $env:BHBuildOutput $env:BHProjectName +$ModuleManifestPath = Join-Path $BuildOutputProject '\*.psd1' + +if (-not (Test-Path $ModuleManifestPath)) {throw "Module Manifest not found at $ModuleManifestPath. Did you run 'Invoke-Build Build' first?"} + Describe 'Powershell Module' { - $ModuleManifestPath = Join-Path $BuildOutputProject '\*.psd1' + Context "$env:BHProjectName" { $ModuleName = $env:BHProjectName It 'Has a valid Module Manifest' { diff --git a/Tests/PowerHTML.Tests.ps1 b/Tests/PowerHTML.Tests.ps1 index e79cecb..efdf458 100644 --- a/Tests/PowerHTML.Tests.ps1 +++ b/Tests/PowerHTML.Tests.ps1 @@ -4,7 +4,6 @@ if ((get-item .).Name -match 'Tests') {Set-Location $PSScriptRoot\..} $ModuleName = 'PowerHTML' $ModuleManifestName = "$ModuleName.psd1" $ModuleManifestPath = "$PSScriptRoot\..\$ModuleManifestName" - Describe 'HTML Basic Conversion' { $HTMLString = @" From ea1ac50a3d2fdbecff3e99f501ec6700f33e798c Mon Sep 17 00:00:00 2001 From: JustinGrote Date: Wed, 7 Mar 2018 17:25:44 -0800 Subject: [PATCH 5/5] Add packaging and artifact upload to build task --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index f0e41de..ea85048 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -21,7 +21,7 @@ skip_commits: #To be portable to non-Appveyor builds #We run it at the test step so that we can upload test results back to the system. build_script: - - ps: Invoke-Build Build + - ps: Invoke-Build Build,Package test_script: - ps: Invoke-Build Test