From 68b1e61b697421e62db3b5ae8032450577119de7 Mon Sep 17 00:00:00 2001 From: OCram85 Date: Wed, 13 Jul 2022 15:09:01 +0200 Subject: [PATCH] add workaround helper for dev dependencies --- .drone.yml | 16 ++++++++++ tools/DevDependency.psm1 | 64 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 tools/DevDependency.psm1 diff --git a/.drone.yml b/.drone.yml index 6978384..0a0d422 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,6 +17,8 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Invoke-FileLinter }" @@ -27,6 +29,8 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Invoke-Linter }" @@ -37,6 +41,8 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Invoke-UnitTest -ExcludeTag 'Integration' }" @@ -52,6 +58,8 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Send-PRComment }" @@ -65,6 +73,8 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Invoke-BuildState }" @@ -88,11 +98,15 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Update-ModuleMeta -Verbose }" - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; New-BuildPackage -AdditionalPath './src/Rules' -Verbose }" @@ -117,6 +131,8 @@ steps: commands: - | pwsh -NonInteractive -c "& { + Import-Module './tools/DevDependency.psm1' -ErrorAction 'Stop'; + Invoke-FixDevDependency; Import-Module './src/DroneHelper.psd1' -ErrorAction 'Stop'; Invoke-Publish -Verbose }" diff --git a/tools/DevDependency.psm1 b/tools/DevDependency.psm1 new file mode 100644 index 0000000..58542ab --- /dev/null +++ b/tools/DevDependency.psm1 @@ -0,0 +1,64 @@ +function Invoke-FixDevDependency { + <# + .SYNOPSIS + Installs dev dependencies. + + .DESCRIPTION + Invoke-FixDevDependency acts as workaround to load the dependencies needed to load the pwsh module. + This is just standalone version of the embedded `Invoke-InstallDependency` which can't be called + by the DroneHelper build pipeline itself. + #> + + [CmdletBinding()] + param () + + process { + try { + $PSScriptParams = @{ + Name = 'PSScriptAnalyzer' + Scope = 'CurrentUser' + RequiredVersion = '1.20.0' + Force = $true + SkipPublisherCheck = $true + AllowClobber = $true + Verbose = $VerbosePreference + ErrorAction = 'Stop' + } + Install-Module @PSScriptParams + + $PesterParams = @{ + Name = 'Pester' + Scope = 'CurrentUser' + RequiredVersion = '5.3.1' + Force = $true + SkipPublisherCheck = $true + AllowClobber = $true + Verbose = $VerbosePreference + ErrorAction = 'Stop' + } + Install-Module @PesterParams + + $PoshParams = @{ + Name = 'posh-git' + Scope = 'CurrentUser' + RequiredVersion = '1.1.0' + Force = $true + SkipPublisherCheck = $true + AllowClobber = $true + Verbose = $VerbosePreference + ErrorAction = 'Stop' + } + Install-Module @PoshParams + } + catch { + $ExecParams = @{ + Exception = [System.Exception]::new( + 'Could not install required build dependencies!', + $PSItem.Exception + ) + ErrorAction = 'Stop' + } + Write-Error @ExecParams + } + } +}