Hotfix Pipeline

Jay Asbury asked on June 11, 2025 00:14

I have a PowerShell script that I wrote for our project that does about 85% lift of applying the Kentico hotfix and then doing post items like applying nuget package upgrades and consolidating nuget packages in solution.

<#
.SYNOPSIS
    Runs steps to apply a Kentico hotfix to the current project
.DESCRIPTION
    Runs steps to apply a Kentico hotfix to the current project including:
    1. Build current project and apply current CI
    2. Stop IIS
    3. Apply Kentico Hotfix
    4. Staging files
    5. Waiting for any commits to be created
    6. Updating Kentico Nuget packages
    7. Consolidating Nuget packages
    8. Building current project and SKIPPING current CI
    9. Exporting local database
    10. Regenerating CI Repository
    11. Remind user to fix binding redirects in the CMS solution
    12. Restarting IIS
.NOTES
    To undo changes, reset to before any created commits and run Reset-ToCleanSlate.ps1
.PARAMETER HotFixPath
    Path to the hotfix.exe file from the installed hotfix from Kentico found at https://devnet.kentico.com/download/hotfixes.
    Not the file you download, but the file found where you installed IE: "C:\Program Files (x86)\Kentico\13.0\Hotfix130_130\Hotfix.exe"
.EXAMPLE
    .\etc\Apply-KenticoHotfix.ps1 -HotFixPath "C:\Program Files (x86)\Kentico\13.0\Hotfix130_130\Hotfix.exe"
#>

I would love to automate even further. Once area that I have no control of is the gui of the hotfix tool and the hotfix installer. If there were command line arguments to both that would allow me to run in say an azure build pipeline. Imagine I kick off the pipeline and it does the folowing:

  1. Hits rss feed to get latest hotfix installer download and also get the version of hotfix
  2. git fetch all
  3. git checkout origin/develop
  4. git checkout -b Apply_Hotfix_$HotfixVersion
  5. Downloads and runs something like hotfixinstaller.exe -cli -extract C:\hotfixExtracted -OtherArgsAsNeeded
  6. .\etc\ApplyProjectOverrides to update connectionString info for pipeline run for localdb use
  7. Run .\etc\ImportDatabase -Blaa to setup a localdb instance from the current bacpac file in repo
  8. rm .\db*.bacpac
  9. .\etc\apply-KenticoHotfix -HotfixPath C:\hotfixExtracted\hotfix.exe
  10. git add .\src*
  11. git add .\db*.bacpac
  12. git add .\etc\project.xml
  13. git commit -m "Applied Kentico Hotfix $HotfixVersion"
  14. git push

Then the developer checks out the branch and does any special steps in hotfix instructions and fixes up the db export and CI repository changes as needed. What I want to know is do the hotfix installer and hotfix tool support cli and args to drive to prevent modal issues? Things like when a conflict is detected and the *.new file and having to hit next next next in dialog would not be viable.

   Please, sign in to be able to submit a new answer.