Update Service Fabric Manifests task
Update Service Fabric App Versions task
Azure Pipelines | Azure DevOps Server 2019 | TFS 2018 | TFS 2017
Use this task in a build pipeline to automatically update the versions of a packaged Service Fabric app. This task appends a version suffix to all service and app versions, specified in the manifest files, in an Azure Service Fabric app package.
This task is not yet available in release pipelines.
# Update Service Fabric manifests # Automatically update portions of application and service manifests in a packaged Azure Service Fabric application - task: ServiceFabricUpdateManifests@2 inputs: #updateType: 'Manifest versions' # Options: manifest Versions, docker Image Settings applicationPackagePath: #versionSuffix: '.$(Build.BuildNumber)' # Required when updateType == Manifest Versions #versionBehavior: 'Append' # Optional. Options: append, replace #updateOnlyChanged: false # Required when updateType == Manifest Versions #pkgArtifactName: # Optional #logAllChanges: true # Optional #compareType: 'LastSuccessful' # Optional. Options: lastSuccessful, specific #buildNumber: # Optional #overwriteExistingPkgArtifact: true # Optional #imageNamesPath: # Optional #imageDigestsPath: # Required when updateType == Docker Image Settings
The location of the Service Fabric application package to be deployed to the cluster.
The value appended to the versions in the manifest files. Default is `.$(Build.BuildNumber)`.
**Tip:** You can modify the [build number format](https://go.microsoft.com/fwlink/?LinkId=761520) directly or use a [logging command](https://go.microsoft.com/fwlink/?LinkId=821347) to dynamically set a variable in any format. For example, you can use `$(VersionSuffix)` defined in a PowerShell task:
`$versionSuffix = ".$([DateTimeOffset]::UtcNow.ToString('yyyyMMdd.HHmmss'))"`
`Write-Host "##vso[task.setvariable variable=VersionSuffix;]$versionSuffix"`
Specify whether to append the version value to existing values in the manifest files, or replace them.
|Update only if changed||
Select this check box if you want to append the new version suffix to only the packages that have changed from a previous build. If no changes are found, the version suffix from the previous build will be appended.
**Note:** By default, the compiler will create different outputs even if you made no changes. Use the [deterministic compiler flag](https://go.microsoft.com/fwlink/?LinkId=808668) to ensure builds with the same inputs produce the same outputs.
|Package Artifact Name||
The name of the artifact containing the application package from the previous build.
|Log all changes||
Select this check box to compare all files in every package and log if the file was added, removed, or if its content changed. Otherwise, compare files in a package only until the first change is found for potentially faster performance.
Specify whether to compare against the last completed, successful build or against a specific build.
If comparing against a specific build, the build number to use.
This task can only be used in a build pipeline to automatically update the versions of a packaged Service Fabric app.
This task support two types of update:
Manifest version: It will update Service and Application versions specified in manifest files in Service fabric application package. It specified, it compares current files against a previous build and updates version only for those services which have been changed.
Docker image settings: It will update docker container image settings specified in manifest files in Service fabric application package. The image settings to be placed are picked from two files:
a. Image names file: This file is generated by build task
b. Image digests file: This file is generated by docker task when it pushes images to registry
|(Required) Specify the type of update that should be made to the manifest files. In order to use both update types, add an instance of this task to the build pipeline for each type of update to be executed|
Default value: Manifest versions
|(Required) Path to the application package. [Variables](https://go.microsoft.com/fwlink/?LinkID=550988) and wildcards can be used in the path|
|(Required) The value used to specify the version in the manifest files. Default is .$(Build.BuildNumber)|
Default value: .$(Build.BuildNumber)
|Specify whether to append the version value to existing values in the manifest files or replace them|
Default value: Append
Update only if changed
|(Required) Incrementally update only the packages that have changed. Use the [deterministic compiler flag](https://go.microsoft.com/fwlink/?LinkId=808668) to ensure builds with the same inputs produce the same outputs|
Default value: false
Package Artifact Name
|The name of the artifact containing the application package for comparison|
Log all changes
|Compare all files in every package and log if the file was added, removed, or if its content changed. Otherwise, compare files in a package only until the first change is found for faster performance|
Default value: true
|The build for comparison|
Default value: LastSuccessful
|The build number for comparison|
Overwrite Existing Package Artifact
|Always download a new copy of the artifact. Otherwise use an existing copy, if present|
Default value: true
Image Names Path
|Path to a text file that contains the names of the Docker images associated with the Service Fabric application that should be updated with digests. Each image name must be on its own line and must be in the same order as the digests in Image Digests file. If the images are created by the Service Fabric project, this file is generated as part of the Package target and its output location is controlled by the property BuiltDockerImagesFilePath|
Image Digests Path
|(Required) Path to a text file that contains the digest values of the Docker images associated with the Service Fabric application. This file can be output by the [Docker task](https://go.microsoft.com/fwlink/?linkid=848006) when using the push action. The file should contain lines of text in the format of 'registry/image_name@digest_value'|
This task is open source on GitHub. Feedback and contributions are welcome.
Q & A
Do I need an agent?
You need at least one agent to run your build or release. Get an agent for Linux, macOS, or Windows.
I'm having problems. How can I troubleshoot them?
I can't select a default agent pool and I can't queue my build or release. How do I fix this?
See Agent pools.