v5.0.57
v5 tasks released
A new major version of all the tasks has been released.
Octopus CLI installer task
Up till v4 of this extension we have been shipping as part of the vsix extension the embedded version of OctopusCLI.
This has the benefit of letting the user use our tasks without having to remember to install the OctopusCLI beforehand.
However this is also an antipattern,
- It locks customers on a specific version of OctopusCLI
- It makes the vsix package larger and therefore very difficult to keep it under the 25MB limit of TFS 2018
- It is not what MS recommends, see https://github.com/microsoft/azure-pipelines-tool-lib/blob/master/docs/overview.md
- It requires .NET Core 2.0/3.1 to be installed on the agent
So in v5 the Octopus CLI Installer task downloads a self-contained (not dependant on .Net Core being installed on the agent) version of the Octopus CLI. We also continue to support having the Octopus CLI pre-installed in the agent, added to the PATH environment variable and also listed in the capabilities of the agent (for on-prem).
A typical v5 pipeline looks like this now:
steps:
- task: OctoInstaller@5
displayName: Install Octopus CLI tool
inputs:
version: $(cliVersion)
- task: ArchiveFiles@2
displayName: Package TestProject
inputs:
rootFolderOrFile: $(Build.Repository.LocalPath)
archiveFile: $(Build.ArtifactStagingDirectory)/MyPackage.$(Build.BuildNumber).zip
- task: OctopusPush@5
displayName: Push Packages to Octopus
inputs:
OctoConnectedServiceName: 'Octopus Server'
Space: $(space)
Package: $(Build.ArtifactStagingDirectory)/MyPackage.$(Build.BuildNumber).zip
Replace: 'true'
- task: OctopusCreateRelease@5
displayName: Create Octopus Release
inputs:
OctoConnectedServiceName: 'Octopus Server'
Space: $(space)
ProjectName: 'Test Project'
ReleaseNumber: $(Build.BuildNumber)
Remove Task, "Package Application for Octopus"
The task entitled "Package Application for Octopus" or "OctopusPack" packages an application into a NuGet package or a ZIP archive.
This task was created and supported through the Octopus CLI back when Octopus Deploy only supported NuGet packages.
At that time, it wasn't easy to package applications as NuGet packages. Later, we added support for ZIP archives, tarballs, etc. Eventually, the need/use for this task diminished due to alternatives like dotnet pack
.
Packaging applications is different from producing artifacts to be consumed by development tools like nuget.
Migrating from "Package Application for Octopus"
The recommended path forward is to replace this task with the Archive Files task.
Here is an example of how it would look like
Before:
After:
Allow users to add Release Notes as part of CreateRelease task
In V3 we used to support adding "custom release notes"
Then in V4 we decided to deprecate that feature in favour of the "Build Information" task
However Build Information is not for everyone, and some customers want to just add "Release Notes" to a release in textual format.
So in V5 we have removed the "ChangeSets and Workitems" but left the text field to add Release notes.
This means users can just type their release notes in the field to be included in the release.
This means users need to make a choice about release notes, they can include them manually, or use the "Build Information" task.