Azure Dev Ops Tasks V5 regression

Hi,

I tried to migrate my pipeline from V4 version to V5.
I encounter some breaking changes.

My pipeline consist of:

  1. Octopus Install (OctoInstaller)
  2. Octopus Pack (OctopusPack)
  3. 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

Hey @kevin.petit,
Thanks for reaching out on our community forum. Octopack is an older tool of ours that is mostly deprecated due to not being able to support .NET Core applications. With newer pipeline versions of Azure DevOps and other build tools, we would recommend using the Microsoft Archive Files task to package your application into a zip file and then use the Octopus Push Package step to upload this to Octopus as detailed here.

If you require a .nupkg format for the package, then using NuGet’s tooling for packaging would be recommended.

I hope this helps clarify things for you.

Best,
Brent

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.