Fix StepTemplate "SSIS deploy ispac from package parameter". Prefer avail SSIS assemblies; Fall back to pinned SqlServer module#1658
Open
bcullman wants to merge 2 commits intoOctopusDeploy:masterfrom
Conversation
|
Start Hyponome locally |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The current template assumes the installed SqlServer PowerShell module contains the SSIS assemblies and attempts to load all DLLs from that module folder. On systems with newer SqlServer module versions, that assumption no longer holds, and the template can fail during assembly loading with errors like:
The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)Solution
The runtime selection logic has been updated to use a clearer, more targeted decision path:
This preserves the existing feature set, including environment synchronization, while avoiding unnecessary temporary module downloads on hosts where the required SSIS assemblies are already present.
Additional behavior changes
Why this approach
This keeps the template compatible with environments that already have SSIS assemblies available, while still preserving the pinned-module fallback for environments that do not.
It also narrows the fallback path so the pinned module is only used when it is actually required, instead of downloading and importing it unconditionally.
Scope
This change is intended to be a runtime-loading fix and structural cleanup. The deployment behavior and existing template features are otherwise preserved.
Pre-requisites
[✔] Id should be a GUID that is not 00000000-0000-0000-0000-000000000000
NOTE If you are modifying an existing step template, please make sure that you do not modify the Id property (updating the Id will break the Library sync functionality in Octopus).
[✔] Version should be incremented, otherwise the integration with Octopus won't update the step template correctly
[✔] Parameter names should not start with $
[✔] Step template parameter names (the ones declared in the JSON, not the script body) should be prefixed with a namespace so that they are less likely to clash with other user-defined variables in Octopus (see OctopusDeploy/Issues#2126). For example, use an abbreviated name of the step template or the category of the step template).
[✔] LastModifiedBy field must be present, and (optionally) updated with the correct author
[✔] The best practices documented here have been applied
[NA] If a new Category has been created:
[NA] An image with the name {categoryname}.png must be present under the step-templates/logos folder
[NA] The switch in the humanize function in gulpfile.babel.js must have a case statement corresponding to it
Fixes #1657