Hi,
I tried to migrate my pipeline from V4 version to V5.
I encounter some breaking changes.
My pipeline consist of:
- Octopus Install (OctoInstaller)
- Octopus Pack (OctopusPack)
- Octopus Push (OctopusPush)
First breaking change, the OctoInstaller task.
In our pipeline the task was using latest as version input, this doesn’t work anymore in the V5 version.
It try to download the version latest which doesn’t exist on the server and generate a 403 error.
The workaround is to explicitly declare the latest version from the site, 8.0.1 at the moment.
I don’t know if this limitation is intended or not, but I did’t find any mention on that anywhere.
The second breaking change, the removal of the OctopusPack task in V5.
The recommended alternative is to use the native Archive Task, this is ok if you use zip format but not if using nupkg format to push on Octopus internal Nuget feed. In this case you have to use Nuget directly and provide a nuspec file.
The OctopusPack was taking directly the input values, we now having to dynamically generate a nuspec file, doable but ugly.
bash: |
cat > package.nuspec <<- EOF
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>${{ parameters.packageName }}</id>
<version>${{ parameters.packageVersion }}</version>
<description>A deployment package created from files on disk.</description>
<authors>${{ parameters.packageAuthor }}</authors>
</metadata>
<files>
<file src="${{ parameters.include }}" target="\" />
</files>
</package>
EOF
There is also a second difference, the problem is that the version handling between Nuget and OctopusPack is different. I use package version format YYYYMMDD.BuildId, OctopusPack take it as is but Nuget normalize it to Major.Minor.Patch so YYYYMMDD.BuildId become YYYYMMDD.BuildId.0.
I want to keep the same format as before so I forced to “denormalize” the package version after the pack, it’s very painful.
Are all these breaking changes intended ?
Have I to wait to a task update or do I need to deal with it ?
Thanks