diff --git a/.gitattributes b/.gitattributes
index 7033fed073e1..867121af6641 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -85,4 +85,6 @@
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
-*.RTF diff=astextplain
\ No newline at end of file
+*.RTF diff=astextplain
+
+*.lcl text=auto
\ No newline at end of file
diff --git a/Tasks/ANTV1/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/ANTV1/Strings/resources.resjson/fr-FR/resources.resjson
deleted file mode 100644
index b6a0ea35609c..000000000000
--- a/Tasks/ANTV1/Strings/resources.resjson/fr-FR/resources.resjson
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "loc.friendlyName": "Ant",
- "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://go.microsoft.com/fwlink/?LinkID=613718) ou [consulter la documentation d'Ant](http://ant.apache.org/)",
- "loc.description": "Générer avec Apache Ant",
- "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)",
- "loc.group.displayName.junitTestResults": "Résultats du test JUnit",
- "loc.group.displayName.codeCoverage": "Couverture du code",
- "loc.group.displayName.advanced": "Avancé",
- "loc.input.label.antBuildFile": "Fichier de build Ant",
- "loc.input.help.antBuildFile": "Chemin relatif de la racine de dépôt au fichier de build Ant.",
- "loc.input.label.options": "Options",
- "loc.input.help.options": "Indiquez les options à passer à la ligne de commande Ant. Vous pouvez fournir vos propres propriétés (par exemple ***-DmyProperty=myPropertyValue***), et utiliser les variables intégrées (par exemple ***-DcollectionId=$(system.collectionId)***). Sinon, les variables intégrées sont déjà définies comme variables d'environnement durant la génération et peuvent être passées directement (par exemple ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).",
- "loc.input.label.targets": "Cible(s)",
- "loc.input.help.targets": "Liste facultative de cibles à générer, séparées par des espaces. Si rien n'est spécifié, la cible 'default' est utilisée. Si aucune cible 'default' n'est définie, Ant 1.6.0 ou ultérieur génère des tâches qui sont toutes de niveau supérieur.",
- "loc.input.label.publishJUnitResults": "Publier sur Azure Pipelines",
- "loc.input.help.publishJUnitResults": "Sélectionnez cette option pour publier les résultats des tests JUnit produits par la build Ant sur Azure Pipelines. Chaque fichier de résultats des tests correspondant à 'Fichiers de résultats des tests' est publié en tant que série de tests dans Azure Pipelines.",
- "loc.input.label.testResultsFiles": "Fichiers de résultats des tests",
- "loc.input.help.testResultsFiles": "Chemin des fichiers de résultats des tests. Les caractères génériques sont autorisés. ([Plus d'informations](https://go.microsoft.com/fwlink/?linkid=856077)). Par exemple, '**/TEST-*.xml' pour tous les fichiers XML dont le nom commence par TEST-.",
- "loc.input.label.testRunTitle": "Titre de la série de tests",
- "loc.input.help.testRunTitle": "Indiquez le nom de la série de tests.",
- "loc.input.label.codeCoverageTool": "Outil de couverture du code",
- "loc.input.help.codeCoverageTool": "Sélectionnez l'outil de couverture du code. Pour prendre en charge l'agent local, consultez le lien vers les informations supplémentaires ci-dessous.",
- "loc.input.label.classFilesDirectories": "Répertoires de fichiers de classe",
- "loc.input.help.classFilesDirectories": "Liste de chemins relatifs séparés par une virgule, allant du fichier de build Ant aux répertoires contenant les fichiers de classe et d'archive (JAR, WAR, etc.). La couverture du code est signalée pour les fichiers de classe dans ces répertoires. Exemple : target/classes,target/testClasses.",
- "loc.input.label.classFilter": "Filtres d'inclusion/exclusion de classes",
- "loc.input.help.classFilter": "Liste de filtres séparés par une virgule, permettant d'inclure ou d'exclure des classes dans la collecte de la couverture du code. Exemple : +:com.*,+:org.*,-:my.app*.*.",
- "loc.input.label.srcDirectories": "Répertoires de fichiers sources",
- "loc.input.help.srcDirectories": "Liste de chemins relatifs séparés par une virgule, allant du fichier de build Ant aux répertoires de code source. Les rapports de couverture du code les utilisent pour mettre le code source en surbrillance. Exemple : src/java,src/Test.",
- "loc.input.label.failIfCoverageEmpty": "Échec quand les résultats de la couverture du code sont manquants",
- "loc.input.help.failIfCoverageEmpty": "Échec de la build si la couverture du code ne produit aucun résultat à publier.",
- "loc.input.label.antHomeUserInputPath": "Définir le chemin de ANT_HOME",
- "loc.input.help.antHomeUserInputPath": "Si elle est définie, cette valeur remplace les variables d'environnement ANT_HOME existantes par le chemin spécifié.",
- "loc.input.label.javaHomeSelection": "Définir JAVA_HOME par",
- "loc.input.help.javaHomeSelection": "Définit JAVA_HOME en sélectionnant une version de JDK qui sera découverte au moment des builds ou en tapant le chemin de JDK.",
- "loc.input.label.jdkVersion": "Version du kit JDK",
- "loc.input.help.jdkVersion": "Essaiera de découvrir le chemin d'accès à la version du JDK sélectionné et définira JAVA_HOME en conséquence.",
- "loc.input.label.jdkUserInputPath": "Chemin du kit JDK",
- "loc.input.help.jdkUserInputPath": "Définissez JAVA_HOME sur le chemin d'accès indiqué.",
- "loc.input.label.jdkArchitecture": "Architecture du kit JDK",
- "loc.input.help.jdkArchitecture": "Indiquez éventuellement l'architecture (x86, x64) du JDK.",
- "loc.messages.LocateJVMBasedOnVersionAndArch": "Localiser JAVA_HOME pour Java %s %s",
- "loc.messages.UnsupportedJdkWarning": "JDK 9 et JDK 10 ne sont plus pris en charge. Passez à une version plus récente de votre projet et de votre pipeline. Tentative de génération avec JDK 11...",
- "loc.messages.FailedToLocateSpecifiedJVM": "Échec de la localisation de la version spécifiée du kit JDK. Vérifiez que la version spécifiée du kit JDK est installée sur l'agent, que la variable d'environnement '%s' existe et que sa valeur correspond à l'emplacement d'un kit JDK correspondant. Sinon, utilisez la tâche [Programme d'installation de l'outil Java] (https://go.microsoft.com/fwlink/?linkid=875287) pour installer le kit JDK souhaité.",
- "loc.messages.DiscontinueAntCodeCoverage": "Nous mettons fin au support de la génération automatisée de rapports de couverture du code pour les projets Ant. Pour plus d'informations, consultez https://go.microsoft.com/fwlink/?linkid=875306.",
- "loc.messages.NoCodeCoverage": "Il n'existe aucun résultat de couverture du code à publier.",
- "loc.messages.NoTestResults": "Les fichiers de résultats des tests correspondant à %s sont introuvables. La publication des résultats des tests JUnit est ignorée."
-}
\ No newline at end of file
diff --git a/Tasks/ANTV1/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/ANTV1/Strings/resources.resjson/ru-RU/resources.resjson
index f913b01323ef..83290a4b0a69 100644
--- a/Tasks/ANTV1/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/ANTV1/Strings/resources.resjson/ru-RU/resources.resjson
@@ -40,7 +40,7 @@
"loc.input.help.jdkArchitecture": "Дополнительно укажите архитектуру JDK (x86, x64).",
"loc.messages.LocateJVMBasedOnVersionAndArch": "Найдите JAVA_HOME для Java %s %s",
"loc.messages.UnsupportedJdkWarning": "Поддержка JDK 9 и JDK 10 прекращена. Переключитесь на более позднюю версию в проекте и конвейере. Выполняется попытка сборки с помощью JDK 11...",
- "loc.messages.FailedToLocateSpecifiedJVM": "Не удалось найти указанную версию JDK. Убедитесь в том, что указанная версия JDK установлена в агенте и что переменная среды \"%s\" существует и ее значением является расположение соответствующего пакета JDK, или используйте [установщик средств Java] (https://go.microsoft.com/fwlink/?linkid=875287), чтобы установить требуемую версию JDK.",
+ "loc.messages.FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.",
"loc.messages.DiscontinueAntCodeCoverage": "Мы прекращаем поддержку автоматического создания отчетов об объемах протестированного кода для проектов Ant. Подробности см. на странице https://go.microsoft.com/fwlink/?linkid=875306.",
"loc.messages.NoCodeCoverage": "Результаты по объему протестированного кода для публикации не найдены.",
"loc.messages.NoTestResults": "Не найдены файлы результатов теста, соответствующие \"%s\". Публикация результатов теста JUnit пропускается."
diff --git a/Tasks/ANTV1/task.json b/Tasks/ANTV1/task.json
index a51dad4e60ca..0f017f03f3e3 100644
--- a/Tasks/ANTV1/task.json
+++ b/Tasks/ANTV1/task.json
@@ -1,270 +1,270 @@
{
- "id": "3A6A2D63-F2B2-4E93-BCF9-0CBE22F5DC26",
- "name": "Ant",
- "friendlyName": "Ant",
- "description": "Build with Apache Ant",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/ant",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613718) or [see the Ant documentation](http://ant.apache.org/)",
- "category": "Build",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 246,
- "Patch": 2
- },
- "demands": [
- "ant"
- ],
- "minimumAgentVersion": "1.89.0",
- "groups": [
- {
- "name": "junitTestResults",
- "displayName": "JUnit Test Results",
- "isExpanded": true
+ "id": "3A6A2D63-F2B2-4E93-BCF9-0CBE22F5DC26",
+ "name": "Ant",
+ "friendlyName": "Ant",
+ "description": "Build with Apache Ant",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/ant",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613718) or [see the Ant documentation](http://ant.apache.org/)",
+ "category": "Build",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "codeCoverage",
- "displayName": "Code Coverage",
- "isExpanded": true
+ "demands": [
+ "ant"
+ ],
+ "minimumAgentVersion": "1.89.0",
+ "groups": [
+ {
+ "name": "junitTestResults",
+ "displayName": "JUnit Test Results",
+ "isExpanded": true
+ },
+ {
+ "name": "codeCoverage",
+ "displayName": "Code Coverage",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "instanceNameFormat": "Ant $(options) $(antBuildFile)",
+ "inputs": [
+ {
+ "name": "antBuildFile",
+ "aliases": [
+ "buildFile"
+ ],
+ "type": "filePath",
+ "label": "Ant build file",
+ "defaultValue": "build.xml",
+ "required": true,
+ "helpMarkDown": "Relative path from the repository root to the Ant build file."
+ },
+ {
+ "name": "options",
+ "type": "string",
+ "label": "Options",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Provide any options to pass to the Ant command line. You can provide your own properties (for example, ***-DmyProperty=myPropertyValue***) and also use built-in variables (for example, ***-DcollectionId=$(system.collectionId)***). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)."
+ },
+ {
+ "name": "targets",
+ "type": "string",
+ "label": "Target(s)",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "An optional, space-separated list of targets to build. If not specified, the `default` target will be used. If no `default` target is defined, Ant 1.6.0 and later will build all top-level tasks."
+ },
+ {
+ "name": "publishJUnitResults",
+ "type": "boolean",
+ "label": "Publish to Azure Pipelines",
+ "required": true,
+ "defaultValue": "true",
+ "groupName": "junitTestResults",
+ "helpMarkDown": "Select this option to publish JUnit test results produced by the Ant build to Azure Pipelines. Each test results file matching `Test Results Files` will be published as a test run in Azure Pipelines."
+ },
+ {
+ "name": "testResultsFiles",
+ "type": "filePath",
+ "label": "Test results files",
+ "defaultValue": "**/TEST-*.xml",
+ "required": true,
+ "groupName": "junitTestResults",
+ "helpMarkDown": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.",
+ "visibleRule": "publishJUnitResults = true"
+ },
+ {
+ "name": "testRunTitle",
+ "type": "string",
+ "label": "Test run title",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "junitTestResults",
+ "helpMarkDown": "Provide a name for the test run.",
+ "visibleRule": "publishJUnitResults = true"
+ },
+ {
+ "name": "codeCoverageTool",
+ "aliases": [
+ "codeCoverageToolOptions"
+ ],
+ "type": "pickList",
+ "label": "Code coverage tool",
+ "required": false,
+ "groupName": "codeCoverage",
+ "defaultValue": "None",
+ "helpMarkDown": "Select the code coverage tool. For on-premises agent support, refer to the `More Information` link below.",
+ "options": {
+ "None": "None",
+ "Cobertura": "Cobertura",
+ "JaCoCo": "JaCoCo"
+ }
+ },
+ {
+ "name": "classFilesDirectories",
+ "aliases": [
+ "codeCoverageClassFilesDirectories"
+ ],
+ "type": "string",
+ "label": "Class files directories",
+ "defaultValue": ".",
+ "required": true,
+ "groupName": "codeCoverage",
+ "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to directories containing class files and archive files (JAR, WAR, etc.). Code coverage is reported for class files in these directories. For example: target/classes,target/testClasses.",
+ "visibleRule": "codeCoverageTool != None"
+ },
+ {
+ "name": "classFilter",
+ "aliases": [
+ "codeCoverageClassFilter"
+ ],
+ "type": "string",
+ "label": "Class inclusion/exclusion filters",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "codeCoverage",
+ "helpMarkDown": "Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*.",
+ "visibleRule": "codeCoverageTool != None"
+ },
+ {
+ "name": "srcDirectories",
+ "aliases": [
+ "codeCoverageSourceDirectories"
+ ],
+ "type": "string",
+ "label": "Source files directories",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "codeCoverage",
+ "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to source code directories. Code coverage reports will use these to highlight source code. For example: src/java,src/Test.",
+ "visibleRule": "codeCoverageTool != None"
+ },
+ {
+ "name": "failIfCoverageEmpty",
+ "aliases": [
+ "codeCoverageFailIfEmpty"
+ ],
+ "type": "boolean",
+ "label": "Fail when code coverage results are missing",
+ "defaultValue": "false",
+ "required": false,
+ "groupName": "codeCoverage",
+ "helpMarkDown": "Fail the build if code coverage did not produce any results to publish.",
+ "visibleRule": "codeCoverageTool != None"
+ },
+ {
+ "name": "antHomeUserInputPath",
+ "aliases": [
+ "antHomeDirectory"
+ ],
+ "type": "string",
+ "label": "Set ANT_HOME path",
+ "required": false,
+ "groupName": "advanced",
+ "defaultValue": "",
+ "helpMarkDown": "If set, overrides any existing ANT_HOME environment variable with the given path."
+ },
+ {
+ "name": "javaHomeSelection",
+ "aliases": [
+ "javaHomeOption"
+ ],
+ "type": "radio",
+ "label": "Set JAVA_HOME by",
+ "required": true,
+ "groupName": "advanced",
+ "defaultValue": "JDKVersion",
+ "helpMarkDown": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.",
+ "options": {
+ "JDKVersion": "JDK Version",
+ "Path": "Path"
+ }
+ },
+ {
+ "name": "jdkVersion",
+ "aliases": [
+ "jdkVersionOption"
+ ],
+ "type": "pickList",
+ "label": "JDK version",
+ "required": false,
+ "groupName": "advanced",
+ "defaultValue": "default",
+ "helpMarkDown": "Will attempt to discover the path to the selected JDK version and set JAVA_HOME accordingly.",
+ "visibleRule": "javaHomeSelection = JDKVersion",
+ "options": {
+ "default": "default",
+ "1.11": "JDK 11",
+ "1.10": "JDK 10 (out of support)",
+ "1.9": "JDK 9 (out of support)",
+ "1.8": "JDK 8",
+ "1.7": "JDK 7",
+ "1.6": "JDK 6 (out of support)"
+ }
+ },
+ {
+ "name": "jdkUserInputPath",
+ "aliases": [
+ "jdkUserInputDirectory"
+ ],
+ "type": "string",
+ "label": "JDK path",
+ "required": true,
+ "groupName": "advanced",
+ "defaultValue": "",
+ "helpMarkDown": "Sets JAVA_HOME to the given path.",
+ "visibleRule": "javaHomeSelection = Path"
+ },
+ {
+ "name": "jdkArchitecture",
+ "aliases": [
+ "jdkArchitectureOption"
+ ],
+ "type": "pickList",
+ "label": "JDK architecture",
+ "defaultValue": "x64",
+ "required": false,
+ "helpMarkDown": "Optionally supply the architecture (x86, x64) of the JDK.",
+ "visibleRule": "jdkVersion != default",
+ "groupName": "advanced",
+ "options": {
+ "x86": "x86",
+ "x64": "x64"
+ }
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "anttask.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "anttask.js",
+ "argumentFormat": ""
+ }
},
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": false
+ "messages": {
+ "LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s",
+ "UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...",
+ "FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.",
+ "DiscontinueAntCodeCoverage": "We are discontinuing the support of automated code coverage report generation for Ant projects. Please refer to https://go.microsoft.com/fwlink/?linkid=875306 for more details.",
+ "NoCodeCoverage": "No code coverage results were found to publish.",
+ "NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped."
}
- ],
- "instanceNameFormat": "Ant $(options) $(antBuildFile)",
- "inputs": [
- {
- "name": "antBuildFile",
- "aliases": [
- "buildFile"
- ],
- "type": "filePath",
- "label": "Ant build file",
- "defaultValue": "build.xml",
- "required": true,
- "helpMarkDown": "Relative path from the repository root to the Ant build file."
- },
- {
- "name": "options",
- "type": "string",
- "label": "Options",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Provide any options to pass to the Ant command line. You can provide your own properties (for example, ***-DmyProperty=myPropertyValue***) and also use built-in variables (for example, ***-DcollectionId=$(system.collectionId)***). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)."
- },
- {
- "name": "targets",
- "type": "string",
- "label": "Target(s)",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "An optional, space-separated list of targets to build. If not specified, the `default` target will be used. If no `default` target is defined, Ant 1.6.0 and later will build all top-level tasks."
- },
- {
- "name": "publishJUnitResults",
- "type": "boolean",
- "label": "Publish to Azure Pipelines",
- "required": true,
- "defaultValue": "true",
- "groupName": "junitTestResults",
- "helpMarkDown": "Select this option to publish JUnit test results produced by the Ant build to Azure Pipelines. Each test results file matching `Test Results Files` will be published as a test run in Azure Pipelines."
- },
- {
- "name": "testResultsFiles",
- "type": "filePath",
- "label": "Test results files",
- "defaultValue": "**/TEST-*.xml",
- "required": true,
- "groupName": "junitTestResults",
- "helpMarkDown": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.",
- "visibleRule": "publishJUnitResults = true"
- },
- {
- "name": "testRunTitle",
- "type": "string",
- "label": "Test run title",
- "defaultValue": "",
- "required": false,
- "groupName": "junitTestResults",
- "helpMarkDown": "Provide a name for the test run.",
- "visibleRule": "publishJUnitResults = true"
- },
- {
- "name": "codeCoverageTool",
- "aliases": [
- "codeCoverageToolOptions"
- ],
- "type": "pickList",
- "label": "Code coverage tool",
- "required": false,
- "groupName": "codeCoverage",
- "defaultValue": "None",
- "helpMarkDown": "Select the code coverage tool. For on-premises agent support, refer to the `More Information` link below.",
- "options": {
- "None": "None",
- "Cobertura": "Cobertura",
- "JaCoCo": "JaCoCo"
- }
- },
- {
- "name": "classFilesDirectories",
- "aliases": [
- "codeCoverageClassFilesDirectories"
- ],
- "type": "string",
- "label": "Class files directories",
- "defaultValue": ".",
- "required": true,
- "groupName": "codeCoverage",
- "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to directories containing class files and archive files (JAR, WAR, etc.). Code coverage is reported for class files in these directories. For example: target/classes,target/testClasses.",
- "visibleRule": "codeCoverageTool != None"
- },
- {
- "name": "classFilter",
- "aliases": [
- "codeCoverageClassFilter"
- ],
- "type": "string",
- "label": "Class inclusion/exclusion filters",
- "defaultValue": "",
- "required": false,
- "groupName": "codeCoverage",
- "helpMarkDown": "Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*.",
- "visibleRule": "codeCoverageTool != None"
- },
- {
- "name": "srcDirectories",
- "aliases": [
- "codeCoverageSourceDirectories"
- ],
- "type": "string",
- "label": "Source files directories",
- "defaultValue": "",
- "required": false,
- "groupName": "codeCoverage",
- "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to source code directories. Code coverage reports will use these to highlight source code. For example: src/java,src/Test.",
- "visibleRule": "codeCoverageTool != None"
- },
- {
- "name": "failIfCoverageEmpty",
- "aliases": [
- "codeCoverageFailIfEmpty"
- ],
- "type": "boolean",
- "label": "Fail when code coverage results are missing",
- "defaultValue": "false",
- "required": false,
- "groupName": "codeCoverage",
- "helpMarkDown": "Fail the build if code coverage did not produce any results to publish.",
- "visibleRule": "codeCoverageTool != None"
- },
- {
- "name": "antHomeUserInputPath",
- "aliases": [
- "antHomeDirectory"
- ],
- "type": "string",
- "label": "Set ANT_HOME path",
- "required": false,
- "groupName": "advanced",
- "defaultValue": "",
- "helpMarkDown": "If set, overrides any existing ANT_HOME environment variable with the given path."
- },
- {
- "name": "javaHomeSelection",
- "aliases": [
- "javaHomeOption"
- ],
- "type": "radio",
- "label": "Set JAVA_HOME by",
- "required": true,
- "groupName": "advanced",
- "defaultValue": "JDKVersion",
- "helpMarkDown": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.",
- "options": {
- "JDKVersion": "JDK Version",
- "Path": "Path"
- }
- },
- {
- "name": "jdkVersion",
- "aliases": [
- "jdkVersionOption"
- ],
- "type": "pickList",
- "label": "JDK version",
- "required": false,
- "groupName": "advanced",
- "defaultValue": "default",
- "helpMarkDown": "Will attempt to discover the path to the selected JDK version and set JAVA_HOME accordingly.",
- "visibleRule": "javaHomeSelection = JDKVersion",
- "options": {
- "default": "default",
- "1.11": "JDK 11",
- "1.10": "JDK 10 (out of support)",
- "1.9": "JDK 9 (out of support)",
- "1.8": "JDK 8",
- "1.7": "JDK 7",
- "1.6": "JDK 6 (out of support)"
- }
- },
- {
- "name": "jdkUserInputPath",
- "aliases": [
- "jdkUserInputDirectory"
- ],
- "type": "string",
- "label": "JDK path",
- "required": true,
- "groupName": "advanced",
- "defaultValue": "",
- "helpMarkDown": "Sets JAVA_HOME to the given path.",
- "visibleRule": "javaHomeSelection = Path"
- },
- {
- "name": "jdkArchitecture",
- "aliases": [
- "jdkArchitectureOption"
- ],
- "type": "pickList",
- "label": "JDK architecture",
- "defaultValue": "x64",
- "required": false,
- "helpMarkDown": "Optionally supply the architecture (x86, x64) of the JDK.",
- "visibleRule": "jdkVersion != default",
- "groupName": "advanced",
- "options": {
- "x86": "x86",
- "x64": "x64"
- }
- }
- ],
- "execution": {
- "Node10": {
- "target": "anttask.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "anttask.js",
- "argumentFormat": ""
- }
- },
- "messages": {
- "LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s",
- "UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...",
- "FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.",
- "DiscontinueAntCodeCoverage": "We are discontinuing the support of automated code coverage report generation for Ant projects. Please refer to https://go.microsoft.com/fwlink/?linkid=875306 for more details.",
- "NoCodeCoverage": "No code coverage results were found to publish.",
- "NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped."
- }
}
\ No newline at end of file
diff --git a/Tasks/ANTV1/task.loc.json b/Tasks/ANTV1/task.loc.json
index a267b45f5581..874cef07cbd2 100644
--- a/Tasks/ANTV1/task.loc.json
+++ b/Tasks/ANTV1/task.loc.json
@@ -17,8 +17,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 246,
- "Patch": 2
+ "Minor": 250,
+ "Patch": 0
},
"demands": [
"ant"
diff --git a/Tasks/AppCenterTestV1/task.json b/Tasks/AppCenterTestV1/task.json
index 5f79827d8ad8..25711fa5c8cf 100644
--- a/Tasks/AppCenterTestV1/task.json
+++ b/Tasks/AppCenterTestV1/task.json
@@ -12,8 +12,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 246,
- "Patch": 6
+ "Minor": 250,
+ "Patch": 0
},
"minimumAgentVersion": "2.206.1",
"groups": [
diff --git a/Tasks/AppCenterTestV1/task.loc.json b/Tasks/AppCenterTestV1/task.loc.json
index 875c7d7d5587..ba448e1e895c 100644
--- a/Tasks/AppCenterTestV1/task.loc.json
+++ b/Tasks/AppCenterTestV1/task.loc.json
@@ -12,8 +12,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 246,
- "Patch": 6
+ "Minor": 250,
+ "Patch": 0
},
"minimumAgentVersion": "2.206.1",
"groups": [
diff --git a/Tasks/AzureAppConfigurationExportV10/task.json b/Tasks/AzureAppConfigurationExportV10/task.json
index 354e06e1cd75..45b5712ba053 100644
--- a/Tasks/AzureAppConfigurationExportV10/task.json
+++ b/Tasks/AzureAppConfigurationExportV10/task.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 10,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"instanceNameFormat": "Azure App Configuration",
diff --git a/Tasks/AzureAppConfigurationExportV10/task.loc.json b/Tasks/AzureAppConfigurationExportV10/task.loc.json
index 98ebfab15b7b..602b013a0f13 100644
--- a/Tasks/AzureAppConfigurationExportV10/task.loc.json
+++ b/Tasks/AzureAppConfigurationExportV10/task.loc.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 10,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",
diff --git a/Tasks/AzureAppConfigurationImportV10/task.json b/Tasks/AzureAppConfigurationImportV10/task.json
index 342cdc97c7b6..43f00c0194fe 100644
--- a/Tasks/AzureAppConfigurationImportV10/task.json
+++ b/Tasks/AzureAppConfigurationImportV10/task.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 10,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"instanceNameFormat": "Azure App Configuration",
@@ -106,7 +106,7 @@
"type": "pickList",
"label": "Separator",
"groupName": "Options",
- "helpMarkDown": "Separator used to flatten the configuration file (json \u0026 yaml files). It is required when the depth provided is greater than 1",
+ "helpMarkDown": "Separator used to flatten the configuration file (json & yaml files). It is required when the depth provided is greater than 1",
"options": {
".": ". (Period)",
"/": "/ (Forward Slash)",
diff --git a/Tasks/AzureAppConfigurationImportV10/task.loc.json b/Tasks/AzureAppConfigurationImportV10/task.loc.json
index 58dd556b454d..6aad92258662 100644
--- a/Tasks/AzureAppConfigurationImportV10/task.loc.json
+++ b/Tasks/AzureAppConfigurationImportV10/task.loc.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 10,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",
diff --git a/Tasks/AzureAppServiceSettingsV1/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/AzureAppServiceSettingsV1/Strings/resources.resjson/fr-FR/resources.resjson
index 0a3afb1b260a..cf2e0e4dfe22 100644
--- a/Tasks/AzureAppServiceSettingsV1/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/AzureAppServiceSettingsV1/Strings/resources.resjson/fr-FR/resources.resjson
@@ -1,6 +1,6 @@
{
"loc.friendlyName": "Paramètres d'Azure App Service",
- "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-vmss-deployment)",
+ "loc.helpMarkDown": "[Learn more about this task](https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-vmss-deployment)",
"loc.description": "Mettre à jour/ajouter des paramètres d'application dans Azure Web App pour Linux ou pour Windows",
"loc.instanceNameFormat": "Paramètres d'Azure App Service : $(appName)",
"loc.group.displayName.ApplicationAndConfigurationSettings": "Paramètres d'application et de configuration",
diff --git a/Tasks/AzureAppServiceSettingsV1/task.json b/Tasks/AzureAppServiceSettingsV1/task.json
index a312707e6dcf..d5a9228cefbf 100644
--- a/Tasks/AzureAppServiceSettingsV1/task.json
+++ b/Tasks/AzureAppServiceSettingsV1/task.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"minimumAgentVersion": "2.104.1",
diff --git a/Tasks/AzureAppServiceSettingsV1/task.loc.json b/Tasks/AzureAppServiceSettingsV1/task.loc.json
index f3a547fb87c7..50803bae6f74 100644
--- a/Tasks/AzureAppServiceSettingsV1/task.loc.json
+++ b/Tasks/AzureAppServiceSettingsV1/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"minimumAgentVersion": "2.104.1",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/de-DE/resources.resjson
index 299a1cf493da..c66dd8c8cca4 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/de-DE/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "Die Skriptdatei wurde am angegebenen Skriptspeicherort nicht gefunden: \"%s\". Überprüfen Sie, ob das Skript im angegebenen Pfad vorhanden ist. Wenn Sie ein Inlineskript verwenden möchten, geben Sie den Skriptspeicherort als \"inlineScript\" an.",
"loc.messages.JS_InvalidErrorActionPreference": "ErrorActionPreference \"%s\" ungültig. Der Wert muss \"Stop\", \"Continue\" oder \"SilentlyContinue\" sein.",
"loc.messages.GlobalCliConfigAgentVersionWarning": "Für Agent-Versionen vor 2.115.0 kann nur die globale Azure CLI-Konfiguration verwendet werden.",
- "loc.messages.UnacceptedScriptLocationValue": "\"%s\" ist kein gültiger Wert für die Aufgabeneingabe für den Skriptspeicherort (\"scriptLocation\" in YAML). Der Wert kann entweder \"inlineScript\"oder \"scriptPath\" lauten.",
+ "loc.messages.UnacceptedScriptLocationValue": "%s ist kein gültiger Wert für die Taskeingabe „Script Location“ (scriptLocation in YAML). Der Wert kann entweder „inlineScript“ oder „scriptPath“ sein.",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "Das Geheimnis ist abgelaufen. Aktualisieren Sie die Dienstverbindung unter %s. Weitere Informationen zur Konvertierung in Dienstverbindungen ohne Geheimnis finden Sie unter https://aka.ms/azdo-rm-workload-identity-conversion.",
"loc.messages.ProxyConfig": "Das az-Tool ist für die Verwendung von „%s“ als Proxyserver konfiguriert.",
"loc.messages.FailedToRefreshAzSession": "Fehler beim Aktualisieren der AZ-CLI-Sitzung: %s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/es-ES/resources.resjson
index 45105693a30d..b8b643d38ac9 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/es-ES/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "No se encontró el archivo de script en la ubicación de script especificada: \"%s\". Compruebe que el script existe en la ruta de acceso especificada. Si desea usar un script alineado, especifique la entrada \"Ubicación del script\" como \"inlineScript\".",
"loc.messages.JS_InvalidErrorActionPreference": "El valor \"%s\" de ErrorActionPreference no es válido. El valor debe ser uno de los siguientes: \"Stop\", \"Continue\" o \"SilentlyContinue\"",
"loc.messages.GlobalCliConfigAgentVersionWarning": "Para la versión del agente < 2.115.0, solo se puede usar la configuración global de la CLI de Azure.",
- "loc.messages.UnacceptedScriptLocationValue": "%s no es un valor válido para la entrada de tarea \"Ubicación del script\" (scriptLocation en YAML). El valor puede ser \"inlineScript\" o \"scriptPath\".",
+ "loc.messages.UnacceptedScriptLocationValue": "%s no es un valor válido para la entrada de tarea 'Ubicación del script' (scriptLocation en YAML). El valor puede ser 'inlineScript' o 'scriptPath'",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "El secreto expiró. Actualice la conexión de servicio en %s Consulte https://aka.ms/azdo-rm-workload-identity-conversion para obtener más información sobre la conversión a conexiones de servicio sin secretos.",
"loc.messages.ProxyConfig": "la herramienta de zona de disponibilidad está configurada para usar %s como servidor proxy",
"loc.messages.FailedToRefreshAzSession": "Error al intentar actualizar la sesión de az-cli: %s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/fr-FR/resources.resjson
index d6c430d2bd5e..e2bd448ed2e2 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/fr-FR/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "Le fichier de script est introuvable à l'emplacement de script spécifié : '%s'. Vérifiez que le script existe dans le chemin spécifié. Si vous souhaitez utiliser un script inline, indiquez 'inlineScript' pour 'Script Location'.",
"loc.messages.JS_InvalidErrorActionPreference": "ErrorActionPreference '%s' non valide. La valeur doit correspondre à 'Stop', 'Continue' ou 'SilentlyContinue'",
"loc.messages.GlobalCliConfigAgentVersionWarning": "Pour une version d'agent < 2.115.0, seule la configuration Azure CLI globale peut être utilisée",
- "loc.messages.UnacceptedScriptLocationValue": "%s n'est pas une valeur valide pour l'entrée de tâche 'Script Location' (scriptLocation en YAML). La valeur peut être 'inlineScript' ou 'scriptPath'",
+ "loc.messages.UnacceptedScriptLocationValue": "%s n’est pas une valeur valide pour l’entrée de tâche « Emplacement du script » (scriptLocation dans YAML). La valeur peut être 'inlineScript' ou 'scriptPath'",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "Secret expiré, mettez à jour la connexion de service à l’adresse %s Consultez https://aka.ms/azdo-rm-workload-identity-conversion pour en savoir plus sur la conversion en connexions de service sans secret.",
"loc.messages.ProxyConfig": "l’outil az est configuré pour utiliser %s comme serveur proxy",
"loc.messages.FailedToRefreshAzSession": "L’erreur suivante s’est produite lors de la tentative d’actualisation de la session az-cli : %s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/it-IT/resources.resjson
index d0dd616fc988..6b2509c8ba9d 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/it-IT/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "Non è stato possibile trovare il file di script nel percorso dello script specificato: '%s'. Verificare che lo script esista nel percorso specificato. Se si vuole usare lo script inline, specificare `inlineScript` come valore di input di `Percorso script`.",
"loc.messages.JS_InvalidErrorActionPreference": "ErrorActionPreference '%s' non valido. Il valore deve essere uno tra i seguenti: 'Stop', 'Continue' o 'SilentlyContinue'",
"loc.messages.GlobalCliConfigAgentVersionWarning": "Se la versione dell'agente è inferiore a quella 2.115.0, è possibile usare solo la configurazione globale dell'interfaccia della riga di comando di Azure",
- "loc.messages.UnacceptedScriptLocationValue": "%s non è un valore valido per il valore di input attività 'Percorso script' (scriptLocation in YAML). Il valore può essere 'inlineScript' o 'scriptPath'",
+ "loc.messages.UnacceptedScriptLocationValue": "%s non è un valore valido per l'input dell'attività 'Percorso script' (scriptLocation in YAML). Il valore può essere 'inlineScript' o 'scriptPath'",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "Segreto scaduto. Aggiornare la connessione al servizio in %s Per altre informazioni sulla conversione a connessioni al servizio senza segreto, vedere https://aka.ms/azdo-rm-workload-identity-conversion.",
"loc.messages.ProxyConfig": "lo strumento az è configurato per l'utilizzo di %s come server proxy",
"loc.messages.FailedToRefreshAzSession": "Si è verificato l'errore seguente durante il tentativo di aggiornare la sessione az-cli: %s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/ja-JP/resources.resjson
index d8d964b9cd18..ae37a9b767b4 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/ja-JP/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "指定されたスクリプトの場所 '%s' でスクリプト ファイルが見つかりませんでした。指定されたパスにスクリプトが存在することをご確認ください。インライン スクリプトを使用する場合は、入力 'スクリプトの場所' を 'inlineScript' と指定してください。",
"loc.messages.JS_InvalidErrorActionPreference": "ErrorActionPreference '%s' は無効です。値は、'Stop'、'Continue'、'SilentlyContinue' のいずれかである必要があります",
"loc.messages.GlobalCliConfigAgentVersionWarning": "エージェント バージョンが 2.115.0 より前の場合、グローバルの Azure CLI 構成のみ使用できます",
- "loc.messages.UnacceptedScriptLocationValue": "%s はタスク入力 'スクリプトの場所' (YAML での scriptLocation) の有効な値ではありません。値には 'inlineScript' または 'scriptPath' のいずれかを指定できます",
+ "loc.messages.UnacceptedScriptLocationValue": "%s は、タスク入力 'Script Location' (YAML の scriptLocation) に対して有効な値ではありません。値には 'inlineScript' または 'scriptPath' を指定できます",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "シークレットの有効期限が切れました。%s でサービスの接続を更新してください。秘密度の低いサービスの接続への変換については、https://aka.ms/azdo-rm-workload-identity-conversion を参照してください。",
"loc.messages.ProxyConfig": "az ツールは、%s をプロキシ サーバーとして使用するように構成されています",
"loc.messages.FailedToRefreshAzSession": "az-cli セッションの更新中に次のエラーが発生しました: %s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/ko-KR/resources.resjson
index adec692596c6..da0b9ce39573 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/ko-KR/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "지정한 스크립트 위치 '%s'에서 스크립트 파일을 찾을 수 없습니다. 지정한 경로에 스크립트가 있는지 확인하세요. 인라인 스크립트를 사용하려면 입력 '스크립트 위치'를 'inlineScript'로 지정합니다.",
"loc.messages.JS_InvalidErrorActionPreference": "잘못된 ErrorActionPreference '%s'입니다. 값은 'Stop', 'Continue', 'SilentlyContinue' 중 하나여야 합니다.",
"loc.messages.GlobalCliConfigAgentVersionWarning": "2.115.0 이전의 에이전트 버전에서는 전역 Azure CLI 구성만 사용할 수 있습니다.",
- "loc.messages.UnacceptedScriptLocationValue": "%s은(는) '스크립트 위치'(YAML의 scriptLocation) 작업 입력에 유효한 값이 아닙니다. 값은 be'inlineScript' 또는 'scriptPath' 중 하나일 수 있습니다.",
+ "loc.messages.UnacceptedScriptLocationValue": "%s은(는) 작업 입력 '스크립트 위치'(YAML의 scriptLocation)에 유효한 값이 아닙니다. 값은 'inlineScript'이거나 'scriptPath'일 수 있습니다.",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "비밀이 만료되었습니다. %s에서 서비스 연결을 업데이트하세요. 비밀 없는 서비스 연결로의 변환에 대한 자세한 정보는 https://aka.ms/azdo-rm-workload-identity-conversion을 참고하세요.",
"loc.messages.ProxyConfig": "az 도구가 %s을(를) 프록시 서버로 사용하도록 구성되어 있습니다.",
"loc.messages.FailedToRefreshAzSession": "az-cli 세션을 새로 고치는 동안 %s 오류가 발생했습니다.",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/ru-RU/resources.resjson
index 0094682c58f1..8fe426d668e7 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/ru-RU/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "Не удалось найти файл скрипта в указанном расположении: \"%s\". Убедитесь, что скрипт существует по указанному пути. Если требуется использовать встроенный скрипт, укажите входные данные \"Расположение скрипта\" как inlineScript.",
"loc.messages.JS_InvalidErrorActionPreference": "Недопустимое значение ErrorActionPreference \"%s\". Возможные значения: Stop, Continue или SilentlyContinue",
"loc.messages.GlobalCliConfigAgentVersionWarning": "Для агента версии ниже 2.115.0 можно использовать только глобальную конфигурацию Azure CLI",
- "loc.messages.UnacceptedScriptLocationValue": "%s не является допустимым значением для входных данных задачи \"Расположение скрипта\" (scriptLocation в YAML). Значение может быть равно inlineScript либо scriptPath",
+ "loc.messages.UnacceptedScriptLocationValue": "%s не является допустимым значением для входных данных задачи \"Расположение сценария\" (scriptLocation в YAML). Значением может быть \"inlineScript\" или \"scriptPath\"",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "Срок действия секрета истек. Обновите подключение службы %s. Подробнее о преобразовании в подключения служб без секретов см. https://aka.ms/azdo-rm-workload-identity-conversion.",
"loc.messages.ProxyConfig": "Инструмент az настроен на использование %s в качестве прокси-сервера",
"loc.messages.FailedToRefreshAzSession": "При попытке обновить сеанс az-cli произошла следующая ошибка: %s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/zh-CN/resources.resjson
index 53db0c804f7f..294e16146ea5 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/zh-CN/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "在指定的脚本位置 \"%s\" 找不到脚本文件。请验证该脚本是否存在于指定的路径中。如果要使用内联脚本,请将输入 `Script Location` 指定为 `inlineScript`。",
"loc.messages.JS_InvalidErrorActionPreference": "无效的 ErrorActionPreference“%s”。值必须为下列之一: \"Stop\"、\"Continue\" 或 \"SilentlyContinue\"",
"loc.messages.GlobalCliConfigAgentVersionWarning": "对于低于 2.115.0 的代理版本,只能使用全局 Azure CLI 配置",
- "loc.messages.UnacceptedScriptLocationValue": "%s 不是任务输入“脚本位置”(YAML 中为 scriptLocation)的有效值。值可以是 \"inlineScript\" 或 \"scriptPath\"",
+ "loc.messages.UnacceptedScriptLocationValue": "%s 不是任务输入“脚本位置”(YAML 中的 scriptLocation) 的有效值。值可以是“inlineScript”或“scriptPath”",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "机密已过期,请在 %s 更新服务连接。若要详细了解如何转换到无机密服务连接,请参阅 https://aka.ms/azdo-rm-workload-identity-conversion。",
"loc.messages.ProxyConfig": "Az 工具配置为将 %s 用作代理服务器",
"loc.messages.FailedToRefreshAzSession": "尝试刷新 az-cli 会话时出现以下错误:%s",
diff --git a/Tasks/AzureCLIV2/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/AzureCLIV2/Strings/resources.resjson/zh-TW/resources.resjson
index 3ba81a748d6d..18205f765e56 100644
--- a/Tasks/AzureCLIV2/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/AzureCLIV2/Strings/resources.resjson/zh-TW/resources.resjson
@@ -49,7 +49,7 @@
"loc.messages.JS_InvalidFilePath": "在指定的指令碼位置找不到指令檔: '%s'。請確認指令碼存在於指定路徑中。若要使用內嵌指令碼,請將輸入 `Script Location` 指定為 `inlineScript`。",
"loc.messages.JS_InvalidErrorActionPreference": "ErrorActionPreference '%s' 無效。此值必須是 'Stop'、'Continue' 或 'SilentlyContinue' 之一",
"loc.messages.GlobalCliConfigAgentVersionWarning": "2.115.0 以下的代理程式版本只能使用全域 Azure CLI 設定",
- "loc.messages.UnacceptedScriptLocationValue": "%s 不是工作輸入 'Script Location' (在 YAML 中為 scriptLocation) 的有效值。值可以是 'inlineScript' 或 'scriptPath'",
+ "loc.messages.UnacceptedScriptLocationValue": "%s 不是工作輸入 'Script Location' (YAML 中的 scriptLocation) 的有效值。值可以是 'inlineScript' 或 'scriptPath'",
"loc.messages.ExpiredServicePrincipalMessageWithLink": "秘密已過期,請在 %s 更新服務連線,參閱 https://aka.ms/azdo-rm-workload-identity-conversion 以深入了解如何轉換為無秘密服務連線。",
"loc.messages.ProxyConfig": "az 工具已設定為使用 %s 做為 Proxy 伺服器",
"loc.messages.FailedToRefreshAzSession": "嘗試重新整理 az-cli 工作階段時發生下列錯誤: %s",
diff --git a/Tasks/AzureCLIV2/task.json b/Tasks/AzureCLIV2/task.json
index 13ad6e197497..555b6d4d4423 100644
--- a/Tasks/AzureCLIV2/task.json
+++ b/Tasks/AzureCLIV2/task.json
@@ -1,228 +1,228 @@
{
- "id": "46E4BE58-730B-4389-8A2F-EA10B3E5E815",
- "name": "AzureCLI",
- "friendlyName": "Azure CLI",
- "description": "Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/PowerShell Core/Batch script when running on Windows agent.",
- "author": "Microsoft Corporation",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-cli",
- "helpMarkDown": "[Learn more about this task](http://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureCLIV2/Readme.md) or [see the Azure CLI documentation](https://docs.microsoft.com/cli/azure/)",
- "releaseNotes": "What's new in Version 2.0:\n- Support for PowerShell and PowerShell Core script. \n- PowerShell Core works with cross-platform agents (Linux, macOS, or Windows), make sure the agent has PowerShell version 6 or more. \n- Powershell script works with only Windows agent, make sure the agent has PowerShell version 5 or below.",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "demands": [],
- "version": {
- "Major": 2,
- "Minor": 248,
- "Patch": 0
- },
- "minimumAgentVersion": "2.0.0",
- "instanceNameFormat": "Azure CLI $(scriptPath)",
- "showEnvironmentVariables": true,
- "groups": [
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": true
- }
- ],
- "inputs": [
- {
- "name": "connectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Resource Manager connection",
- "required": true,
- "helpMarkDown": "Select an Azure Resource Manager service connection for the deployment",
- "properties": {
- "EndpointFilterRule": ""
- }
- },
- {
- "name": "scriptType",
- "type": "pickList",
- "label": "Script Type",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Type of script: PowerShell/PowerShell Core/Bat/Shell script. Select Shell/PowerShell Core script when running on Linux agent or Batch/PowerShell/PowerShell Core script when running on Windows agent. PowerShell Core script can run on cross-platform agents (Linux, macOS, or Windows).",
- "options": {
- "ps": "PowerShell",
- "pscore": "PowerShell Core",
- "batch": "Batch",
- "bash": "Shell"
- }
- },
- {
- "name": "scriptLocation",
- "type": "pickList",
- "label": "Script Location",
- "defaultValue": "scriptPath",
- "required": true,
- "helpMarkDown": "Path to script: File path or Inline script",
- "options": {
- "inlineScript": "Inline script",
- "scriptPath": "Script path"
- }
- },
- {
- "name": "scriptPath",
- "type": "filePath",
- "label": "Script Path",
- "defaultValue": "",
- "required": true,
- "visibleRule": "scriptLocation = scriptPath",
- "helpMarkDown": "Fully qualified path of the script(.ps1 or .bat or .cmd when using Windows based agent else .ps1 or .sh when using linux based agent) or a path relative to the the default working directory"
- },
- {
- "name": "inlineScript",
- "type": "multiLine",
- "label": "Inline Script",
- "defaultValue": "",
- "required": true,
- "visibleRule": "scriptLocation = inlineScript",
- "helpMarkDown": "You can write your scripts inline here. When using Windows agent, use PowerShell or PowerShell Core or batch scripting whereas use PowerShell Core or shell scripting when using Linux based agents. For batch files use the prefix \"call\" before every azure command. You can also pass predefined and custom variables to this script using arguments \n\n example for PowerShell/PowerShellCore/shell: \naz --version \naz account show \n\n example for batch:\ncall az --version \ncall az account show",
- "properties": {
- "resizable": "true",
- "rows": "10",
- "maxLength": "5000"
- }
- },
- {
- "name": "scriptArguments",
- "aliases": [
- "arguments"
- ],
- "type": "string",
- "label": "Script Arguments",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Arguments passed to the script",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "powerShellErrorActionPreference",
- "type": "pickList",
- "label": "ErrorActionPreference",
- "required": false,
- "defaultValue": "stop",
- "options": {
- "stop": "Stop",
- "continue": "Continue",
- "silentlyContinue": "SilentlyContinue"
- },
- "visibleRule": "scriptType = ps || scriptType = pscore",
- "helpMarkDown": "Prepends the line `$ErrorActionPreference = 'VALUE'` at the top of your powershell/powershell core script."
+ "id": "46E4BE58-730B-4389-8A2F-EA10B3E5E815",
+ "name": "AzureCLI",
+ "friendlyName": "Azure CLI",
+ "description": "Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/PowerShell Core/Batch script when running on Windows agent.",
+ "author": "Microsoft Corporation",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-cli",
+ "helpMarkDown": "[Learn more about this task](http://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureCLIV2/Readme.md) or [see the Azure CLI documentation](https://docs.microsoft.com/cli/azure/)",
+ "releaseNotes": "What's new in Version 2.0:\n- Support for PowerShell and PowerShell Core script. \n- PowerShell Core works with cross-platform agents (Linux, macOS, or Windows), make sure the agent has PowerShell version 6 or more. \n- Powershell script works with only Windows agent, make sure the agent has PowerShell version 5 or below.",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "demands": [],
+ "version": {
+ "Major": 2,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "addSpnToEnvironment",
- "type": "boolean",
- "label": "Access service principal details in script",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Adds service principal id, service principal key and tenant id of the Azure endpoint you chose to the script's execution environment. You can use variables: `servicePrincipalId`, `servicePrincipalKey` and `tenantId` in your script.\n\nThis is honored only when the Azure endpoint has Service Principal authentication scheme.\n\nSyntax to access environment variables based on script type.\n\nPowershell script: $env:servicePrincipalId\n\nBatch script: %servicePrincipalId% \n\nShell script: $servicePrincipalId",
- "groupName": "advanced"
- },
- {
- "name": "useGlobalConfig",
- "type": "boolean",
- "label": "Use global Azure CLI configuration",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "If this is false, this task will use its own separate [Azure CLI configuration directory](https://docs.microsoft.com/en-us/cli/azure/azure-cli-configuration?view=azure-cli-latest#cli-configuration-file). This can be used to run Azure CLI tasks in *parallel* releases",
- "groupName": "advanced"
- },
- {
- "name": "cwd",
- "aliases": [
- "workingDirectory"
- ],
- "type": "filePath",
- "label": "Working Directory",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Current working directory where the script is run. Empty is the root of the repo (build) or artifacts (release), which is $(System.DefaultWorkingDirectory)",
- "groupName": "advanced"
- },
- {
- "name": "failOnStandardError",
- "type": "boolean",
- "label": "Fail on Standard Error",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "If this is true, this task will fail when any errors are written to the StandardError stream. Unselect the checkbox to ignore standard errors and rely on exit codes to determine the status",
- "groupName": "advanced"
- },
- {
- "name": "powerShellIgnoreLASTEXITCODE",
- "type": "boolean",
- "label": "Ignore $LASTEXITCODE",
- "required": false,
- "defaultValue": "false",
- "visibleRule": "scriptType = ps || scriptType = pscore",
- "helpMarkDown": "If this is false, the line `if ((Test-Path -LiteralPath variable:\\LASTEXITCODE)) { exit $LASTEXITCODE }` is appended to the end of your script. This will cause the last exit code from an external command to be propagated as the exit code of powershell. Otherwise the line is not appended to the end of your script.",
- "groupName": "advanced"
- },
- {
- "name": "visibleAzLogin",
- "type": "boolean",
- "label": "az login output visibility",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If this is set to true, az login command will output to the task. Setting it to false will suppress the az login output",
- "groupName": "advanced"
- },
- {
- "name": "keepAzSessionActive",
- "type": "boolean",
- "label": "[Experimental] Keep Azure CLI session active",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "When enabled, this task will continuously sign into Azure to avoid AADSTS700024 errors when requesting access tokens beyond the IdToken expiry date. Note that this feature is EXPERIMENTAL, may not work in all scenarios and you are using it without any guarantees. Valid only for service connections using the Workload Identity Federation authentication scheme.",
- "groupName": "advanced"
- }
- ],
- "execution": {
- "Node10": {
- "target": "azureclitask.js",
- "argumentFormat": ""
+ "minimumAgentVersion": "2.0.0",
+ "instanceNameFormat": "Azure CLI $(scriptPath)",
+ "showEnvironmentVariables": true,
+ "groups": [
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": true
+ }
+ ],
+ "inputs": [
+ {
+ "name": "connectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Resource Manager connection",
+ "required": true,
+ "helpMarkDown": "Select an Azure Resource Manager service connection for the deployment",
+ "properties": {
+ "EndpointFilterRule": ""
+ }
+ },
+ {
+ "name": "scriptType",
+ "type": "pickList",
+ "label": "Script Type",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Type of script: PowerShell/PowerShell Core/Bat/Shell script. Select Shell/PowerShell Core script when running on Linux agent or Batch/PowerShell/PowerShell Core script when running on Windows agent. PowerShell Core script can run on cross-platform agents (Linux, macOS, or Windows).",
+ "options": {
+ "ps": "PowerShell",
+ "pscore": "PowerShell Core",
+ "batch": "Batch",
+ "bash": "Shell"
+ }
+ },
+ {
+ "name": "scriptLocation",
+ "type": "pickList",
+ "label": "Script Location",
+ "defaultValue": "scriptPath",
+ "required": true,
+ "helpMarkDown": "Path to script: File path or Inline script",
+ "options": {
+ "inlineScript": "Inline script",
+ "scriptPath": "Script path"
+ }
+ },
+ {
+ "name": "scriptPath",
+ "type": "filePath",
+ "label": "Script Path",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "scriptLocation = scriptPath",
+ "helpMarkDown": "Fully qualified path of the script(.ps1 or .bat or .cmd when using Windows based agent else .ps1 or .sh when using linux based agent) or a path relative to the the default working directory"
+ },
+ {
+ "name": "inlineScript",
+ "type": "multiLine",
+ "label": "Inline Script",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "scriptLocation = inlineScript",
+ "helpMarkDown": "You can write your scripts inline here. When using Windows agent, use PowerShell or PowerShell Core or batch scripting whereas use PowerShell Core or shell scripting when using Linux based agents. For batch files use the prefix \"call\" before every azure command. You can also pass predefined and custom variables to this script using arguments \n\n example for PowerShell/PowerShellCore/shell: \naz --version \naz account show \n\n example for batch:\ncall az --version \ncall az account show",
+ "properties": {
+ "resizable": "true",
+ "rows": "10",
+ "maxLength": "5000"
+ }
+ },
+ {
+ "name": "scriptArguments",
+ "aliases": [
+ "arguments"
+ ],
+ "type": "string",
+ "label": "Script Arguments",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Arguments passed to the script",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "powerShellErrorActionPreference",
+ "type": "pickList",
+ "label": "ErrorActionPreference",
+ "required": false,
+ "defaultValue": "stop",
+ "options": {
+ "stop": "Stop",
+ "continue": "Continue",
+ "silentlyContinue": "SilentlyContinue"
+ },
+ "visibleRule": "scriptType = ps || scriptType = pscore",
+ "helpMarkDown": "Prepends the line `$ErrorActionPreference = 'VALUE'` at the top of your powershell/powershell core script."
+ },
+ {
+ "name": "addSpnToEnvironment",
+ "type": "boolean",
+ "label": "Access service principal details in script",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Adds service principal id, service principal key and tenant id of the Azure endpoint you chose to the script's execution environment. You can use variables: `servicePrincipalId`, `servicePrincipalKey` and `tenantId` in your script.\n\nThis is honored only when the Azure endpoint has Service Principal authentication scheme.\n\nSyntax to access environment variables based on script type.\n\nPowershell script: $env:servicePrincipalId\n\nBatch script: %servicePrincipalId% \n\nShell script: $servicePrincipalId",
+ "groupName": "advanced"
+ },
+ {
+ "name": "useGlobalConfig",
+ "type": "boolean",
+ "label": "Use global Azure CLI configuration",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "If this is false, this task will use its own separate [Azure CLI configuration directory](https://docs.microsoft.com/en-us/cli/azure/azure-cli-configuration?view=azure-cli-latest#cli-configuration-file). This can be used to run Azure CLI tasks in *parallel* releases",
+ "groupName": "advanced"
+ },
+ {
+ "name": "cwd",
+ "aliases": [
+ "workingDirectory"
+ ],
+ "type": "filePath",
+ "label": "Working Directory",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Current working directory where the script is run. Empty is the root of the repo (build) or artifacts (release), which is $(System.DefaultWorkingDirectory)",
+ "groupName": "advanced"
+ },
+ {
+ "name": "failOnStandardError",
+ "type": "boolean",
+ "label": "Fail on Standard Error",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "If this is true, this task will fail when any errors are written to the StandardError stream. Unselect the checkbox to ignore standard errors and rely on exit codes to determine the status",
+ "groupName": "advanced"
+ },
+ {
+ "name": "powerShellIgnoreLASTEXITCODE",
+ "type": "boolean",
+ "label": "Ignore $LASTEXITCODE",
+ "required": false,
+ "defaultValue": "false",
+ "visibleRule": "scriptType = ps || scriptType = pscore",
+ "helpMarkDown": "If this is false, the line `if ((Test-Path -LiteralPath variable:\\LASTEXITCODE)) { exit $LASTEXITCODE }` is appended to the end of your script. This will cause the last exit code from an external command to be propagated as the exit code of powershell. Otherwise the line is not appended to the end of your script.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "visibleAzLogin",
+ "type": "boolean",
+ "label": "az login output visibility",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If this is set to true, az login command will output to the task. Setting it to false will suppress the az login output",
+ "groupName": "advanced"
+ },
+ {
+ "name": "keepAzSessionActive",
+ "type": "boolean",
+ "label": "[Experimental] Keep Azure CLI session active",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "When enabled, this task will continuously sign into Azure to avoid AADSTS700024 errors when requesting access tokens beyond the IdToken expiry date. Note that this feature is EXPERIMENTAL, may not work in all scenarios and you are using it without any guarantees. Valid only for service connections using the Workload Identity Federation authentication scheme.",
+ "groupName": "advanced"
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "azureclitask.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "azureclitask.js",
+ "argumentFormat": ""
+ }
},
- "Node16": {
- "target": "azureclitask.js",
- "argumentFormat": ""
+ "messages": {
+ "ScriptReturnCode": "Script exited with return code: %d",
+ "ScriptFailed": "Script failed with error: %s",
+ "ScriptFailedStdErr": "Script has output to stderr. Failing as failOnStdErr is set to true.",
+ "ScriptFailedWithExitCode": "Script failed with exit code: %d",
+ "UnsupportedEndpointScheme": "Unsupported service connection authorization scheme: Service Principal for AzureRM",
+ "AzureSDKNotFound": "Azure CLI 2.x is not installed on this machine.",
+ "FailedToLogout": "The following error occurred while logging out: %s",
+ "LoginFailed": "Azure login failed",
+ "MSILoginFailed": "Azure login failed using Managed Service Identity",
+ "AuthSchemeNotSupported": "Auth Scheme %s is not supported",
+ "ErrorInSettingUpSubscription": "Error in setting up subscription",
+ "SettingAzureConfigDir": "Setting AZURE_CONFIG_DIR env variable to: %s",
+ "SettingAzureCloud": "Setting active cloud to: %s",
+ "JS_InvalidFilePath": "Script file could not be found at specified script location: '%s'. Please verify the script exists at the specified path. If you want to use inline script, specify input `Script Location` as `inlineScript`.",
+ "JS_InvalidErrorActionPreference": "Invalid ErrorActionPreference '%s'. The value must be one of: 'Stop', 'Continue', or 'SilentlyContinue'",
+ "GlobalCliConfigAgentVersionWarning": "For agent version < 2.115.0, only global Azure CLI configuration can be used",
+ "UnacceptedScriptLocationValue": "%s is not a valid value for task input 'Script Location' (scriptLocation in YAML). Value can either be'inlineScript' or 'scriptPath'",
+ "ExpiredServicePrincipalMessageWithLink": "Secret expired, update service connection at %s See https://aka.ms/azdo-rm-workload-identity-conversion to learn more about conversion to secret-less service connections.",
+ "ProxyConfig": "az tool is configured to use %s as proxy server",
+ "FailedToRefreshAzSession": "The following error occurred while trying to refresh az-cli session: %s",
+ "RefreshingAzSession": "Attempting to refresh az-cli session...",
+ "KeepingAzSessionActiveUnsupportedScheme": "The 'keepAzSessionActive' input might be used only for workload identity federation ARM service connection. The referenced service endpoint auth scheme was unexpected: %s. Change the scheme or remove 'keepAzSessionActive' input."
}
- },
- "messages": {
- "ScriptReturnCode": "Script exited with return code: %d",
- "ScriptFailed": "Script failed with error: %s",
- "ScriptFailedStdErr": "Script has output to stderr. Failing as failOnStdErr is set to true.",
- "ScriptFailedWithExitCode": "Script failed with exit code: %d",
- "UnsupportedEndpointScheme": "Unsupported service connection authorization scheme: Service Principal for AzureRM",
- "AzureSDKNotFound": "Azure CLI 2.x is not installed on this machine.",
- "FailedToLogout": "The following error occurred while logging out: %s",
- "LoginFailed": "Azure login failed",
- "MSILoginFailed": "Azure login failed using Managed Service Identity",
- "AuthSchemeNotSupported": "Auth Scheme %s is not supported",
- "ErrorInSettingUpSubscription": "Error in setting up subscription",
- "SettingAzureConfigDir": "Setting AZURE_CONFIG_DIR env variable to: %s",
- "SettingAzureCloud": "Setting active cloud to: %s",
- "JS_InvalidFilePath": "Script file could not be found at specified script location: '%s'. Please verify the script exists at the specified path. If you want to use inline script, specify input `Script Location` as `inlineScript`.",
- "JS_InvalidErrorActionPreference": "Invalid ErrorActionPreference '%s'. The value must be one of: 'Stop', 'Continue', or 'SilentlyContinue'",
- "GlobalCliConfigAgentVersionWarning": "For agent version < 2.115.0, only global Azure CLI configuration can be used",
- "UnacceptedScriptLocationValue": "%s is not a valid value for task input 'Script Location' (scriptLocation in YAML). Value can either be'inlineScript' or 'scriptPath'",
- "ExpiredServicePrincipalMessageWithLink": "Secret expired, update service connection at\u00A0%s See\u00A0https://aka.ms/azdo-rm-workload-identity-conversion to learn more about conversion to secret-less service connections.",
- "ProxyConfig": "az tool is configured to use %s as proxy server",
- "FailedToRefreshAzSession": "The following error occurred while trying to refresh az-cli session: %s",
- "RefreshingAzSession": "Attempting to refresh az-cli session...",
- "KeepingAzSessionActiveUnsupportedScheme": "The 'keepAzSessionActive' input might be used only for workload identity federation ARM service connection. The referenced service endpoint auth scheme was unexpected: %s. Change the scheme or remove 'keepAzSessionActive' input."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureCLIV2/task.loc.json b/Tasks/AzureCLIV2/task.loc.json
index 823a38f9f589..325936e5d68c 100644
--- a/Tasks/AzureCLIV2/task.loc.json
+++ b/Tasks/AzureCLIV2/task.loc.json
@@ -19,7 +19,7 @@
"demands": [],
"version": {
"Major": 2,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"minimumAgentVersion": "2.0.0",
diff --git a/Tasks/AzureCloudPowerShellDeploymentV1/task.json b/Tasks/AzureCloudPowerShellDeploymentV1/task.json
index 50fd1a7b1ac4..155d190e27c5 100644
--- a/Tasks/AzureCloudPowerShellDeploymentV1/task.json
+++ b/Tasks/AzureCloudPowerShellDeploymentV1/task.json
@@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureCloudPowerShellDeploymentV1/task.loc.json b/Tasks/AzureCloudPowerShellDeploymentV1/task.loc.json
index cb977bc3331b..29cdb1df5c7a 100644
--- a/Tasks/AzureCloudPowerShellDeploymentV1/task.loc.json
+++ b/Tasks/AzureCloudPowerShellDeploymentV1/task.loc.json
@@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureCloudPowerShellDeploymentV2/task.json b/Tasks/AzureCloudPowerShellDeploymentV2/task.json
index 0cc0436b385d..6509dcbd1d8d 100644
--- a/Tasks/AzureCloudPowerShellDeploymentV2/task.json
+++ b/Tasks/AzureCloudPowerShellDeploymentV2/task.json
@@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureCloudPowerShellDeploymentV2/task.loc.json b/Tasks/AzureCloudPowerShellDeploymentV2/task.loc.json
index 0d2c8e1b79c8..7c47248771e9 100644
--- a/Tasks/AzureCloudPowerShellDeploymentV2/task.loc.json
+++ b/Tasks/AzureCloudPowerShellDeploymentV2/task.loc.json
@@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV1/task.json b/Tasks/AzureFileCopyV1/task.json
index d515c34d1919..0404ddeef4cf 100644
--- a/Tasks/AzureFileCopyV1/task.json
+++ b/Tasks/AzureFileCopyV1/task.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV1/task.loc.json b/Tasks/AzureFileCopyV1/task.loc.json
index 2b523a0782ec..6ba245f66de3 100644
--- a/Tasks/AzureFileCopyV1/task.loc.json
+++ b/Tasks/AzureFileCopyV1/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV2/task.json b/Tasks/AzureFileCopyV2/task.json
index 92448b81251a..b46e11cae1af 100644
--- a/Tasks/AzureFileCopyV2/task.json
+++ b/Tasks/AzureFileCopyV2/task.json
@@ -1,378 +1,378 @@
{
- "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
- "name": "AzureFileCopy",
- "friendlyName": "Azure file copy",
- "description": "Copy files to Azure Blob Storage or virtual machines",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 2,
- "Minor": 248,
- "Patch": 0
- },
- "demands": [
- "azureps"
- ],
- "releaseNotes": "What's new in Version 2.0: Using newer version of AzCopy.",
- "minimumAgentVersion": "1.103.0",
- "groups": [
- {
- "name": "output",
- "displayName": "Output",
- "isExpanded": true
- }
- ],
- "deprecated": true,
- "deprecationMessage": "This task is deprecated as this version of the AzureFileCopy task uses a retired version of AzCopy. Use the latest version of the AzureFileCopy task. See https://github.com/Azure/azure-storage-azcopy/blob/main/MigrationGuideV8toV10.md",
- "inputs": [
- {
- "name": "SourcePath",
- "type": "filePath",
- "label": "Source",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file."
- },
- {
- "name": "ConnectedServiceNameSelector",
- "aliases": [
- "azureConnectionType"
- ],
- "type": "pickList",
- "label": "Azure Connection Type",
- "required": false,
- "helpMarkDown": "",
- "defaultValue": "ConnectedServiceNameARM",
- "options": {
- "ConnectedServiceName": "Azure Classic",
- "ConnectedServiceNameARM": "Azure Resource Manager"
- }
- },
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureClassicSubscription"
- ],
- "type": "connectedService:Azure",
- "label": "Azure Classic Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Classic subscription to target for copying the files.",
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceName"
- },
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to target for copying the files.",
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM"
- },
- {
- "name": "Destination",
- "type": "pickList",
- "label": "Destination Type",
- "defaultValue": "",
- "required": true,
- "options": {
- "AzureBlob": "Azure Blob",
- "AzureVMs": "Azure VMs"
- },
- "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
- },
- {
- "name": "StorageAccount",
- "aliases": [
- "classicStorage"
- ],
- "type": "pickList",
- "label": "Classic Storage Account",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Specify a pre-existing classic storage account. It is also used as an intermediary for copying files to Azure VMs",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceName"
- },
- {
- "name": "StorageAccountRM",
- "aliases": [
- "storage"
- ],
- "type": "pickList",
- "label": "RM Storage Account",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM"
- },
- {
- "name": "ContainerName",
- "type": "string",
- "label": "Container Name",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2 as blob prefix.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "BlobPrefix",
- "type": "string",
- "label": "Blob Prefix",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1, a virtual directory with this name will be created inside the container. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "EnvironmentName",
- "aliases": [
- "cloudService"
- ],
- "type": "pickList",
- "label": "Cloud Service",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the target Cloud Service for copying files to.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceName && Destination = AzureVMs"
- },
- {
- "name": "EnvironmentNameRM",
- "aliases": [
- "resourceGroup"
- ],
- "type": "pickList",
- "label": "Resource Group",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the target Resource Group for copying files to.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM && Destination = AzureVMs"
- },
- {
- "name": "ResourceFilteringMethod",
- "type": "radio",
- "label": "Select Machines By",
- "required": false,
- "defaultValue": "machineNames",
- "options": {
- "machineNames": "Machine Names",
- "tags": "Tags"
- },
- "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "MachineNames",
- "type": "string",
- "label": "Filter Criteria",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminUserName",
- "type": "string",
- "label": "Admin Login",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Administrator Username of the VMs.",
- "visibleRule": "Destination = AzureVMs"
+ "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
+ "name": "AzureFileCopy",
+ "friendlyName": "Azure file copy",
+ "description": "Copy files to Azure Blob Storage or virtual machines",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 2,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "vmsAdminPassword",
- "type": "string",
- "label": "Password",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
- "visibleRule": "Destination = AzureVMs"
+ "demands": [
+ "azureps"
+ ],
+ "releaseNotes": "What's new in Version 2.0: Using newer version of AzCopy.",
+ "minimumAgentVersion": "1.103.0",
+ "groups": [
+ {
+ "name": "output",
+ "displayName": "Output",
+ "isExpanded": true
+ }
+ ],
+ "deprecated": true,
+ "deprecationMessage": "This task is deprecated as this version of the AzureFileCopy task uses a retired version of AzCopy. Use the latest version of the AzureFileCopy task. See https://github.com/Azure/azure-storage-azcopy/blob/main/MigrationGuideV8toV10.md",
+ "inputs": [
+ {
+ "name": "SourcePath",
+ "type": "filePath",
+ "label": "Source",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file."
+ },
+ {
+ "name": "ConnectedServiceNameSelector",
+ "aliases": [
+ "azureConnectionType"
+ ],
+ "type": "pickList",
+ "label": "Azure Connection Type",
+ "required": false,
+ "helpMarkDown": "",
+ "defaultValue": "ConnectedServiceNameARM",
+ "options": {
+ "ConnectedServiceName": "Azure Classic",
+ "ConnectedServiceNameARM": "Azure Resource Manager"
+ }
+ },
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureClassicSubscription"
+ ],
+ "type": "connectedService:Azure",
+ "label": "Azure Classic Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Classic subscription to target for copying the files.",
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceName"
+ },
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to target for copying the files.",
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM"
+ },
+ {
+ "name": "Destination",
+ "type": "pickList",
+ "label": "Destination Type",
+ "defaultValue": "",
+ "required": true,
+ "options": {
+ "AzureBlob": "Azure Blob",
+ "AzureVMs": "Azure VMs"
+ },
+ "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ },
+ {
+ "name": "StorageAccount",
+ "aliases": [
+ "classicStorage"
+ ],
+ "type": "pickList",
+ "label": "Classic Storage Account",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Specify a pre-existing classic storage account. It is also used as an intermediary for copying files to Azure VMs",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceName"
+ },
+ {
+ "name": "StorageAccountRM",
+ "aliases": [
+ "storage"
+ ],
+ "type": "pickList",
+ "label": "RM Storage Account",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM"
+ },
+ {
+ "name": "ContainerName",
+ "type": "string",
+ "label": "Container Name",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2 as blob prefix.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "BlobPrefix",
+ "type": "string",
+ "label": "Blob Prefix",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1, a virtual directory with this name will be created inside the container. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "EnvironmentName",
+ "aliases": [
+ "cloudService"
+ ],
+ "type": "pickList",
+ "label": "Cloud Service",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the target Cloud Service for copying files to.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceName && Destination = AzureVMs"
+ },
+ {
+ "name": "EnvironmentNameRM",
+ "aliases": [
+ "resourceGroup"
+ ],
+ "type": "pickList",
+ "label": "Resource Group",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the target Resource Group for copying files to.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM && Destination = AzureVMs"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "MachineNames",
+ "type": "string",
+ "label": "Filter Criteria",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Administrator Username of the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "TargetPath",
+ "type": "string",
+ "label": "Destination Folder",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "AdditionalArgumentsForBlobCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for uploading files to blob)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /SetContentType, /Z, /V, /S (only if container name is not $root), /BlobType:page (only if specified storage account is a premium account). If source path is a file, /Pattern will always be added irrespective of whether or not you have specified optional arguments."
+ },
+ {
+ "name": "AdditionalArgumentsForVMCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for downloading files to VM)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /S, /Z, /V",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "enableCopyPrerequisites",
+ "type": "boolean",
+ "label": "Enable Copy Prerequisites",
+ "defaultValue": "false",
+ "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM && Destination = AzureVMs",
+ "required": false,
+ "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
+ },
+ {
+ "name": "CopyFilesInParallel",
+ "type": "boolean",
+ "label": "Copy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "CleanTargetBeforeCopy",
+ "type": "boolean",
+ "label": "Clean Target",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "skipCACheck",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "outputStorageUri",
+ "type": "string",
+ "label": "Storage Container URI",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "output",
+ "helpMarkDown": "Provide a name for the variable for the storage container URI that the files were copied to with this task. Valid only when the selected destination is Azure Blob."
+ },
+ {
+ "name": "outputStorageContainerSasToken",
+ "type": "string",
+ "label": "Storage Container SAS Token",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "output",
+ "helpMarkDown": "Provide a name for the variable for the storage container SAS Token used to access the files copied to with this task. Valid only when the selected destination is Azure Blob."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "StorageAccount",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureStorageServiceNames"
+ },
+ {
+ "target": "EnvironmentName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureHostedServiceNames"
+ },
+ {
+ "target": "StorageAccountRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureStorageAccountRM"
+ },
+ {
+ "target": "EnvironmentNameRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureVirtualMachinesV2Id",
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
+ }
+ ],
+ "instanceNameFormat": "$(Destination) File Copy",
+ "prejobexecution": {
+ "Node16": {
+ "target": "PreJobExecutionAzureFileCopy.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "PreJobExecutionAzureFileCopy.js"
+ }
},
- {
- "name": "TargetPath",
- "type": "string",
- "label": "Destination Folder",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
- "visibleRule": "Destination = AzureVMs"
+ "execution": {
+ "PowerShell3": {
+ "target": "AzureFileCopy.ps1"
+ }
},
- {
- "name": "AdditionalArgumentsForBlobCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for uploading files to blob)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /SetContentType, /Z, /V, /S (only if container name is not $root), /BlobType:page (only if specified storage account is a premium account). If source path is a file, /Pattern will always be added irrespective of whether or not you have specified optional arguments."
- },
- {
- "name": "AdditionalArgumentsForVMCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for downloading files to VM)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /S, /Z, /V",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "enableCopyPrerequisites",
- "type": "boolean",
- "label": "Enable Copy Prerequisites",
- "defaultValue": "false",
- "visibleRule": "ConnectedServiceNameSelector = ConnectedServiceNameARM && Destination = AzureVMs",
- "required": false,
- "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
- },
- {
- "name": "CopyFilesInParallel",
- "type": "boolean",
- "label": "Copy in Parallel",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "CleanTargetBeforeCopy",
- "type": "boolean",
- "label": "Clean Target",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "skipCACheck",
- "type": "boolean",
- "label": "Test Certificate",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "outputStorageUri",
- "type": "string",
- "label": "Storage Container URI",
- "required": false,
- "defaultValue": "",
- "groupName": "output",
- "helpMarkDown": "Provide a name for the variable for the storage container URI that the files were copied to with this task. Valid only when the selected destination is Azure Blob."
- },
- {
- "name": "outputStorageContainerSasToken",
- "type": "string",
- "label": "Storage Container SAS Token",
- "required": false,
- "defaultValue": "",
- "groupName": "output",
- "helpMarkDown": "Provide a name for the variable for the storage container SAS Token used to access the files copied to with this task. Valid only when the selected destination is Azure Blob."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "StorageAccount",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureStorageServiceNames"
- },
- {
- "target": "EnvironmentName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureHostedServiceNames"
- },
- {
- "target": "StorageAccountRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureStorageAccountRM"
- },
- {
- "target": "EnvironmentNameRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureVirtualMachinesV2Id",
- "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
- }
- ],
- "instanceNameFormat": "$(Destination) File Copy",
- "prejobexecution": {
- "Node16": {
- "target": "PreJobExecutionAzureFileCopy.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "PreJobExecutionAzureFileCopy.js"
- }
- },
- "execution": {
- "PowerShell3": {
- "target": "AzureFileCopy.ps1"
+ "messages": {
+ "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
+ "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
+ "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
+ "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
+ "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
+ "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
+ "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
+ "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
+ "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
+ "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
+ "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
+ "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
+ "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
+ "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
+ "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
+ "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
+ "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
+ "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
+ "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
+ "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
+ "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
+ "AFC_CopyStarted": "Copy started for machine: '{0}'",
+ "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
+ "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
+ "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
+ "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
+ "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
+ "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
+ "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
+ "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
+ "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
+ "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
+ "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
+ "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
+ "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
+ "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
+ "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
}
- },
- "messages": {
- "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
- "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
- "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
- "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
- "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
- "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
- "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
- "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
- "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
- "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
- "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
- "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
- "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
- "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
- "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
- "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
- "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
- "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
- "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
- "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
- "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
- "AFC_CopyStarted": "Copy started for machine: '{0}'",
- "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
- "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
- "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
- "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
- "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
- "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
- "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
- "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
- "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
- "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
- "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
- "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
- "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
- "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
- "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFileCopyV2/task.loc.json b/Tasks/AzureFileCopyV2/task.loc.json
index 92a67dd14b51..d4ed1031387f 100644
--- a/Tasks/AzureFileCopyV2/task.loc.json
+++ b/Tasks/AzureFileCopyV2/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV3/task.json b/Tasks/AzureFileCopyV3/task.json
index 8845a29bcb27..e46d87a96809 100644
--- a/Tasks/AzureFileCopyV3/task.json
+++ b/Tasks/AzureFileCopyV3/task.json
@@ -1,317 +1,317 @@
{
- "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
- "name": "AzureFileCopy",
- "friendlyName": "Azure file copy",
- "description": "Copy files to Azure Blob Storage or virtual machines",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 3,
- "Minor": 248,
- "Patch": 0
- },
- "demands": [
- "azureps"
- ],
- "releaseNotes": "What's new in Version 3.0: Support Az Module and stop supporting Azure classic service endpoint.",
- "minimumAgentVersion": "1.103.0",
- "groups": [
- {
- "name": "output",
- "displayName": "Output",
- "isExpanded": true
- }
- ],
- "deprecated": true,
- "deprecationMessage": "This task is deprecated as this version of the AzureFileCopy task uses a retired version of AzCopy. Use the latest version of the AzureFileCopy task. See https://github.com/Azure/azure-storage-azcopy/blob/main/MigrationGuideV8toV10.md",
- "inputs": [
- {
- "name": "SourcePath",
- "type": "filePath",
- "label": "Source",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file."
- },
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
- },
- {
- "name": "Destination",
- "type": "pickList",
- "label": "Destination Type",
- "defaultValue": "",
- "required": true,
- "options": {
- "AzureBlob": "Azure Blob",
- "AzureVMs": "Azure VMs"
- },
- "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
- },
- {
- "name": "StorageAccountRM",
- "aliases": [
- "storage"
- ],
- "type": "pickList",
- "label": "RM Storage Account",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "ContainerName",
- "type": "string",
- "label": "Container Name",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2 as blob prefix.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "BlobPrefix",
- "type": "string",
- "label": "Blob Prefix",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1, a virtual directory with this name will be created inside the container. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "EnvironmentNameRM",
- "aliases": [
- "resourceGroup"
- ],
- "type": "pickList",
- "label": "Resource Group",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the target Resource Group for copying files to.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "ResourceFilteringMethod",
- "type": "radio",
- "label": "Select Machines By",
- "required": false,
- "defaultValue": "machineNames",
- "options": {
- "machineNames": "Machine Names",
- "tags": "Tags"
- },
- "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "MachineNames",
- "type": "string",
- "label": "Filter Criteria",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminUserName",
- "type": "string",
- "label": "Admin Login",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Administrator Username of the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminPassword",
- "type": "string",
- "label": "Password",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "TargetPath",
- "type": "string",
- "label": "Destination Folder",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
- "visibleRule": "Destination = AzureVMs"
+ "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
+ "name": "AzureFileCopy",
+ "friendlyName": "Azure file copy",
+ "description": "Copy files to Azure Blob Storage or virtual machines",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 3,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "AdditionalArgumentsForBlobCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for uploading files to blob)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /SetContentType, /Z, /V, /S (only if container name is not $root), /BlobType:page (only if specified storage account is a premium account). If source path is a file, /Pattern will always be added irrespective of whether or not you have specified optional arguments."
+ "demands": [
+ "azureps"
+ ],
+ "releaseNotes": "What's new in Version 3.0: Support Az Module and stop supporting Azure classic service endpoint.",
+ "minimumAgentVersion": "1.103.0",
+ "groups": [
+ {
+ "name": "output",
+ "displayName": "Output",
+ "isExpanded": true
+ }
+ ],
+ "deprecated": true,
+ "deprecationMessage": "This task is deprecated as this version of the AzureFileCopy task uses a retired version of AzCopy. Use the latest version of the AzureFileCopy task. See https://github.com/Azure/azure-storage-azcopy/blob/main/MigrationGuideV8toV10.md",
+ "inputs": [
+ {
+ "name": "SourcePath",
+ "type": "filePath",
+ "label": "Source",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file."
+ },
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ },
+ {
+ "name": "Destination",
+ "type": "pickList",
+ "label": "Destination Type",
+ "defaultValue": "",
+ "required": true,
+ "options": {
+ "AzureBlob": "Azure Blob",
+ "AzureVMs": "Azure VMs"
+ },
+ "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ },
+ {
+ "name": "StorageAccountRM",
+ "aliases": [
+ "storage"
+ ],
+ "type": "pickList",
+ "label": "RM Storage Account",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "ContainerName",
+ "type": "string",
+ "label": "Container Name",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2 as blob prefix.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "BlobPrefix",
+ "type": "string",
+ "label": "Blob Prefix",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1, a virtual directory with this name will be created inside the container. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "EnvironmentNameRM",
+ "aliases": [
+ "resourceGroup"
+ ],
+ "type": "pickList",
+ "label": "Resource Group",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the target Resource Group for copying files to.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "MachineNames",
+ "type": "string",
+ "label": "Filter Criteria",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Administrator Username of the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "TargetPath",
+ "type": "string",
+ "label": "Destination Folder",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "AdditionalArgumentsForBlobCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for uploading files to blob)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /SetContentType, /Z, /V, /S (only if container name is not $root), /BlobType:page (only if specified storage account is a premium account). If source path is a file, /Pattern will always be added irrespective of whether or not you have specified optional arguments."
+ },
+ {
+ "name": "AdditionalArgumentsForVMCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for downloading files to VM)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /S, /Z, /V",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "enableCopyPrerequisites",
+ "type": "boolean",
+ "label": "Enable Copy Prerequisites",
+ "defaultValue": "false",
+ "visibleRule": "Destination = AzureVMs",
+ "required": false,
+ "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
+ },
+ {
+ "name": "CopyFilesInParallel",
+ "type": "boolean",
+ "label": "Copy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "CleanTargetBeforeCopy",
+ "type": "boolean",
+ "label": "Clean Target",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "skipCACheck",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "outputStorageUri",
+ "type": "string",
+ "label": "Storage Container URI",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "output",
+ "helpMarkDown": "Provide a name for the variable for the storage container URI that the files were copied to with this task. Valid only when the selected destination is Azure Blob."
+ },
+ {
+ "name": "outputStorageContainerSasToken",
+ "type": "string",
+ "label": "Storage Container SAS Token",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "output",
+ "helpMarkDown": "Provide a name for the variable for the storage container SAS Token used to access the files copied to with this task. Valid only when the selected destination is Azure Blob."
+ },
+ {
+ "name": "sasTokenTimeOutInMinutes",
+ "type": "string",
+ "label": "SAS Token Expiration Period In Minutes",
+ "required": false,
+ "groupName": "output",
+ "helpMarkDown": "Provide the time in minutes after which SAS token will expire. Valid only when the selected destination is Azure Blob."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "StorageAccountRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureStorageAccountRM"
+ },
+ {
+ "target": "EnvironmentNameRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureVirtualMachinesV2Id",
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
+ }
+ ],
+ "instanceNameFormat": "$(Destination) File Copy",
+ "prejobexecution": {
+ "Node16": {
+ "target": "PreJobExecutionAzureFileCopy.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "PreJobExecutionAzureFileCopy.js"
+ }
},
- {
- "name": "AdditionalArgumentsForVMCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for downloading files to VM)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, /NC:10. If no optional arguments are specified here, the following optional arguments will be added by default. /Y, /S, /Z, /V",
- "visibleRule": "Destination = AzureVMs"
+ "execution": {
+ "PowerShell3": {
+ "target": "AzureFileCopy.ps1"
+ }
},
- {
- "name": "enableCopyPrerequisites",
- "type": "boolean",
- "label": "Enable Copy Prerequisites",
- "defaultValue": "false",
- "visibleRule": "Destination = AzureVMs",
- "required": false,
- "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
- },
- {
- "name": "CopyFilesInParallel",
- "type": "boolean",
- "label": "Copy in Parallel",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "CleanTargetBeforeCopy",
- "type": "boolean",
- "label": "Clean Target",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "skipCACheck",
- "type": "boolean",
- "label": "Test Certificate",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "outputStorageUri",
- "type": "string",
- "label": "Storage Container URI",
- "required": false,
- "defaultValue": "",
- "groupName": "output",
- "helpMarkDown": "Provide a name for the variable for the storage container URI that the files were copied to with this task. Valid only when the selected destination is Azure Blob."
- },
- {
- "name": "outputStorageContainerSasToken",
- "type": "string",
- "label": "Storage Container SAS Token",
- "required": false,
- "defaultValue": "",
- "groupName": "output",
- "helpMarkDown": "Provide a name for the variable for the storage container SAS Token used to access the files copied to with this task. Valid only when the selected destination is Azure Blob."
- },
- {
- "name": "sasTokenTimeOutInMinutes",
- "type": "string",
- "label": "SAS Token Expiration Period In Minutes",
- "required": false,
- "groupName": "output",
- "helpMarkDown": "Provide the time in minutes after which SAS token will expire. Valid only when the selected destination is Azure Blob."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "StorageAccountRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureStorageAccountRM"
- },
- {
- "target": "EnvironmentNameRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureVirtualMachinesV2Id",
- "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
- }
- ],
- "instanceNameFormat": "$(Destination) File Copy",
- "prejobexecution": {
- "Node16": {
- "target": "PreJobExecutionAzureFileCopy.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "PreJobExecutionAzureFileCopy.js"
- }
- },
- "execution": {
- "PowerShell3": {
- "target": "AzureFileCopy.ps1"
+ "messages": {
+ "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
+ "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
+ "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
+ "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
+ "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
+ "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
+ "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
+ "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
+ "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
+ "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
+ "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
+ "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
+ "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
+ "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
+ "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
+ "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
+ "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
+ "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
+ "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
+ "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
+ "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
+ "AFC_CopyStarted": "Copy started for machine: '{0}'",
+ "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
+ "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
+ "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
+ "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
+ "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
+ "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
+ "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
+ "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
+ "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
+ "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
+ "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
+ "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
+ "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
+ "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
+ "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
}
- },
- "messages": {
- "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
- "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
- "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
- "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
- "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
- "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
- "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
- "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
- "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
- "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
- "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
- "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
- "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
- "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
- "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
- "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
- "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
- "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
- "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
- "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
- "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
- "AFC_CopyStarted": "Copy started for machine: '{0}'",
- "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
- "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
- "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
- "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
- "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
- "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
- "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
- "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
- "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
- "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
- "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
- "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
- "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
- "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
- "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFileCopyV3/task.loc.json b/Tasks/AzureFileCopyV3/task.loc.json
index bf04a9196a2a..e155e972ada9 100644
--- a/Tasks/AzureFileCopyV3/task.loc.json
+++ b/Tasks/AzureFileCopyV3/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV4/task.json b/Tasks/AzureFileCopyV4/task.json
index 0e8e7977693b..50312e494e20 100644
--- a/Tasks/AzureFileCopyV4/task.json
+++ b/Tasks/AzureFileCopyV4/task.json
@@ -1,303 +1,303 @@
{
- "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
- "name": "AzureFileCopy",
- "friendlyName": "Azure file copy",
- "description": "Copy files to Azure Blob Storage or virtual machines",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 4,
- "Minor": 248,
- "Patch": 0
- },
- "demands": [
- "azureps"
- ],
- "releaseNotes": "What's new in Version 4.0: Support AzCopy.exe version 10.8.0",
- "minimumAgentVersion": "1.103.0",
- "inputs": [
- {
- "name": "SourcePath",
- "type": "filePath",
- "label": "Source",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file. Wild card symbol (*) is supported anywhere in the file path or file name."
+ "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
+ "name": "AzureFileCopy",
+ "friendlyName": "Azure file copy",
+ "description": "Copy files to Azure Blob Storage or virtual machines",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 4,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ "demands": [
+ "azureps"
+ ],
+ "releaseNotes": "What's new in Version 4.0: Support AzCopy.exe version 10.8.0",
+ "minimumAgentVersion": "1.103.0",
+ "inputs": [
+ {
+ "name": "SourcePath",
+ "type": "filePath",
+ "label": "Source",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file. Wild card symbol (*) is supported anywhere in the file path or file name."
+ },
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ },
+ {
+ "name": "Destination",
+ "type": "pickList",
+ "label": "Destination Type",
+ "defaultValue": "",
+ "required": true,
+ "options": {
+ "AzureBlob": "Azure Blob",
+ "AzureVMs": "Azure VMs"
+ },
+ "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ },
+ {
+ "name": "StorageAccountRM",
+ "aliases": [
+ "storage"
+ ],
+ "type": "pickList",
+ "label": "RM Storage Account",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "ContainerName",
+ "type": "string",
+ "label": "Container Name",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2/ as blob prefix.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "BlobPrefix",
+ "type": "string",
+ "label": "Blob Prefix",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1/, a virtual directory with this name will be created inside the container. Blob prefix with a trailing '/' will be considered a virtual directory. Otherwise, it will be treated as a file, unless the item being copied is itself a folder. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "EnvironmentNameRM",
+ "aliases": [
+ "resourceGroup"
+ ],
+ "type": "pickList",
+ "label": "Resource Group",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the target Resource Group for copying files to.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "MachineNames",
+ "type": "string",
+ "label": "Filter Criteria",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Administrator Username of the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "TargetPath",
+ "type": "string",
+ "label": "Destination Folder",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "AdditionalArgumentsForBlobCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for uploading files to blob)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive (only if container name is not $root), --blob-type=PageBlob (only if specified storage account is a premium account)."
+ },
+ {
+ "name": "AdditionalArgumentsForVMCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for downloading files to VM)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "sasTokenTimeOutInMinutes",
+ "type": "string",
+ "label": "SAS Token Expiration Period In Minutes",
+ "defaultValue": "240",
+ "required": false,
+ "helpMarkDown": "Provide the time in minutes after which SAS token for the container will expire. By default, this token expires after 4 hours.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "enableCopyPrerequisites",
+ "type": "boolean",
+ "label": "Enable Copy Prerequisites",
+ "defaultValue": "false",
+ "visibleRule": "Destination = AzureVMs",
+ "required": false,
+ "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
+ },
+ {
+ "name": "CopyFilesInParallel",
+ "type": "boolean",
+ "label": "Copy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "CleanTargetBeforeCopy",
+ "type": "boolean",
+ "label": "Clean Target",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "skipCACheck",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
+ "visibleRule": "Destination = AzureVMs"
+ }
+ ],
+ "outputVariables": [
+ {
+ "name": "StorageContainerUri",
+ "description": "Uri of the container where the files were copied to. Valid only when the selected destination is Azure Blob."
+ },
+ {
+ "name": "StorageContainerSasToken",
+ "description": "SasToken for the container where the files were copied to. Valid only when the selected destination is Azure Blob."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "StorageAccountRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureStorageAccountRM"
+ },
+ {
+ "target": "EnvironmentNameRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureVirtualMachinesV2Id",
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
+ }
+ ],
+ "instanceNameFormat": "$(Destination) File Copy",
+ "prejobexecution": {
+ "Node16": {
+ "target": "PreJobExecutionAzureFileCopy.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "PreJobExecutionAzureFileCopy.js"
+ }
},
- {
- "name": "Destination",
- "type": "pickList",
- "label": "Destination Type",
- "defaultValue": "",
- "required": true,
- "options": {
- "AzureBlob": "Azure Blob",
- "AzureVMs": "Azure VMs"
- },
- "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ "execution": {
+ "PowerShell3": {
+ "target": "AzureFileCopy.ps1"
+ }
},
- {
- "name": "StorageAccountRM",
- "aliases": [
- "storage"
- ],
- "type": "pickList",
- "label": "RM Storage Account",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "ContainerName",
- "type": "string",
- "label": "Container Name",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2/ as blob prefix.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "BlobPrefix",
- "type": "string",
- "label": "Blob Prefix",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1/, a virtual directory with this name will be created inside the container. Blob prefix with a trailing '/' will be considered a virtual directory. Otherwise, it will be treated as a file, unless the item being copied is itself a folder. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "EnvironmentNameRM",
- "aliases": [
- "resourceGroup"
- ],
- "type": "pickList",
- "label": "Resource Group",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the target Resource Group for copying files to.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "ResourceFilteringMethod",
- "type": "radio",
- "label": "Select Machines By",
- "required": false,
- "defaultValue": "machineNames",
- "options": {
- "machineNames": "Machine Names",
- "tags": "Tags"
- },
- "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "MachineNames",
- "type": "string",
- "label": "Filter Criteria",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminUserName",
- "type": "string",
- "label": "Admin Login",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Administrator Username of the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminPassword",
- "type": "string",
- "label": "Password",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "TargetPath",
- "type": "string",
- "label": "Destination Folder",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "AdditionalArgumentsForBlobCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for uploading files to blob)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive (only if container name is not $root), --blob-type=PageBlob (only if specified storage account is a premium account)."
- },
- {
- "name": "AdditionalArgumentsForVMCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for downloading files to VM)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "sasTokenTimeOutInMinutes",
- "type": "string",
- "label": "SAS Token Expiration Period In Minutes",
- "defaultValue": "240",
- "required": false,
- "helpMarkDown": "Provide the time in minutes after which SAS token for the container will expire. By default, this token expires after 4 hours.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "enableCopyPrerequisites",
- "type": "boolean",
- "label": "Enable Copy Prerequisites",
- "defaultValue": "false",
- "visibleRule": "Destination = AzureVMs",
- "required": false,
- "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
- },
- {
- "name": "CopyFilesInParallel",
- "type": "boolean",
- "label": "Copy in Parallel",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "CleanTargetBeforeCopy",
- "type": "boolean",
- "label": "Clean Target",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "skipCACheck",
- "type": "boolean",
- "label": "Test Certificate",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
- "visibleRule": "Destination = AzureVMs"
- }
- ],
- "outputVariables": [
- {
- "name": "StorageContainerUri",
- "description": "Uri of the container where the files were copied to. Valid only when the selected destination is Azure Blob."
- },
- {
- "name": "StorageContainerSasToken",
- "description": "SasToken for the container where the files were copied to. Valid only when the selected destination is Azure Blob."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "StorageAccountRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureStorageAccountRM"
- },
- {
- "target": "EnvironmentNameRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureVirtualMachinesV2Id",
- "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
- }
- ],
- "instanceNameFormat": "$(Destination) File Copy",
- "prejobexecution": {
- "Node16": {
- "target": "PreJobExecutionAzureFileCopy.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "PreJobExecutionAzureFileCopy.js"
- }
- },
- "execution": {
- "PowerShell3": {
- "target": "AzureFileCopy.ps1"
+ "messages": {
+ "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
+ "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
+ "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
+ "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
+ "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
+ "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
+ "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
+ "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
+ "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
+ "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
+ "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
+ "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
+ "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
+ "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
+ "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
+ "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
+ "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
+ "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
+ "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
+ "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
+ "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
+ "AFC_CopyStarted": "Copy started for machine: '{0}'",
+ "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
+ "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
+ "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
+ "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
+ "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
+ "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
+ "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
+ "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
+ "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
+ "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
+ "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
+ "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
+ "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
+ "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
+ "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
+ "UnsupportedAuthScheme": "Unsupported authentication scheme '{0}' for endpoint.",
+ "ServicePrincipalError": "There was an error with the service principal used for the deployment."
}
- },
- "messages": {
- "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
- "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
- "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
- "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
- "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
- "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
- "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
- "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
- "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
- "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
- "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
- "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
- "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
- "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
- "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
- "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
- "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
- "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
- "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
- "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
- "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
- "AFC_CopyStarted": "Copy started for machine: '{0}'",
- "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
- "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
- "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
- "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
- "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
- "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
- "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
- "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
- "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
- "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
- "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
- "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
- "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
- "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
- "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
- "UnsupportedAuthScheme": "Unsupported authentication scheme '{0}' for endpoint.",
- "ServicePrincipalError": "There was an error with the service principal used for the deployment."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFileCopyV4/task.loc.json b/Tasks/AzureFileCopyV4/task.loc.json
index 13ac1a754760..d9fd10fb084e 100644
--- a/Tasks/AzureFileCopyV4/task.loc.json
+++ b/Tasks/AzureFileCopyV4/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 4,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV5/task.json b/Tasks/AzureFileCopyV5/task.json
index 887b6df1d50b..02cd5f481b1d 100644
--- a/Tasks/AzureFileCopyV5/task.json
+++ b/Tasks/AzureFileCopyV5/task.json
@@ -1,303 +1,303 @@
{
- "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
- "name": "AzureFileCopy",
- "friendlyName": "Azure file copy",
- "description": "Copy files to Azure Blob Storage or virtual machines",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 5,
- "Minor": 248,
- "Patch": 0
- },
- "demands": [
- "azureps"
- ],
- "releaseNotes": "What's new in Version 5.0: Support AzCopy.exe version 10.12.2",
- "minimumAgentVersion": "1.103.0",
- "inputs": [
- {
- "name": "SourcePath",
- "type": "filePath",
- "label": "Source",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file. Wild card symbol (*) is supported anywhere in the file path or file name."
+ "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
+ "name": "AzureFileCopy",
+ "friendlyName": "Azure file copy",
+ "description": "Copy files to Azure Blob Storage or virtual machines",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 5,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ "demands": [
+ "azureps"
+ ],
+ "releaseNotes": "What's new in Version 5.0: Support AzCopy.exe version 10.12.2",
+ "minimumAgentVersion": "1.103.0",
+ "inputs": [
+ {
+ "name": "SourcePath",
+ "type": "filePath",
+ "label": "Source",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file. Wild card symbol (*) is supported anywhere in the file path or file name."
+ },
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ },
+ {
+ "name": "Destination",
+ "type": "pickList",
+ "label": "Destination Type",
+ "defaultValue": "",
+ "required": true,
+ "options": {
+ "AzureBlob": "Azure Blob",
+ "AzureVMs": "Azure VMs"
+ },
+ "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ },
+ {
+ "name": "StorageAccountRM",
+ "aliases": [
+ "storage"
+ ],
+ "type": "pickList",
+ "label": "RM Storage Account",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "ContainerName",
+ "type": "string",
+ "label": "Container Name",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2/ as blob prefix.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "BlobPrefix",
+ "type": "string",
+ "label": "Blob Prefix",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1/, a virtual directory with this name will be created inside the container. Blob prefix with a trailing '/' will be considered a virtual directory. Otherwise, it will be treated as a file, unless the item being copied is itself a folder. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "EnvironmentNameRM",
+ "aliases": [
+ "resourceGroup"
+ ],
+ "type": "pickList",
+ "label": "Resource Group",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the target Resource Group for copying files to.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "MachineNames",
+ "type": "string",
+ "label": "Filter Criteria",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Administrator Username of the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "TargetPath",
+ "type": "string",
+ "label": "Destination Folder",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "AdditionalArgumentsForBlobCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for uploading files to blob)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive (only if container name is not $root), --blob-type=PageBlob (only if specified storage account is a premium account)."
+ },
+ {
+ "name": "AdditionalArgumentsForVMCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for downloading files to VM)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "sasTokenTimeOutInMinutes",
+ "type": "string",
+ "label": "SAS Token Expiration Period In Minutes",
+ "defaultValue": "240",
+ "required": false,
+ "helpMarkDown": "Provide the time in minutes after which SAS token for the container will expire. By default, this token expires after 4 hours.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "enableCopyPrerequisites",
+ "type": "boolean",
+ "label": "Enable Copy Prerequisites",
+ "defaultValue": "false",
+ "visibleRule": "Destination = AzureVMs",
+ "required": false,
+ "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
+ },
+ {
+ "name": "CopyFilesInParallel",
+ "type": "boolean",
+ "label": "Copy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "CleanTargetBeforeCopy",
+ "type": "boolean",
+ "label": "Clean Target",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files."
+ },
+ {
+ "name": "skipCACheck",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
+ "visibleRule": "Destination = AzureVMs"
+ }
+ ],
+ "outputVariables": [
+ {
+ "name": "StorageContainerUri",
+ "description": "Uri of the container where the files were copied to. Valid only when the selected destination is Azure Blob."
+ },
+ {
+ "name": "StorageContainerSasToken",
+ "description": "SasToken for the container where the files were copied to. Valid only when the selected destination is Azure Blob."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "StorageAccountRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureStorageAccountRM"
+ },
+ {
+ "target": "EnvironmentNameRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureVirtualMachinesV2Id",
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
+ }
+ ],
+ "instanceNameFormat": "$(Destination) File Copy",
+ "prejobexecution": {
+ "Node16": {
+ "target": "PreJobExecutionAzureFileCopy.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "PreJobExecutionAzureFileCopy.js"
+ }
},
- {
- "name": "Destination",
- "type": "pickList",
- "label": "Destination Type",
- "defaultValue": "",
- "required": true,
- "options": {
- "AzureBlob": "Azure Blob",
- "AzureVMs": "Azure VMs"
- },
- "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ "execution": {
+ "PowerShell3": {
+ "target": "AzureFileCopy.ps1"
+ }
},
- {
- "name": "StorageAccountRM",
- "aliases": [
- "storage"
- ],
- "type": "pickList",
- "label": "RM Storage Account",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "ContainerName",
- "type": "string",
- "label": "Container Name",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2/ as blob prefix.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "BlobPrefix",
- "type": "string",
- "label": "Blob Prefix",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1/, a virtual directory with this name will be created inside the container. Blob prefix with a trailing '/' will be considered a virtual directory. Otherwise, it will be treated as a file, unless the item being copied is itself a folder. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "EnvironmentNameRM",
- "aliases": [
- "resourceGroup"
- ],
- "type": "pickList",
- "label": "Resource Group",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the target Resource Group for copying files to.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "ResourceFilteringMethod",
- "type": "radio",
- "label": "Select Machines By",
- "required": false,
- "defaultValue": "machineNames",
- "options": {
- "machineNames": "Machine Names",
- "tags": "Tags"
- },
- "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "MachineNames",
- "type": "string",
- "label": "Filter Criteria",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminUserName",
- "type": "string",
- "label": "Admin Login",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Administrator Username of the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminPassword",
- "type": "string",
- "label": "Password",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "TargetPath",
- "type": "string",
- "label": "Destination Folder",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "AdditionalArgumentsForBlobCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for uploading files to blob)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive (only if container name is not $root), --blob-type=PageBlob (only if specified storage account is a premium account)."
- },
- {
- "name": "AdditionalArgumentsForVMCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for downloading files to VM)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "sasTokenTimeOutInMinutes",
- "type": "string",
- "label": "SAS Token Expiration Period In Minutes",
- "defaultValue": "240",
- "required": false,
- "helpMarkDown": "Provide the time in minutes after which SAS token for the container will expire. By default, this token expires after 4 hours.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "enableCopyPrerequisites",
- "type": "boolean",
- "label": "Enable Copy Prerequisites",
- "defaultValue": "false",
- "visibleRule": "Destination = AzureVMs",
- "required": false,
- "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
- },
- {
- "name": "CopyFilesInParallel",
- "type": "boolean",
- "label": "Copy in Parallel",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "CleanTargetBeforeCopy",
- "type": "boolean",
- "label": "Clean Target",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files."
- },
- {
- "name": "skipCACheck",
- "type": "boolean",
- "label": "Test Certificate",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
- "visibleRule": "Destination = AzureVMs"
- }
- ],
- "outputVariables": [
- {
- "name": "StorageContainerUri",
- "description": "Uri of the container where the files were copied to. Valid only when the selected destination is Azure Blob."
- },
- {
- "name": "StorageContainerSasToken",
- "description": "SasToken for the container where the files were copied to. Valid only when the selected destination is Azure Blob."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "StorageAccountRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureStorageAccountRM"
- },
- {
- "target": "EnvironmentNameRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureVirtualMachinesV2Id",
- "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
- }
- ],
- "instanceNameFormat": "$(Destination) File Copy",
- "prejobexecution": {
- "Node16": {
- "target": "PreJobExecutionAzureFileCopy.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "PreJobExecutionAzureFileCopy.js"
- }
- },
- "execution": {
- "PowerShell3": {
- "target": "AzureFileCopy.ps1"
+ "messages": {
+ "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
+ "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
+ "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
+ "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
+ "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
+ "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
+ "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
+ "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
+ "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
+ "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
+ "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
+ "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
+ "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
+ "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
+ "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
+ "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
+ "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
+ "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
+ "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
+ "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
+ "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
+ "AFC_CopyStarted": "Copy started for machine: '{0}'",
+ "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
+ "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
+ "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
+ "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
+ "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
+ "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
+ "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
+ "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
+ "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
+ "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
+ "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
+ "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
+ "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
+ "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
+ "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
+ "UnsupportedAuthScheme": "Unsupported authentication scheme '{0}' for endpoint.",
+ "ServicePrincipalError": "There was an error with the service principal used for the deployment.",
+ "AzModuleNotFound": "Could not find the modules: 'Az.Accounts'. If the module was recently installed, retry after restarting the Azure Pipelines task agent."
}
- },
- "messages": {
- "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
- "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
- "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
- "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
- "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
- "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
- "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
- "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
- "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
- "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
- "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
- "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
- "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
- "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
- "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
- "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
- "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
- "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
- "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
- "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
- "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
- "AFC_CopyStarted": "Copy started for machine: '{0}'",
- "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
- "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
- "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
- "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
- "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
- "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
- "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
- "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
- "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
- "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
- "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
- "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
- "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
- "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
- "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
- "UnsupportedAuthScheme": "Unsupported authentication scheme '{0}' for endpoint.",
- "ServicePrincipalError": "There was an error with the service principal used for the deployment.",
- "AzModuleNotFound": "Could not find the modules: 'Az.Accounts'. If the module was recently installed, retry after restarting the Azure Pipelines task agent."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFileCopyV5/task.loc.json b/Tasks/AzureFileCopyV5/task.loc.json
index e6d57e2144ea..a641d6c40525 100644
--- a/Tasks/AzureFileCopyV5/task.loc.json
+++ b/Tasks/AzureFileCopyV5/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 5,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzureFileCopyV6/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/AzureFileCopyV6/Strings/resources.resjson/de-DE/resources.resjson
index fec63bc15b31..b070761f997a 100644
--- a/Tasks/AzureFileCopyV6/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/AzureFileCopyV6/Strings/resources.resjson/de-DE/resources.resjson
@@ -1,9 +1,9 @@
{
"loc.friendlyName": "Azure-Dateikopiervorgang",
- "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/azurefilecopyreadme) und zum Melden von Problemen mit dieser neuen Version der Aufgabe [here](https://github.com/microsoft/azure-pipelines-tasks/issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
+ "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme) und zum Melden von Problemen mit dieser neuen Version der Aufgabe [here](https://github.com/microsoft/azure-pipelines-tasks/issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
"loc.description": "Hiermit werden Dateien in Azure Blob Storage oder auf virtuelle Computer kopiert.",
"loc.instanceNameFormat": "$(Destination)-Dateikopiervorgang",
- "loc.releaseNotes": "Neuigkeiten in Version 6.0: Unterstützung des Workloadidentitätsverbunds und [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), auch Verwendung von [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) mit Version 10.25.1, für weitere Informationen:[here](https://github.com/Azure/azure-storage-azcopy/releases)",
+ "loc.releaseNotes": "Neuigkeiten in Version 6.0: Unterstützung des Workloadidentitätsverbunds und von [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), auch Verwendung von [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) mit Version 10.25.1, für weitere Informationen:[hier](https://github.com/Azure/azure-storage-azcopy/releases)",
"loc.input.label.SourcePath": "Quelle",
"loc.input.help.SourcePath": "Der absolute Pfad des Quellordners oder der Datei auf dem lokalen Computer oder eine UNC-Freigabe. Der Ausdruck muss einen einzelnen Ordner oder eine Datei zurückgeben. Das Platzhaltersymbol (*) wird an beliebiger Stelle im Dateipfad oder im Dateinamen unterstützt.",
"loc.input.label.ConnectedServiceNameARM": "Azure-Abonnement",
diff --git a/Tasks/AzureFileCopyV6/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/AzureFileCopyV6/Strings/resources.resjson/fr-FR/resources.resjson
index 8e228f854cda..4f59da00a207 100644
--- a/Tasks/AzureFileCopyV6/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/AzureFileCopyV6/Strings/resources.resjson/fr-FR/resources.resjson
@@ -3,7 +3,7 @@
"loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/azurefilecopyreadme) et signaler tout problème avec cette nouvelle version de la tâche [ici](https://github.com/microsoft/azure-pipelines-tasks/ issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
"loc.description": "Copier des fichiers sur le Stockage Blob Azure ou des machines virtuelles",
"loc.instanceNameFormat": "Copie de fichiers $(Destination)",
- "loc.releaseNotes": "Nouveautés de la version 6.0 : Prend en charge la fédération d'identité de charge de travail et [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), utilisez également [AzCopy. exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) avec la version 10.25.1, pour plus d'informations :[ici](https://github.com/Azure/azure -stockage-azcopy/versions)",
+ "loc.releaseNotes": "Quoi de neuf dans la version 6.0 : Prend en charge la fédération d'identité de charge de travail et [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), utilisez également [AzCopy. exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) avec la version 10.25.1, pour plus d'informations :[ici](https://github.com/Azure/azure -stockage-azcopy/versions)",
"loc.input.label.SourcePath": "Source",
"loc.input.help.SourcePath": "Chemin absolu du dossier ou fichier source sur la machine locale, ou partage UNC. L'expression doit retourner un seul dossier ou fichier. Le symbole de caractère générique (*) est pris en charge n'importe où dans le chemin ou le nom de fichier.",
"loc.input.label.ConnectedServiceNameARM": "Abonnement Azure",
diff --git a/Tasks/AzureFileCopyV6/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/AzureFileCopyV6/Strings/resources.resjson/ru-RU/resources.resjson
index c11f8a5e372b..502a3eb8274a 100644
--- a/Tasks/AzureFileCopyV6/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/AzureFileCopyV6/Strings/resources.resjson/ru-RU/resources.resjson
@@ -3,7 +3,7 @@
"loc.helpMarkDown": "[Узнайте больше об этой задаче](https://aka.ms/azurefilecopyreadme) и сообщайте о любых проблемах с новой версией задачи [здесь](https://github.com/microsoft/azure-pipelines-tasks/issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
"loc.description": "Копировать файлы в хранилище BLOB-объектов Azure или виртуальные машины",
"loc.instanceNameFormat": "Копирование файлов $(Destination)",
- "loc.releaseNotes": "Новые возможности версии 6.0: Поддержка федерации удостоверений рабочей нагрузки и [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), также использование [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) с версией 10.25.1. Дополнительные сведения см. [здесь](https://github.com/Azure/azure-storage-azcopy/releases)",
+ "loc.releaseNotes": "Новые возможности версии 6.0: поддержка федерации удостоверений рабочей нагрузки и [управления доступном на основе ролей Azure](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), а также использования [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) с версией 10.25.1. Дополнительные сведения см. [здесь](https://github.com/Azure/azure-storage-azcopy/releases).",
"loc.input.label.SourcePath": "Источник",
"loc.input.help.SourcePath": "Абсолютный путь к исходной папке или файлу на локальном компьютере или общему ресурсу UNC. Выражение должно возвращать одну папку или один файл. Подстановочный знак (*) поддерживается в любом месте пути к файлу или имени файла.",
"loc.input.label.ConnectedServiceNameARM": "Подписка Azure",
diff --git a/Tasks/AzureFileCopyV6/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/AzureFileCopyV6/Strings/resources.resjson/zh-TW/resources.resjson
index 54736fe308b1..afcb67735e01 100644
--- a/Tasks/AzureFileCopyV6/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/AzureFileCopyV6/Strings/resources.resjson/zh-TW/resources.resjson
@@ -3,7 +3,7 @@
"loc.helpMarkDown": "[深入了解此工作](https://aka.ms/azurefilecopyreadme)。若要回報此工作之新版本 [這裡](https://github.com/microsoft/azure-pipelines-tasks/issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
"loc.description": "將檔案複製到 Azure Blob 儲存體或虛擬機器",
"loc.instanceNameFormat": "$(Destination) 檔案複製",
- "loc.releaseNotes": "6.0 版的新功能: 支援工作負載身分識別同盟 [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal),亦會使用 10.25.1 版的 [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1)。如需詳細資訊:[here](https://github.com/Azure/azure-storage-azcopy/releases)",
+ "loc.releaseNotes": "6.0 版的新增功能: 支援工作負載識別身分同盟和 [Azure RBAC](https://learn.microsoft.com/zh-tw/azure/storage/blobs/assign-azure-role-data-access?tabs=portal),亦會使用 10.25.1 版的 [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1)。如需詳細資訊,請參閱 [此處](https://github.com/Azure/azure-storage-azcopy/releases)",
"loc.input.label.SourcePath": "來源",
"loc.input.help.SourcePath": "來源資料夾、本機電腦檔案或 UNC 共用的絕對路徑。運算式應該傳回單一資料夾或檔案。支援在檔案路徑或檔案名稱的任何位置使用萬用字元符號 (*)。",
"loc.input.label.ConnectedServiceNameARM": "Azure 訂用帳戶",
diff --git a/Tasks/AzureFileCopyV6/task.json b/Tasks/AzureFileCopyV6/task.json
index 1c4f78587f73..2fe17fc5271b 100644
--- a/Tasks/AzureFileCopyV6/task.json
+++ b/Tasks/AzureFileCopyV6/task.json
@@ -1,290 +1,290 @@
{
- "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
- "name": "AzureFileCopy",
- "friendlyName": "Azure file copy",
- "description": "Copy files to Azure Blob Storage or virtual machines",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme) and to report any issues with this new version of the task [here](https://github.com/microsoft/azure-pipelines-tasks/issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 6,
- "Minor": 248,
- "Patch": 2
- },
- "demands": [
- "azureps"
- ],
- "releaseNotes": "What's new in Version 6.0: Support Workload identity federation and [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), also use [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) with version 10.25.1, for more info:[here](https://github.com/Azure/azure-storage-azcopy/releases)",
- "minimumAgentVersion": "1.103.0",
- "inputs": [
- {
- "name": "SourcePath",
- "type": "filePath",
- "label": "Source",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file. Wild card symbol (*) is supported anywhere in the file path or file name."
+ "id": "EB72CB01-A7E5-427B-A8A1-1B31CCAC8A43",
+ "name": "AzureFileCopy",
+ "friendlyName": "Azure file copy",
+ "description": "Copy files to Azure Blob Storage or virtual machines",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-file-copy",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefilecopyreadme) and to report any issues with this new version of the task [here](https://github.com/microsoft/azure-pipelines-tasks/issues/new?assignees=&labels=regression%2Cbug&projects=&template=1.regression.yml&title=%5BREGRESSION%5D%3A+)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 6,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ "demands": [
+ "azureps"
+ ],
+ "releaseNotes": "What's new in Version 6.0: Support Workload identity federation and [Azure RBAC](https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access?tabs=portal), also use [AzCopy.exe](https://github.com/Azure/azure-storage-azcopy/tree/v10.25.1) with version 10.25.1, for more info:[here](https://github.com/Azure/azure-storage-azcopy/releases)",
+ "minimumAgentVersion": "1.103.0",
+ "inputs": [
+ {
+ "name": "SourcePath",
+ "type": "filePath",
+ "label": "Source",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Absolute path of the source folder, or file on the local machine, or a UNC share. Expression should return a single folder or a file. Wild card symbol (*) is supported anywhere in the file path or file name."
+ },
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to target for copying the files."
+ },
+ {
+ "name": "Destination",
+ "type": "pickList",
+ "label": "Destination Type",
+ "defaultValue": "",
+ "required": true,
+ "options": {
+ "AzureBlob": "Azure Blob",
+ "AzureVMs": "Azure VMs"
+ },
+ "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ },
+ {
+ "name": "StorageAccountRM",
+ "aliases": [
+ "storage"
+ ],
+ "type": "pickList",
+ "label": "RM Storage Account",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "ContainerName",
+ "type": "string",
+ "label": "Container Name",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2/ as blob prefix.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "BlobPrefix",
+ "type": "string",
+ "label": "Blob Prefix",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1/, a virtual directory with this name will be created inside the container. Blob prefix with a trailing '/' will be considered a virtual directory. Otherwise, it will be treated as a file, unless the item being copied is itself a folder. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
+ "visibleRule": "Destination = AzureBlob"
+ },
+ {
+ "name": "EnvironmentNameRM",
+ "aliases": [
+ "resourceGroup"
+ ],
+ "type": "pickList",
+ "label": "Resource Group",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Name of the target Resource Group for copying files to.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "MachineNames",
+ "type": "string",
+ "label": "Filter Criteria",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Administrator Username of the VMs.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "vmsAdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "TargetPath",
+ "type": "string",
+ "label": "Destination Folder",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "AdditionalArgumentsForBlobCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for uploading files to blob)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive (only if container name is not $root), --blob-type=PageBlob (only if specified storage account is a premium account)."
+ },
+ {
+ "name": "AdditionalArgumentsForVMCopy",
+ "type": "multiLine",
+ "label": "Optional Arguments (for downloading files to VM)",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "enableCopyPrerequisites",
+ "type": "boolean",
+ "label": "Enable Copy Prerequisites",
+ "defaultValue": "false",
+ "visibleRule": "Destination = AzureVMs",
+ "required": false,
+ "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
+ },
+ {
+ "name": "CopyFilesInParallel",
+ "type": "boolean",
+ "label": "Copy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
+ "visibleRule": "Destination = AzureVMs"
+ },
+ {
+ "name": "CleanTargetBeforeCopy",
+ "type": "boolean",
+ "label": "Clean Target",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files."
+ },
+ {
+ "name": "skipCACheck",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
+ "visibleRule": "Destination = AzureVMs"
+ }
+ ],
+ "outputVariables": [
+ {
+ "name": "StorageContainerUri",
+ "description": "Uri of the container where the files were copied to. Valid only when the selected destination is Azure Blob."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "StorageAccountRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureStorageAccountRM"
+ },
+ {
+ "target": "EnvironmentNameRM",
+ "endpointId": "$(ConnectedServiceNameARM)",
+ "dataSourceName": "AzureVirtualMachinesV2Id",
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
+ }
+ ],
+ "instanceNameFormat": "$(Destination) File Copy",
+ "prejobexecution": {
+ "Node16": {
+ "target": "PreJobExecutionAzureFileCopy.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "PreJobExecutionAzureFileCopy.js"
+ }
},
- {
- "name": "Destination",
- "type": "pickList",
- "label": "Destination Type",
- "defaultValue": "",
- "required": true,
- "options": {
- "AzureBlob": "Azure Blob",
- "AzureVMs": "Azure VMs"
- },
- "helpMarkDown": "Select the destination, either Azure Blob or Azure VMs."
+ "execution": {
+ "PowerShell3": {
+ "target": "AzureFileCopy.ps1"
+ }
},
- {
- "name": "StorageAccountRM",
- "aliases": [
- "storage"
- ],
- "type": "pickList",
- "label": "RM Storage Account",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Specify a pre-existing ARM storage account. It is also used as an intermediary for copying files to Azure VMs",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "ContainerName",
- "type": "string",
- "label": "Container Name",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the Container for uploading the files. If a container with the given name does not exist in the specified storage account, it will automatically be created. If you need to create a virtual directory inside the container, use the blob prefix input below. Example: If your target location is https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, then specify mycontainer as container name and vd1/vd2/ as blob prefix.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "BlobPrefix",
- "type": "string",
- "label": "Blob Prefix",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Useful for filtering files, for example, append build number to all the blobs to download files from that build only. Example: If you specify blob prefix as myvd1/, a virtual directory with this name will be created inside the container. Blob prefix with a trailing '/' will be considered a virtual directory. Otherwise, it will be treated as a file, unless the item being copied is itself a folder. The source files will be copied to https://myaccount.blob.core.windows.net/mycontainer/myvd1/.",
- "visibleRule": "Destination = AzureBlob"
- },
- {
- "name": "EnvironmentNameRM",
- "aliases": [
- "resourceGroup"
- ],
- "type": "pickList",
- "label": "Resource Group",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Name of the target Resource Group for copying files to.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "ResourceFilteringMethod",
- "type": "radio",
- "label": "Select Machines By",
- "required": false,
- "defaultValue": "machineNames",
- "options": {
- "machineNames": "Machine Names",
- "tags": "Tags"
- },
- "helpMarkDown": "Optionally, select a subset of VMs in resource group either by providing VMs host name or tags. [Tags](https://learn.microsoft.com/en-us/azure/virtual-machines/tag-template/) are supported for resources created via the Azure Resource Manager only.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "MachineNames",
- "type": "string",
- "label": "Filter Criteria",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Provide a list of VMs host name like ffweb, ffdb, or tags like Role:DB, Web; OS:Win8.1. Note the delimiters used for tags are ,(comma), :(colon) and ;(semicolon). If multiple tags are provided, then the task will run in all the VMs with the specified tags. The default is to run the task in all the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminUserName",
- "type": "string",
- "label": "Admin Login",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Administrator Username of the VMs.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "vmsAdminPassword",
- "type": "string",
- "label": "Password",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "The administrator password of the VMs. It can accept variable defined in build or release pipelines as '$(passwordVariable)'. You may mark variable as 'secret' to secure it.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "TargetPath",
- "type": "string",
- "label": "Destination Folder",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Local path on the target machines for copying the files from the source. Environment variable can be used like $env:windir\\BudgetIT\\Web.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "AdditionalArgumentsForBlobCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for uploading files to blob)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when uploading to blob like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive (only if container name is not $root), --blob-type=PageBlob (only if specified storage account is a premium account)."
- },
- {
- "name": "AdditionalArgumentsForVMCopy",
- "type": "multiLine",
- "label": "Optional Arguments (for downloading files to VM)",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Optional AzCopy.exe arguments that will be applied when downloading to VM like, --check-length=true. If no optional arguments are specified here, the following optional arguments will be added by default. --log-level=INFO (if the pipeline is running in debug mode set --log-level=DEBUG), --recursive",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "enableCopyPrerequisites",
- "type": "boolean",
- "label": "Enable Copy Prerequisites",
- "defaultValue": "false",
- "visibleRule": "Destination = AzureVMs",
- "required": false,
- "helpMarkDown": "Enabling this option configures Windows Remote Management (WinRM) listener over HTTPS protocol on port 5986, using a self-signed certificate. This configuration is required for performing copy operation on Azure machines. If the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs."
- },
- {
- "name": "CopyFilesInParallel",
- "type": "boolean",
- "label": "Copy in Parallel",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "Setting it to true will copy files in parallel to the target machines.",
- "visibleRule": "Destination = AzureVMs"
- },
- {
- "name": "CleanTargetBeforeCopy",
- "type": "boolean",
- "label": "Clean Target",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Setting it to true will clean-up the destination folder before copying the files."
- },
- {
- "name": "skipCACheck",
- "type": "boolean",
- "label": "Test Certificate",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If this option is selected, client skips the validation that the server certificate is signed by a trusted certificate authority (CA) when connecting over Hypertext Transfer Protocol over Secure Socket Layer (HTTPS).",
- "visibleRule": "Destination = AzureVMs"
- }
- ],
- "outputVariables": [
- {
- "name": "StorageContainerUri",
- "description": "Uri of the container where the files were copied to. Valid only when the selected destination is Azure Blob."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "StorageAccountRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureStorageAccountRM"
- },
- {
- "target": "EnvironmentNameRM",
- "endpointId": "$(ConnectedServiceNameARM)",
- "dataSourceName": "AzureVirtualMachinesV2Id",
- "resultTemplate": "{\"Value\":\"{{{ #extractResource resourceGroups}}}\",\"DisplayValue\":\"{{{ #extractResource resourceGroups}}}\"}"
- }
- ],
- "instanceNameFormat": "$(Destination) File Copy",
- "prejobexecution": {
- "Node16": {
- "target": "PreJobExecutionAzureFileCopy.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "PreJobExecutionAzureFileCopy.js"
- }
- },
- "execution": {
- "PowerShell3": {
- "target": "AzureFileCopy.ps1"
+ "messages": {
+ "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
+ "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
+ "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
+ "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
+ "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
+ "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
+ "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
+ "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
+ "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
+ "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
+ "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
+ "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
+ "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
+ "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
+ "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
+ "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
+ "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
+ "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
+ "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
+ "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
+ "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
+ "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
+ "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
+ "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
+ "AFC_CopyStarted": "Copy started for machine: '{0}'",
+ "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
+ "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
+ "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
+ "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
+ "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
+ "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
+ "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
+ "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
+ "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
+ "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
+ "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
+ "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
+ "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
+ "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
+ "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
+ "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
+ "UnsupportedAuthScheme": "Unsupported authentication scheme '{0}' for endpoint.",
+ "ServicePrincipalError": "There was an error with the service principal used for the deployment.",
+ "AzModuleNotFound": "Could not find the modules: 'Az.Accounts'. If the module was recently installed, retry after restarting the Azure Pipelines task agent."
}
- },
- "messages": {
- "AFC_StorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Service Principal' supports storage accounts of Azure Resource Manager type only.",
- "AFC_ResourceGroupNotFound": "Provided resource group '{0}' does not exist.",
- "AFC_GetVMStatus": "[Azure Call]Getting the status for vm '{0}'",
- "AFC_GetVMStatusComplete": "[Azure Call]Got the status for vm '{0}'",
- "AFC_GetCustomScriptExtension": "[Azure Call]Getting the custom script extension '{0}' for vm '{1}'",
- "AFC_GetCustomScriptExtensionComplete": "[Azure Call]Got the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtension": "[Azure Call]Setting the custom script extension '{0}' for vm '{1}'",
- "AFC_SetCustomScriptExtensionComplete": "[Azure Call]Set the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtension": "[Azure Call]Removing the custom script extension '{0}' for vm '{1}'",
- "AFC_RemoveCustomScriptExtensionComplete": "[Azure Call]Removed the custom script extension '{0}' for vm '{1}'",
- "AFC_NoNetworkInterface": "[Azure Call]No network interface found with virtual machine ID {0} under resource group {1}",
- "AFC_NullOrEmptyResourceGroup": "[Azure Call]Resource group name and virtual machine ID should not be null or empty",
- "AFC_AzurePSNotInstalled": "The required minimum version {0} of the Azure Powershell Cmdlets are not installed. You can follow the instructions at https://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure/ to get the latest Azure powershell",
- "AFC_ClassicStorageAccountNotFound": "Storage account: {0} not found. The selected service connection 'Certificate' supports storage accounts of Azure Classic type only.",
- "AFC_GenericStorageAccountNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_AzureFileCopyMoreHelp": "For more info please refer to {0}",
- "AFC_UploadFilesStorageAccount": "Uploading files from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_UploadContainerStorageAccount": "Upload to container: '{0}' in storage account: '{1}' with blob prefix: '{2}' failed with error: '{3}'",
- "AFC_UploadFileSuccessful": "Uploaded files successfully from source path: '{0}' to storage account: '{1}' in container: '{2}' with blob prefix: '{3}'",
- "AFC_IncorrectTags": "Tags have been incorrectly specified. They have to be in the format Role:Web,DB;Location:East US;Dept.:Finance,HR",
- "AFC_MachineDoesNotExist": "The following machines either do not exist in the resource group or their names have not been specified correctly: {0}. Provide the exact same machine names present in the resource group. Use comma to separate multiple machine names.",
- "AFC_MachineNameFromIdErrorAllResources": "Unable to get {0} for all resources in ResourceGroup : '{1}'",
- "AFC_MachineNameFromIdError": "Unable to get {0} for '{1}' resources in ResourceGroup : '{2}'",
- "AFC_ResourceGroupNotFoundForSelectedConnection": "Unable to find the resource '{1}' using selected service connection '{0}'. Selected service connection '{0}' supports classic resources only (Service Management model).",
- "AFC_NoClassicVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Classic type only.",
- "AFC_NoARMVMResources": "No machine exists under resource group: '{0}' for copy. Selected service connection '{1}' supports Virtual Machines of Azure Resource Manager type only.",
- "AFC_NoGenericVMResources": "No machine exists under resource group: '{0}' for copy.",
- "AFC_FilteringNoVMResources": "No machine exists under resource group: '{0}' with the following {1} '{2}'.",
- "AFC_CopyStarted": "Copy started for machine: '{0}'",
- "AFC_CopyCompleted": "Copy status for machine '{0}' : '{1}'",
- "AFC_WinRMHelpMessage": "To fix WinRM service connection related issues, select the 'Enable Copy Prerequisites' option in the task. If set already, and the target Virtual Machines are backed by a Load balancer, ensure Inbound NAT rules are configured for target port (5986). Applicable only for ARM VMs.",
- "AFC_CopyFailed": "Copy failed on machine '{0}'. Refer logs for more details.",
- "AFC_ParallelCopyFailed": "Copy to one or more machines failed. Refer logs for more details.",
- "AFC_CopySuccessful": "Copied files from source path: '{0}' to target azure VMs in resource group: '{1}' successfully",
- "AFC_SetCustomScriptExtensionFailed": "Setting the custom script extension '{0}' for virtual machine '{1}' failed with error : {2}",
- "AFC_AddNetworkSecurityRuleFailed": "Failed to add the network security rule: {0}",
- "AFC_UnableToSetCustomScriptExtension": "Unable to set the custom script extension '{0}' for virtual machine '{1}': {2}",
- "AFC_CopyPrereqsFailed": "Failed to enable copy prerequisites. {0}",
- "AFC_BlobStorageNotFound": "Storage account: {0} not found. Please specify existing storage account",
- "AFC_RootContainerAndDirectory": "'/S' option is not valid for $root containers.",
- "AFC_RedirectResponseInvalidStatusCode": "The HTTP response code: '{0}' is not a valid redirect status code",
- "AFC_RedirectResponseLocationHeaderIsNull": "Redirect response location header is null.",
- "AFC_AzCopyBlobUploadNonZeroExitCode": "AzCopy.exe exited with non-zero exit code while uploading files to blob storage.",
- "AFC_PreexecutionJob_UnableToGetStorageKey": "Unable to fetch storage account key. Error: '{0}'",
- "AFC_UninstallWinRMCustomScriptExtension": "Uninstall WinRM custom script manually and retry deployment.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
- "UnsupportedAuthScheme": "Unsupported authentication scheme '{0}' for endpoint.",
- "ServicePrincipalError": "There was an error with the service principal used for the deployment.",
- "AzModuleNotFound": "Could not find the modules: 'Az.Accounts'. If the module was recently installed, retry after restarting the Azure Pipelines task agent."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFileCopyV6/task.loc.json b/Tasks/AzureFileCopyV6/task.loc.json
index a608f23e3aad..33e5c1551efe 100644
--- a/Tasks/AzureFileCopyV6/task.loc.json
+++ b/Tasks/AzureFileCopyV6/task.loc.json
@@ -13,8 +13,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 6,
- "Minor": 248,
- "Patch": 2
+ "Minor": 250,
+ "Patch": 0
},
"demands": [
"azureps"
diff --git a/Tasks/AzureFunctionAppV1/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/AzureFunctionAppV1/Strings/resources.resjson/ja-JP/resources.resjson
index 0cc951a5bc80..0092f1e3a008 100644
--- a/Tasks/AzureFunctionAppV1/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/AzureFunctionAppV1/Strings/resources.resjson/ja-JP/resources.resjson
@@ -19,7 +19,7 @@
"loc.input.label.package": "パッケージまたはフォルダー",
"loc.input.help.package": "MSBuild で生成されたアプリ サービスのコンテンツが入ったパッケージまたはフォルダー、あるいは圧縮された zip または war ファイルへのファイル パス。 変数 ([ビルド](https://docs.microsoft.com/vsts/pipelines/build/variables) |[リリース](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables))、ワイルドカードを使用できます。 たとえば、$(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip または $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war。",
"loc.input.label.runtimeStack": "ランタイム スタック",
- "loc.input.help.runtimeStack": "サポートされているランタイム バージョンについては、[こちらのドキュメント] (https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) をご覧ください。`DOCKER|microsoft/azure-functions-*` などの前の値は非推奨であるため、ドロップダウンから新しい値をお使いください。",
+ "loc.input.help.runtimeStack": "Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown.",
"loc.input.label.startUpCommand": "スタートアップ コマンド ",
"loc.input.help.startUpCommand": "スタートアップ コマンドを入力してください。例: dotnet exec filename.dll dotnet filename.dll",
"loc.input.label.customWebConfig": "Python、Node.js、Go、Java アプリ向けの web.config パラメーターを生成する",
diff --git a/Tasks/AzureFunctionAppV1/task.json b/Tasks/AzureFunctionAppV1/task.json
index cdfe9fb3d0e5..8a4a97f64580 100644
--- a/Tasks/AzureFunctionAppV1/task.json
+++ b/Tasks/AzureFunctionAppV1/task.json
@@ -1,402 +1,402 @@
{
- "id": "501DD25D-1785-43E4-B4E5-A5C78CCC0573",
- "name": "AzureFunctionApp",
- "friendlyName": "Azure Functions",
- "description": "Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications",
- "helpUrl": "https://aka.ms/azurefunctiontroubleshooting",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefunctiondeployreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 247,
- "Patch": 0
- },
- "minimumAgentVersion": "2.104.1",
- "groups": [
- {
- "name": "AdditionalDeploymentOptions",
- "displayName": "Additional Deployment Options",
- "isExpanded": false,
- "visibleRule": "appType != functionAppLinux && appType != \"\" && package NotEndsWith .war && Package NotEndsWith .jar"
+ "id": "501DD25D-1785-43E4-B4E5-A5C78CCC0573",
+ "name": "AzureFunctionApp",
+ "friendlyName": "Azure Functions",
+ "description": "Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications",
+ "helpUrl": "https://aka.ms/azurefunctiontroubleshooting",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefunctiondeployreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "ApplicationAndConfigurationSettings",
- "displayName": "Application and Configuration Settings",
- "isExpanded": false
- }
- ],
- "inputs": [
- {
- "name": "azureSubscription",
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment."
- },
- {
- "name": "appType",
- "type": "pickList",
- "label": "App type",
- "defaultValue": "",
- "required": true,
- "options": {
- "functionApp": "Function App on Windows",
- "functionAppLinux": "Function App on Linux"
- }
- },
- {
- "name": "appName",
- "type": "pickList",
- "label": "Azure Functions App name",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select the name of an existing Azure Functions App. The Function Apps listed will be based on the selected app type."
- },
- {
- "name": "deployToSlotOrASE",
- "type": "boolean",
- "label": "Deploy to Slot or App Service Environment",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Select the option to deploy to an existing deployment slot or Azure App Service Environment. For both the targets, the task needs Resource group name. In case the deployment target is a slot, by default the deployment is done to the production slot. Any other existing slot name can also be provided. In case the deployment target is an Azure App Service environment, leave the slot name as ‘production’ and just specify the Resource group name.",
- "visibleRule": "appType != \"\""
- },
- {
- "name": "resourceGroupName",
- "type": "pickList",
- "label": "Resource group",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "The Resource group name is required when the deployment target is either a deployment slot or an App Service Environment. Enter or Select the Azure Resource group that contains the Azure App Service specified above.",
- "visibleRule": "deployToSlotOrASE = true"
- },
- {
- "name": "slotName",
- "type": "pickList",
- "label": "Slot",
- "defaultValue": "production",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.",
- "visibleRule": "deployToSlotOrASE = true"
- },
- {
- "name": "package",
- "type": "filePath",
- "label": "Package or folder",
- "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
- "required": true,
- "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
- },
- {
- "name": "runtimeStack",
- "type": "pickList",
- "label": "Runtime stack",
- "defaultValue": "",
- "required": false,
- "properties": {
- "EditableOptions": "True"
- },
- "options": {
- "DOTNET|6.0": "DOTNET|6.0",
- "DOTNET-ISOLATED|6.0": "DOTNET-ISOLATED|6.0",
- "DOTNET-ISOLATED|7.0": "DOTNET-ISOLATED|7.0",
- "DOTNET-ISOLATED|8.0": "DOTNET-ISOLATED|8.0",
- "JAVA|8": "JAVA|8",
- "JAVA|11": "JAVA|11",
- "JAVA|17": "JAVA|17",
- "JAVA|21": "JAVA|21",
- "NODE|14": "NODE|14",
- "NODE|16": "NODE|16",
- "NODE|18": "NODE|18",
- "NODE|20": "NODE|20",
- "PYTHON|3.8": "PYTHON|3.8",
- "PYTHON|3.9": "PYTHON|3.9",
- "PYTHON|3.10": "PYTHON|3.10",
- "PYTHON|3.11": "PYTHON|3.11"
- },
- "visibleRule": "appType = functionAppLinux",
- "helpMarkDown": "Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown."
- },
- {
- "name": "startUpCommand",
- "type": "string",
- "label": "Startup command ",
- "defaultValue": "",
- "required": false,
- "visibleRule": "appType = functionAppLinux",
- "helpMarkDown": "Enter the start up command. For ex. dotnet exec filename.dll dotnet filename.dll"
- },
- {
- "name": "customWebConfig",
- "type": "multiLine",
- "label": "Generate web.config parameters for Python, Node.js, Go and Java apps",
- "required": false,
- "defaultValue": "",
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "A standard Web.config will be generated and deployed to Azure App Service if the application does not have one. The values in web.config can be edited and vary based on the application framework. For example for node.js application, web.config will have startup file and iis_node module values. This edit feature is only for the generated web.config. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469).",
- "properties": {
- "editorExtension": "ms.vss-services-azure.webconfig-parameters-grid"
- },
- "visibleRule": "appType != functionAppLinux && package NotEndsWith .war"
- },
- {
- "name": "appSettings",
- "type": "multiLine",
- "label": "App settings",
- "defaultValue": "",
- "required": false,
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes. Example : -Port 5000 -RequestTimeout 5000 -WEBSITE_TIME_ZONE \"Eastern Standard Time\"",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "configurationStrings",
- "type": "multiLine",
- "label": "Configuration settings",
- "defaultValue": "",
- "required": false,
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "Edit web app configuration settings following the syntax -key value. Value containing spaces should be enclosed in double quotes. Example : -phpVersion 5.6 -linuxFxVersion: node|6.11",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "deploymentMethod",
- "type": "pickList",
- "label": "Deployment method",
- "defaultValue": "auto",
- "required": true,
- "groupName": "AdditionalDeploymentOptions",
- "options": {
- "auto": "Auto-detect",
- "zipDeploy": "Zip Deploy",
- "runFromPackage": "Zip Deploy with Run From Package"
- },
- "helpMarkDown": "Choose the deployment method for the app."
- }
- ],
- "outputVariables": [
- {
- "name": "AppServiceApplicationUrl",
- "description": "Application URL of the selected App Service."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "appName",
- "endpointId": "$(azureSubscription)",
- "dataSourceName": "AzureFunctionAppNamesByAppType",
- "parameters": {
- "WebAppKind": "$(appType)"
- }
- },
- {
- "target": "resourceGroupName",
- "endpointId": "$(azureSubscription)",
- "dataSourceName": "AzureRMWebAppResourceGroup",
- "parameters": {
- "WebAppName": "$(appName)"
- }
- },
- {
- "target": "slotName",
- "endpointId": "$(azureSubscription)",
- "dataSourceName": "AzureRMWebAppSlotsId",
- "parameters": {
- "WebAppName": "$(appName)",
- "ResourceGroupName": "$(resourceGroupName)"
- },
- "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}"
- }
- ],
- "instanceNameFormat": "Azure Function App Deploy: $(appName)",
- "execution": {
- "Node16": {
- "target": "azurermwebappdeployment.js",
- "argumentFormat": ""
+ "minimumAgentVersion": "2.104.1",
+ "groups": [
+ {
+ "name": "AdditionalDeploymentOptions",
+ "displayName": "Additional Deployment Options",
+ "isExpanded": false,
+ "visibleRule": "appType != functionAppLinux && appType != \"\" && package NotEndsWith .war && Package NotEndsWith .jar"
+ },
+ {
+ "name": "ApplicationAndConfigurationSettings",
+ "displayName": "Application and Configuration Settings",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "azureSubscription",
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment."
+ },
+ {
+ "name": "appType",
+ "type": "pickList",
+ "label": "App type",
+ "defaultValue": "",
+ "required": true,
+ "options": {
+ "functionApp": "Function App on Windows",
+ "functionAppLinux": "Function App on Linux"
+ }
+ },
+ {
+ "name": "appName",
+ "type": "pickList",
+ "label": "Azure Functions App name",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select the name of an existing Azure Functions App. The Function Apps listed will be based on the selected app type."
+ },
+ {
+ "name": "deployToSlotOrASE",
+ "type": "boolean",
+ "label": "Deploy to Slot or App Service Environment",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Select the option to deploy to an existing deployment slot or Azure App Service Environment. For both the targets, the task needs Resource group name. In case the deployment target is a slot, by default the deployment is done to the production slot. Any other existing slot name can also be provided. In case the deployment target is an Azure App Service environment, leave the slot name as ‘production’ and just specify the Resource group name.",
+ "visibleRule": "appType != \"\""
+ },
+ {
+ "name": "resourceGroupName",
+ "type": "pickList",
+ "label": "Resource group",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "The Resource group name is required when the deployment target is either a deployment slot or an App Service Environment. Enter or Select the Azure Resource group that contains the Azure App Service specified above.",
+ "visibleRule": "deployToSlotOrASE = true"
+ },
+ {
+ "name": "slotName",
+ "type": "pickList",
+ "label": "Slot",
+ "defaultValue": "production",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.",
+ "visibleRule": "deployToSlotOrASE = true"
+ },
+ {
+ "name": "package",
+ "type": "filePath",
+ "label": "Package or folder",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
+ "required": true,
+ "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
+ },
+ {
+ "name": "runtimeStack",
+ "type": "pickList",
+ "label": "Runtime stack",
+ "defaultValue": "",
+ "required": false,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "options": {
+ "DOTNET|6.0": "DOTNET|6.0",
+ "DOTNET-ISOLATED|6.0": "DOTNET-ISOLATED|6.0",
+ "DOTNET-ISOLATED|7.0": "DOTNET-ISOLATED|7.0",
+ "DOTNET-ISOLATED|8.0": "DOTNET-ISOLATED|8.0",
+ "JAVA|8": "JAVA|8",
+ "JAVA|11": "JAVA|11",
+ "JAVA|17": "JAVA|17",
+ "JAVA|21": "JAVA|21",
+ "NODE|14": "NODE|14",
+ "NODE|16": "NODE|16",
+ "NODE|18": "NODE|18",
+ "NODE|20": "NODE|20",
+ "PYTHON|3.8": "PYTHON|3.8",
+ "PYTHON|3.9": "PYTHON|3.9",
+ "PYTHON|3.10": "PYTHON|3.10",
+ "PYTHON|3.11": "PYTHON|3.11"
+ },
+ "visibleRule": "appType = functionAppLinux",
+ "helpMarkDown": "Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown."
+ },
+ {
+ "name": "startUpCommand",
+ "type": "string",
+ "label": "Startup command ",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "appType = functionAppLinux",
+ "helpMarkDown": "Enter the start up command. For ex. dotnet exec filename.dll dotnet filename.dll"
+ },
+ {
+ "name": "customWebConfig",
+ "type": "multiLine",
+ "label": "Generate web.config parameters for Python, Node.js, Go and Java apps",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "A standard Web.config will be generated and deployed to Azure App Service if the application does not have one. The values in web.config can be edited and vary based on the application framework. For example for node.js application, web.config will have startup file and iis_node module values. This edit feature is only for the generated web.config. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469).",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.webconfig-parameters-grid"
+ },
+ "visibleRule": "appType != functionAppLinux && package NotEndsWith .war"
+ },
+ {
+ "name": "appSettings",
+ "type": "multiLine",
+ "label": "App settings",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes. Example : -Port 5000 -RequestTimeout 5000 -WEBSITE_TIME_ZONE \"Eastern Standard Time\"",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "configurationStrings",
+ "type": "multiLine",
+ "label": "Configuration settings",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "Edit web app configuration settings following the syntax -key value. Value containing spaces should be enclosed in double quotes. Example : -phpVersion 5.6 -linuxFxVersion: node|6.11",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "deploymentMethod",
+ "type": "pickList",
+ "label": "Deployment method",
+ "defaultValue": "auto",
+ "required": true,
+ "groupName": "AdditionalDeploymentOptions",
+ "options": {
+ "auto": "Auto-detect",
+ "zipDeploy": "Zip Deploy",
+ "runFromPackage": "Zip Deploy with Run From Package"
+ },
+ "helpMarkDown": "Choose the deployment method for the app."
+ }
+ ],
+ "outputVariables": [
+ {
+ "name": "AppServiceApplicationUrl",
+ "description": "Application URL of the selected App Service."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "appName",
+ "endpointId": "$(azureSubscription)",
+ "dataSourceName": "AzureFunctionAppNamesByAppType",
+ "parameters": {
+ "WebAppKind": "$(appType)"
+ }
+ },
+ {
+ "target": "resourceGroupName",
+ "endpointId": "$(azureSubscription)",
+ "dataSourceName": "AzureRMWebAppResourceGroup",
+ "parameters": {
+ "WebAppName": "$(appName)"
+ }
+ },
+ {
+ "target": "slotName",
+ "endpointId": "$(azureSubscription)",
+ "dataSourceName": "AzureRMWebAppSlotsId",
+ "parameters": {
+ "WebAppName": "$(appName)",
+ "ResourceGroupName": "$(resourceGroupName)"
+ },
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}"
+ }
+ ],
+ "instanceNameFormat": "Azure Function App Deploy: $(appName)",
+ "execution": {
+ "Node16": {
+ "target": "azurermwebappdeployment.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "azurermwebappdeployment.js"
+ }
},
- "Node10": {
- "target": "azurermwebappdeployment.js"
+ "messages": {
+ "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
+ "SetParamFilenotfound0": "Set parameters file not found: %s",
+ "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
+ "GotconnectiondetailsforazureRMWebApp0": "Got service connection details for Azure App Service:'%s'",
+ "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists",
+ "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve service connection details for Azure App Service : %s. Status Code: %s (%s)",
+ "UnabletoretrieveResourceID": "Unable to retrieve service connection details for Azure Resource:'%s'. Status Code: %s",
+ "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s",
+ "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s",
+ "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website",
+ "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'",
+ "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']",
+ "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'",
+ "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved",
+ "PackageDeploymentSuccess": "The web package has been deployed to App Service. Please note that the package mount or extraction errors will be logged in the deployment logs in the location above.",
+ "PackageDeploymentFailed": "Failed to deploy web package to App Service.",
+ "Runningcommand": "Running command: %s",
+ "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)",
+ "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s",
+ "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s",
+ "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s",
+ "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.",
+ "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above",
+ "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)",
+ "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.",
+ "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.",
+ "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.",
+ "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.",
+ "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
+ "Configfiledoesntexists": "Configuration file %s doesn't exist.",
+ "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s",
+ "AppOfflineModeenabled": "App offline mode enabled.",
+ "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)",
+ "AppOflineModedisabled": "App offline mode disabled.",
+ "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)",
+ "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
+ "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
+ "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent",
+ "Publishusingzipdeploynotsupportedformsbuildpackage": "Publish using zip deploy option is not supported for msBuild package type.",
+ "Publishusingzipdeploynotsupportedforvirtualapplication": "Publish using zip deploy option is not supported for virtual application.",
+ "Publishusingzipdeploydoesnotsupportwarfile": "Publish using zip deploy or RunFromPackage options do not support war file deployment.",
+ "Publishusingrunfromzipwithpostdeploymentscript": "Publish using RunFromPackage might not support post deployment script if it makes changes to wwwroot, since the folder is ReadOnly.",
+ "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.",
+ "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.",
+ "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.",
+ "ShortFileBufferError": "File buffer is too short to detect encoding type : %s",
+ "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s",
+ "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details",
+ "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s",
+ "Physicalpathalreadyexists": "Physical path '%s' already exists",
+ "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s",
+ "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s",
+ "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s",
+ "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s",
+ "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
+ "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
+ "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
+ "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s",
+ "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s",
+ "ExecuteScriptOnKudu": "Executing given script on Kudu service.",
+ "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s",
+ "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s",
+ "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.",
+ "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s",
+ "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s",
+ "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s",
+ "ScriptFileNotFound": "Script file '%s' not found.",
+ "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux",
+ "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.",
+ "stdoutFromScript": "Standard output from script: ",
+ "stderrFromScript": "Standard error from script: ",
+ "WebConfigAlreadyExists": "web.config file already exists. Not generating.",
+ "SuccessfullyGeneratedWebConfig": "Successfully generated web.config file",
+ "FailedToGenerateWebConfig": "Failed to generate web.config. %s",
+ "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)",
+ "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s",
+ "ScriptStatusTimeout": "Unable to fetch script status due to timeout.",
+ "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.",
+ "InvalidPollOption": "Invalid polling option provided: %s.",
+ "MissingAppTypeWebConfigParameters": "Attribute '-appType' is missing in the Web.config parameters. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask', 'node' and 'Go'. For example, '-appType python_Bottle' (sans-quotes) in case of Python Bottle framework..",
+ "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'",
+ "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
+ "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ",
+ "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.",
+ "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.",
+ "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'",
+ "UnableToFetchAuthorityURL": "Unable to fetch authority URL.",
+ "UnableToFetchActiveDirectory": "Unable to fetch Active Directory resource ID.",
+ "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.",
+ "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.",
+ "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.",
+ "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.",
+ "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s",
+ "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s",
+ "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentials.[Status Code: '%s']",
+ "UnableToReadResponseBody": "Unable to read response body. Error: %s",
+ "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'",
+ "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'",
+ "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s",
+ "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s",
+ "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.",
+ "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s",
+ "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destination' option or Stop continuous Jobs before deployment.",
+ "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s",
+ "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s",
+ "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s",
+ "FailedToDeleteFolder": "Failed to delete folder '%s' from Kudu. Error: %s",
+ "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s",
+ "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s",
+ "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s",
+ "RetryToDeploy": "Retrying to deploy the package.",
+ "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s",
+ "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s",
+ "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s",
+ "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s",
+ "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s",
+ "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s",
+ "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s",
+ "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s",
+ "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s",
+ "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s",
+ "UpdatingAppServiceConfigurationSettings": "Trying to update App Service Configuration settings. Data: %s",
+ "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.",
+ "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.",
+ "UpdatedOnlyAppServiceApplicationSettings": "Updated App Service Application settings.",
+ "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
+ "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
+ "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
+ "WarPackageDeploymentInitiated": "Package deployment using WAR Deploy initiated.",
+ "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
+ "GoExeNameNotPresent": "Go exe name is not present",
+ "WarDeploymentRetry": "Retrying war file deployment as it did not expand successfully earlier.",
+ "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.",
+ "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
+ "XmlParsingFailed": "Unable to parse publishProfileXML file, Error: %s",
+ "PropertyDoesntExistPublishProfile": "[%s] Property does not exist in publish profile",
+ "InvalidConnectionType": "Invalid service connection type",
+ "InvalidImageSourceType": "Invalid Image source Type",
+ "InvalidPublishProfile": "Publish profile file is invalid.",
+ "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline",
+ "ZipDeployLogsURL": "Zip Deploy logs can be viewed at %s",
+ "DeployLogsURL": "Deploy logs can be viewed at %s",
+ "AppServiceApplicationURL": "App Service Application URL: %s",
+ "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.",
+ "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s",
+ "JarPathNotPresent": "Java jar path is not present",
+ "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s",
+ "InvalidDockerImageName": "Invalid Docker hub image name provided.",
+ "MsBuildPackageNotSupported": "Deployment of msBuild generated package is not supported. Change package format or use Azure App Service Deploy task.",
+ "FailedToGetStorageAccountDetails": "Unable to find the storage account associated with the function app.",
+ "FailedToSyncTriggers": "Failed to sync triggers for function app '%s'. Error: %s",
+ "SyncingFunctionTriggers": "Syncing triggers for function app",
+ "SyncFunctionTriggersSuccess": "Sync triggers for function app completed successfully",
+ "UpdatedRunFromPackageSettings": "Updated WEBSITE_RUN_FROM_PACKAGE Application setting to %s"
}
- },
- "messages": {
- "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
- "SetParamFilenotfound0": "Set parameters file not found: %s",
- "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
- "GotconnectiondetailsforazureRMWebApp0": "Got service connection details for Azure App Service:'%s'",
- "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists",
- "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve service connection details for Azure App Service : %s. Status Code: %s (%s)",
- "UnabletoretrieveResourceID": "Unable to retrieve service connection details for Azure Resource:'%s'. Status Code: %s",
- "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s",
- "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s",
- "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website",
- "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'",
- "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']",
- "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'",
- "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved",
- "PackageDeploymentSuccess": "The web package has been deployed to App Service. Please note that the package mount or extraction errors will be logged in the deployment logs in the location above.",
- "PackageDeploymentFailed": "Failed to deploy web package to App Service.",
- "Runningcommand": "Running command: %s",
- "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)",
- "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s",
- "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s",
- "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s",
- "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.",
- "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above",
- "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)",
- "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.",
- "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.",
- "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.",
- "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.",
- "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
- "Configfiledoesntexists": "Configuration file %s doesn't exist.",
- "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s",
- "AppOfflineModeenabled": "App offline mode enabled.",
- "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)",
- "AppOflineModedisabled": "App offline mode disabled.",
- "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)",
- "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
- "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
- "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent",
- "Publishusingzipdeploynotsupportedformsbuildpackage": "Publish using zip deploy option is not supported for msBuild package type.",
- "Publishusingzipdeploynotsupportedforvirtualapplication": "Publish using zip deploy option is not supported for virtual application.",
- "Publishusingzipdeploydoesnotsupportwarfile": "Publish using zip deploy or RunFromPackage options do not support war file deployment.",
- "Publishusingrunfromzipwithpostdeploymentscript": "Publish using RunFromPackage might not support post deployment script if it makes changes to wwwroot, since the folder is ReadOnly.",
- "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.",
- "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.",
- "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.",
- "ShortFileBufferError": "File buffer is too short to detect encoding type : %s",
- "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s",
- "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details",
- "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s",
- "Physicalpathalreadyexists": "Physical path '%s' already exists",
- "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s",
- "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s",
- "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s",
- "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s",
- "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
- "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
- "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
- "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s",
- "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s",
- "ExecuteScriptOnKudu": "Executing given script on Kudu service.",
- "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s",
- "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s",
- "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.",
- "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s",
- "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s",
- "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s",
- "ScriptFileNotFound": "Script file '%s' not found.",
- "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux",
- "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.",
- "stdoutFromScript": "Standard output from script: ",
- "stderrFromScript": "Standard error from script: ",
- "WebConfigAlreadyExists": "web.config file already exists. Not generating.",
- "SuccessfullyGeneratedWebConfig": "Successfully generated web.config file",
- "FailedToGenerateWebConfig": "Failed to generate web.config. %s",
- "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)",
- "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s",
- "ScriptStatusTimeout": "Unable to fetch script status due to timeout.",
- "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.",
- "InvalidPollOption": "Invalid polling option provided: %s.",
- "MissingAppTypeWebConfigParameters": "Attribute '-appType' is missing in the Web.config parameters. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask', 'node' and 'Go'. For example, '-appType python_Bottle' (sans-quotes) in case of Python Bottle framework..",
- "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'",
- "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
- "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ",
- "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.",
- "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.",
- "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'",
- "UnableToFetchAuthorityURL": "Unable to fetch authority URL.",
- "UnableToFetchActiveDirectory": "Unable to fetch Active Directory resource ID.",
- "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.",
- "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.",
- "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.",
- "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.",
- "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s",
- "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s",
- "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentials.[Status Code: '%s']",
- "UnableToReadResponseBody": "Unable to read response body. Error: %s",
- "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'",
- "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'",
- "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s",
- "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s",
- "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.",
- "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s",
- "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destination' option or Stop continuous Jobs before deployment.",
- "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s",
- "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s",
- "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s",
- "FailedToDeleteFolder": "Failed to delete folder '%s' from Kudu. Error: %s",
- "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s",
- "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s",
- "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s",
- "RetryToDeploy": "Retrying to deploy the package.",
- "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s",
- "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s",
- "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s",
- "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s",
- "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s",
- "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s",
- "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s",
- "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s",
- "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s",
- "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s",
- "UpdatingAppServiceConfigurationSettings": "Trying to update App Service Configuration settings. Data: %s",
- "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.",
- "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.",
- "UpdatedOnlyAppServiceApplicationSettings": "Updated App Service Application settings.",
- "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
- "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
- "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
- "WarPackageDeploymentInitiated": "Package deployment using WAR Deploy initiated.",
- "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
- "GoExeNameNotPresent": "Go exe name is not present",
- "WarDeploymentRetry": "Retrying war file deployment as it did not expand successfully earlier.",
- "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.",
- "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
- "XmlParsingFailed": "Unable to parse publishProfileXML file, Error: %s",
- "PropertyDoesntExistPublishProfile": "[%s] Property does not exist in publish profile",
- "InvalidConnectionType": "Invalid service connection type",
- "InvalidImageSourceType": "Invalid Image source Type",
- "InvalidPublishProfile": "Publish profile file is invalid.",
- "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline",
- "ZipDeployLogsURL": "Zip Deploy logs can be viewed at %s",
- "DeployLogsURL": "Deploy logs can be viewed at %s",
- "AppServiceApplicationURL": "App Service Application URL: %s",
- "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.",
- "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s",
- "JarPathNotPresent": "Java jar path is not present",
- "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s",
- "InvalidDockerImageName": "Invalid Docker hub image name provided.",
- "MsBuildPackageNotSupported": "Deployment of msBuild generated package is not supported. Change package format or use Azure App Service Deploy task.",
- "FailedToGetStorageAccountDetails": "Unable to find the storage account associated with the function app.",
- "FailedToSyncTriggers": "Failed to sync triggers for function app '%s'. Error: %s",
- "SyncingFunctionTriggers": "Syncing triggers for function app",
- "SyncFunctionTriggersSuccess": "Sync triggers for function app completed successfully",
- "UpdatedRunFromPackageSettings": "Updated WEBSITE_RUN_FROM_PACKAGE Application setting to %s"
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFunctionAppV1/task.loc.json b/Tasks/AzureFunctionAppV1/task.loc.json
index 5e4e92d6b3fe..8d82125808bf 100644
--- a/Tasks/AzureFunctionAppV1/task.loc.json
+++ b/Tasks/AzureFunctionAppV1/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"minimumAgentVersion": "2.104.1",
diff --git a/Tasks/AzureFunctionOnKubernetesV1/task.json b/Tasks/AzureFunctionOnKubernetesV1/task.json
index e6a39b1c6d25..ab250e0fb045 100644
--- a/Tasks/AzureFunctionOnKubernetesV1/task.json
+++ b/Tasks/AzureFunctionOnKubernetesV1/task.json
@@ -1,198 +1,198 @@
{
- "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6",
- "name": "AzureFunctionOnKubernetes",
- "friendlyName": "Azure Function on Kubernetes",
- "description": "Deploy Azure function to Kubernetes cluster.",
- "helpUrl": "https://aka.ms/func-k8s",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)",
- "category": "Deploy",
- "preview": true,
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 247,
- "Patch": 2
- },
- "demands": [],
- "groups": [
- {
- "name": "serviceConnections",
- "displayName": "Service Connections",
- "isExpanded": true
+ "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6",
+ "name": "AzureFunctionOnKubernetes",
+ "friendlyName": "Azure Function on Kubernetes",
+ "description": "Deploy Azure function to Kubernetes cluster.",
+ "helpUrl": "https://aka.ms/func-k8s",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)",
+ "category": "Deploy",
+ "preview": true,
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "commands",
- "displayName": "Commands",
- "isExpanded": true
- }
- ],
- "inputs": [
- {
- "name": "connectionType",
- "type": "pickList",
- "label": "Service connection type",
- "defaultValue": "Kubernetes Service Connection",
- "required": true,
- "options": {
- "Azure Resource Manager": "Azure Resource Manager",
- "Kubernetes Service Connection": "Kubernetes Service Connection"
- },
- "groupName": "serviceConnections",
- "helpMarkDown": "Select a Kubernetes service connection type."
- },
- {
- "name": "dockerRegistryServiceConnection",
- "type": "connectedService:dockerregistry",
- "label": "Docker registry service connection",
- "required": true,
- "groupName": "serviceConnections",
- "helpMarkDown": "Select a Docker registry service connection."
- },
- {
- "name": "kubernetesServiceEndpoint",
- "aliases": [
- "kubernetesServiceConnection"
- ],
- "type": "connectedService:kubernetes",
- "label": "Kubernetes service connection",
- "visibleRule": "connectionType = Kubernetes Service Connection",
- "required": true,
- "groupName": "serviceConnections",
- "helpMarkDown": "Select a Kubernetes service connection."
- },
- {
- "name": "azureSubscriptionEndpoint",
- "aliases": [
- "azureSubscriptionConnection"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "helpMarkDown": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.",
- "visibleRule": "connectionType = Azure Resource Manager",
- "defaultValue": "",
- "groupName": "serviceConnections",
- "required": true
- },
- {
- "name": "azureResourceGroup",
- "label": "Resource group",
- "type": "pickList",
- "helpMarkDown": "Select an Azure resource group.",
- "visibleRule": "connectionType = Azure Resource Manager",
- "defaultValue": "",
- "required": true,
- "groupName": "serviceConnections",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "kubernetesCluster",
- "label": "Kubernetes cluster",
- "type": "pickList",
- "helpMarkDown": "Select an Azure managed cluster.",
- "visibleRule": "connectionType = Azure Resource Manager",
- "defaultValue": "",
- "required": true,
- "groupName": "serviceConnections",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "namespace",
- "type": "string",
- "label": "Kubernetes namespace",
- "groupName": "commands",
- "helpMarkDown": "Kubernetes namespace"
- },
- {
- "name": "secretName",
- "type": "string",
- "label": "Secret Name",
- "groupName": "commands",
- "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )"
- },
- {
- "name": "dockerHubNamespace",
- "type": "string",
- "label": "Docker Hub namespace",
- "groupName": "commands",
- "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository."
- },
- {
- "name": "appName",
- "type": "string",
- "required": true,
- "label": "Application Name",
- "groupName": "commands",
- "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names."
- },
- {
- "name": "functionRootDirectory",
- "type": "filePath",
- "label": "Function root directory",
- "required": false,
- "groupName": "commands",
- "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory."
- },
- {
- "name": "waitForStability",
- "type": "boolean",
- "label": "Wait for stability",
- "groupName": "commands",
- "defaultValue": "true",
- "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state."
- },
- {
- "name": "arguments",
- "type": "string",
- "label": "Arguments",
- "groupName": "commands",
- "helpMarkDown": "Pass arguments to command. Ex: --no-docker --service-type NodePort"
- }
- ],
- "dataSourceBindings": [
- {
- "target": "kubernetesCluster",
- "endpointId": "$(azureSubscriptionEndpoint)",
- "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31",
- "resultSelector": "jsonpath:$.value[*]",
- "resultTemplate": "{{{name}}}"
- },
- {
- "target": "azureResourceGroup",
- "endpointId": "$(azureSubscriptionEndpoint)",
- "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31",
- "resultSelector": "jsonpath:$.value[*]",
- "resultTemplate": "{{{ #extractResource id resourcegroups}}}"
- }
- ],
- "instanceNameFormat": "Func on K8s - deploy",
- "execution": {
- "Node16": {
- "target": "src//run.js",
- "argumentFormat": ""
+ "demands": [],
+ "groups": [
+ {
+ "name": "serviceConnections",
+ "displayName": "Service Connections",
+ "isExpanded": true
+ },
+ {
+ "name": "commands",
+ "displayName": "Commands",
+ "isExpanded": true
+ }
+ ],
+ "inputs": [
+ {
+ "name": "connectionType",
+ "type": "pickList",
+ "label": "Service connection type",
+ "defaultValue": "Kubernetes Service Connection",
+ "required": true,
+ "options": {
+ "Azure Resource Manager": "Azure Resource Manager",
+ "Kubernetes Service Connection": "Kubernetes Service Connection"
+ },
+ "groupName": "serviceConnections",
+ "helpMarkDown": "Select a Kubernetes service connection type."
+ },
+ {
+ "name": "dockerRegistryServiceConnection",
+ "type": "connectedService:dockerregistry",
+ "label": "Docker registry service connection",
+ "required": true,
+ "groupName": "serviceConnections",
+ "helpMarkDown": "Select a Docker registry service connection."
+ },
+ {
+ "name": "kubernetesServiceEndpoint",
+ "aliases": [
+ "kubernetesServiceConnection"
+ ],
+ "type": "connectedService:kubernetes",
+ "label": "Kubernetes service connection",
+ "visibleRule": "connectionType = Kubernetes Service Connection",
+ "required": true,
+ "groupName": "serviceConnections",
+ "helpMarkDown": "Select a Kubernetes service connection."
+ },
+ {
+ "name": "azureSubscriptionEndpoint",
+ "aliases": [
+ "azureSubscriptionConnection"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "helpMarkDown": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.",
+ "visibleRule": "connectionType = Azure Resource Manager",
+ "defaultValue": "",
+ "groupName": "serviceConnections",
+ "required": true
+ },
+ {
+ "name": "azureResourceGroup",
+ "label": "Resource group",
+ "type": "pickList",
+ "helpMarkDown": "Select an Azure resource group.",
+ "visibleRule": "connectionType = Azure Resource Manager",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "serviceConnections",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "kubernetesCluster",
+ "label": "Kubernetes cluster",
+ "type": "pickList",
+ "helpMarkDown": "Select an Azure managed cluster.",
+ "visibleRule": "connectionType = Azure Resource Manager",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "serviceConnections",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "namespace",
+ "type": "string",
+ "label": "Kubernetes namespace",
+ "groupName": "commands",
+ "helpMarkDown": "Kubernetes namespace"
+ },
+ {
+ "name": "secretName",
+ "type": "string",
+ "label": "Secret Name",
+ "groupName": "commands",
+ "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )"
+ },
+ {
+ "name": "dockerHubNamespace",
+ "type": "string",
+ "label": "Docker Hub namespace",
+ "groupName": "commands",
+ "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository."
+ },
+ {
+ "name": "appName",
+ "type": "string",
+ "required": true,
+ "label": "Application Name",
+ "groupName": "commands",
+ "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names."
+ },
+ {
+ "name": "functionRootDirectory",
+ "type": "filePath",
+ "label": "Function root directory",
+ "required": false,
+ "groupName": "commands",
+ "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory."
+ },
+ {
+ "name": "waitForStability",
+ "type": "boolean",
+ "label": "Wait for stability",
+ "groupName": "commands",
+ "defaultValue": "true",
+ "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state."
+ },
+ {
+ "name": "arguments",
+ "type": "string",
+ "label": "Arguments",
+ "groupName": "commands",
+ "helpMarkDown": "Pass arguments to command. Ex: --no-docker --service-type NodePort"
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "kubernetesCluster",
+ "endpointId": "$(azureSubscriptionEndpoint)",
+ "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31",
+ "resultSelector": "jsonpath:$.value[*]",
+ "resultTemplate": "{{{name}}}"
+ },
+ {
+ "target": "azureResourceGroup",
+ "endpointId": "$(azureSubscriptionEndpoint)",
+ "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31",
+ "resultSelector": "jsonpath:$.value[*]",
+ "resultTemplate": "{{{ #extractResource id resourcegroups}}}"
+ }
+ ],
+ "instanceNameFormat": "Func on K8s - deploy",
+ "execution": {
+ "Node16": {
+ "target": "src//run.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "src//run.js"
+ }
},
- "Node10": {
- "target": "src//run.js"
+ "messages": {
+ "AllContainersNotInReadyState": "All the containers are not in a ready state.",
+ "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s",
+ "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s",
+ "FileContentSynced": "Synced the file content to the disk. The content is %s.",
+ "KubectlClientVersion": "Kubectl Client Version",
+ "KubectlServerVersion": "Kubectl Server Version",
+ "KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.",
+ "NoDataWrittenOnFile": "No data was written into the file %s",
+ "ServiceExternalIP": "service %s external IP is %s",
+ "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s",
+ "KubeloginFailed": "Kubelogin authentication failed. Exception: %s"
}
- },
- "messages": {
- "AllContainersNotInReadyState": "All the containers are not in a ready state.",
- "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s",
- "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s",
- "FileContentSynced": "Synced the file content to the disk. The content is %s.",
- "KubectlClientVersion": "Kubectl Client Version",
- "KubectlServerVersion": "Kubectl Server Version",
- "KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.",
- "NoDataWrittenOnFile": "No data was written into the file %s",
- "ServiceExternalIP": "service %s external IP is %s",
- "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s",
- "KubeloginFailed": "Kubelogin authentication failed. Exception: %s"
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureFunctionOnKubernetesV1/task.loc.json b/Tasks/AzureFunctionOnKubernetesV1/task.loc.json
index 17e6d7af0aa7..4bbb8721a70d 100644
--- a/Tasks/AzureFunctionOnKubernetesV1/task.loc.json
+++ b/Tasks/AzureFunctionOnKubernetesV1/task.loc.json
@@ -14,8 +14,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
- "Patch": 2
+ "Minor": 250,
+ "Patch": 0
},
"demands": [],
"groups": [
diff --git a/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/es-ES/resources.resjson
index 459d2f3e48c0..1a3900594eb8 100644
--- a/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/es-ES/resources.resjson
@@ -40,7 +40,7 @@
"loc.input.label.deploymentManifestOutputPath": "Ruta de acceso de salida",
"loc.input.help.deploymentManifestOutputPath": "Ruta de acceso de salida del manifiesto de implementación generado",
"loc.input.label.validateGeneratedDeploymentManifest": "Validar el esquema del manifiesto de implementación generado",
- "loc.input.help.validateGeneratedDeploymentManifest": "Indique que este paso es erróneo si el manifiesto de implementación generado no supera la validación de esquema. Puede buscar \"Azure IoT Edge Deployment\" en el [almacenamiento del esquema JSON] (http://schemastore.org/json/) para buscar el esquema más reciente.",
+ "loc.input.help.validateGeneratedDeploymentManifest": "Fail this step if the generated deployment manifest does not pass schema validation. You can search `Azure IoT Edge deployment` in [JSON Schema Store](http://schemastore.org/json/) to find latest schema.",
"loc.input.label.bypassModules": "Omitir módulos",
"loc.input.help.bypassModules": "Seleccione los módulos que **NO** es necesario compilar o insertar en .template.json, especifique los nombres de módulo y sepárelos con comas.\n Ejemplo: Si tiene dos módulos (**MóduloEjemplo1,MóduloEjemplo2**) en .template.json pero solo quiere compilar o insertar **MóduloEjemplo1**, establezca **MóduloEjemplo2** en la opción para omitir módulos. Déjelo en blanco si quiere compilar todos los módulos de .template.json.",
"loc.messages.BuildingModules": "Compilando imágenes del módulo...",
diff --git a/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/zh-CN/resources.resjson
index 97bfc30b9f38..a96e4cc9d1fe 100644
--- a/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/AzureIoTEdgeV2/Strings/resources.resjson/zh-CN/resources.resjson
@@ -16,13 +16,13 @@
"loc.input.label.deploymentid": "IoT Edge 部署 ID",
"loc.input.help.deploymentid": "输入 **IoT Edge 部署 ID**,如果存在 ID,则将重写此 ID。\n 最多允许 128 个小写字母、数字和以下字符[ -:+%_#*?!(),=@;' ]。\n 查看有关 [Azure IoT Edge 部署](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)的详细信息",
"loc.input.label.priority": "IoT Edge 部署优先级",
- "loc.input.help.priority": "将**优先级**设置为正整数以解决部署冲突: 当作为多个部署的目标时,设备将使用具有最高优先级或(如果两个部署具有相同优先级)最新创建时间的部署。\n 查看有关 [Azure IoT Edge 部署]的详细信息(https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
+ "loc.input.help.priority": "Set the **priority** to a positive integer to resolve deployment conflicts: when targeted by multiple deployments a device will use the one with highest priority or (in case of two deployments with the same priority) latest creation time.\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
"loc.input.label.deviceOption": "选择单个/多个设备",
"loc.input.help.deviceOption": "选择部署到单个或多个(按标记)设备",
"loc.input.label.deviceId": "IoT Edge 设备 ID",
"loc.input.help.deviceId": "输入 IoT Edge **设备 ID**",
"loc.input.label.targetcondition": "IoT Edge 设备目标条件",
- "loc.input.help.targetcondition": "输入要部署的设备的**目标条件**。不要使用双引号。示例: **tags.building=9 and tags.environment='test'**。\n 查看有关 [Azure IoT Edge 部署]的详细信息(https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
+ "loc.input.help.targetcondition": "Input the **target condition** of devices you would like to deploy. Do not use double quote. Example: **tags.building=9 and tags.environment='test'**.\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
"loc.input.label.containerregistrytype": "容器注册表类型",
"loc.input.help.containerregistrytype": "选择**容器注册表类型**。\n **Azure 容器注册表**表示 ACR,**泛型容器注册表**表示包括 Docker Hub 在内的泛型注册表。",
"loc.input.label.dockerRegistryEndpoint": "Docker 注册表连接",
diff --git a/Tasks/AzureIoTEdgeV2/task.json b/Tasks/AzureIoTEdgeV2/task.json
index 3531922a6922..f0693b8ca4b4 100644
--- a/Tasks/AzureIoTEdgeV2/task.json
+++ b/Tasks/AzureIoTEdgeV2/task.json
@@ -1,298 +1,298 @@
{
- "id": "80F3F6A0-82A6-4A22-BA7A-E5B8C541B9B8",
- "name": "AzureIoTEdge",
- "friendlyName": "Azure IoT Edge",
- "description": "Build and deploy an Azure IoT Edge image",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/azure-iot-edge",
- "helpMarkDown": "Visit the [documentation](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-continuous-integration-continuous-deployment) for help.",
- "category": "Build",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 2,
- "Minor": 247,
- "Patch": 0
- },
- "preview": false,
- "showEnvironmentVariables": true,
- "instanceNameFormat": "Azure IoT Edge - $(action)",
- "groups": [
- {
- "name": "advanced_push",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "action = Push module images"
+ "id": "80F3F6A0-82A6-4A22-BA7A-E5B8C541B9B8",
+ "name": "AzureIoTEdge",
+ "friendlyName": "Azure IoT Edge",
+ "description": "Build and deploy an Azure IoT Edge image",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/azure-iot-edge",
+ "helpMarkDown": "Visit the [documentation](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-continuous-integration-continuous-deployment) for help.",
+ "category": "Build",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 2,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "advanced_deploy",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "action = Deploy to IoT Edge devices"
- }
- ],
- "inputs": [
- {
- "name": "action",
- "type": "pickList",
- "label": "Action",
- "defaultValue": "Build module images",
- "required": true,
- "options": {
- "Build module images": "Build module images",
- "Push module images": "Push module images",
- "Generate deployment manifest": "Generate deployment manifest",
- "Deploy to IoT Edge devices": "Deploy to IoT Edge devices"
- },
- "helpMarkDown": "Select an Azure IoT Edge action.\n **Build module images** will only build modules (You can use it to check compilation error).\n **Push module images** will push modules to container registry.\n **Deploy to IoT Edge devices** will deploy the generated deployment file to IoT Hub. (We recommend to put **Deploy** task in release pipeline)."
+ "preview": false,
+ "showEnvironmentVariables": true,
+ "instanceNameFormat": "Azure IoT Edge - $(action)",
+ "groups": [
+ {
+ "name": "advanced_push",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "action = Push module images"
+ },
+ {
+ "name": "advanced_deploy",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "action = Deploy to IoT Edge devices"
+ }
+ ],
+ "inputs": [
+ {
+ "name": "action",
+ "type": "pickList",
+ "label": "Action",
+ "defaultValue": "Build module images",
+ "required": true,
+ "options": {
+ "Build module images": "Build module images",
+ "Push module images": "Push module images",
+ "Generate deployment manifest": "Generate deployment manifest",
+ "Deploy to IoT Edge devices": "Deploy to IoT Edge devices"
+ },
+ "helpMarkDown": "Select an Azure IoT Edge action.\n **Build module images** will only build modules (You can use it to check compilation error).\n **Push module images** will push modules to container registry.\n **Deploy to IoT Edge devices** will deploy the generated deployment file to IoT Hub. (We recommend to put **Deploy** task in release pipeline)."
+ },
+ {
+ "name": "deploymentFilePath",
+ "type": "filePath",
+ "label": "Deployment file",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/config/deployment.json",
+ "required": true,
+ "visibleRule": "action == Deploy to IoT Edge devices",
+ "helpMarkDown": "Select the deployment json file.\n If this task is in **release pipeline**, you need to set the location of deployment file in artifact.(The default value works for most conditions).\n If this task is in **build pipeline**, you need to set it to the path of **Path of output deployment file**."
+ },
+ {
+ "name": "connectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription contains IoT Hub",
+ "required": true,
+ "visibleRule": "action == Deploy to IoT Edge devices",
+ "helpMarkDown": "Select an **Azure subscription** that contains IoT Hub"
+ },
+ {
+ "name": "iothubname",
+ "type": "pickList",
+ "label": "IoT Hub name",
+ "required": true,
+ "visibleRule": "action == Deploy to IoT Edge devices",
+ "helpMarkDown": "Select the **IoT Hub**"
+ },
+ {
+ "name": "deploymentid",
+ "type": "string",
+ "label": "IoT Edge deployment ID",
+ "required": true,
+ "defaultValue": "$(System.TeamProject)-devops-deployment",
+ "helpMarkDown": "Input the **IoT Edge Deployment ID**, if ID exists, it will be overridden.\n Up to 128 lowercase letters, numbers and the following characters are allowed [ -:+%_#*?!(),=@;' ].\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
+ "groupName": "advanced_deploy"
+ },
+ {
+ "name": "priority",
+ "type": "string",
+ "label": "IoT Edge deployment priority",
+ "required": true,
+ "defaultValue": "0",
+ "helpMarkDown": "Set the **priority** to a positive integer to resolve deployment conflicts: when targeted by multiple deployments a device will use the one with highest priority or (in case of two deployments with the same priority) latest creation time.\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
+ "groupName": "advanced_deploy"
+ },
+ {
+ "name": "deviceOption",
+ "type": "pickList",
+ "label": "Choose single/multiple device",
+ "required": true,
+ "options": {
+ "Single Device": "Single Device",
+ "Multiple Devices": "Multiple Devices"
+ },
+ "helpMarkDown": "Choose to deploy to single or multiple(by tags) devices",
+ "visibleRule": "action == Deploy to IoT Edge devices"
+ },
+ {
+ "name": "deviceId",
+ "type": "string",
+ "label": "IoT Edge device ID",
+ "required": true,
+ "visibleRule": "deviceOption == Single Device",
+ "helpMarkDown": "Input the IoT Edge **device ID**"
+ },
+ {
+ "name": "targetcondition",
+ "type": "string",
+ "label": "IoT Edge device target condition",
+ "required": true,
+ "visibleRule": "deviceOption == Multiple Devices",
+ "helpMarkDown": "Input the **target condition** of devices you would like to deploy. Do not use double quote. Example: **tags.building=9 and tags.environment='test'**.\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)"
+ },
+ {
+ "name": "containerregistrytype",
+ "type": "pickList",
+ "label": "Container registry type",
+ "defaultValue": "Azure Container Registry",
+ "required": true,
+ "visibleRule": "action = Push module images",
+ "options": {
+ "Azure Container Registry": "Azure Container Registry",
+ "Generic Container Registry": "Generic Container Registry"
+ },
+ "helpMarkDown": "Select a **Container Registry Type**.\n **Azure Container Registry** for ACR and **Generic Container Registry** for generic registries including docker hub."
+ },
+ {
+ "name": "dockerRegistryEndpoint",
+ "aliases": [
+ "dockerRegistryConnection"
+ ],
+ "type": "connectedService:dockerregistry",
+ "required": true,
+ "label": "Docker Registry Connection",
+ "helpMarkDown": "Select a generic **Docker registry connection**. Required for **Build and Push**.",
+ "visibleRule": "containerregistrytype = Generic Container Registry"
+ },
+ {
+ "name": "azureSubscriptionEndpoint",
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "helpMarkDown": "Select an Azure subscription",
+ "visibleRule": "containerregistrytype = Azure Container Registry"
+ },
+ {
+ "name": "azureContainerRegistry",
+ "label": "Azure Container Registry",
+ "type": "pickList",
+ "required": true,
+ "helpMarkDown": "Select an **Azure Container Registry**",
+ "visibleRule": "containerregistrytype = Azure Container Registry",
+ "defaultValue": ""
+ },
+ {
+ "name": "templateFilePath",
+ "type": "filePath",
+ "label": ".template.json file",
+ "defaultValue": "deployment.template.json",
+ "visibleRule": "action = Build module images || action = Push module images || action = Generate deployment manifest",
+ "required": true,
+ "helpMarkDown": "The path of Azure IoT Edge solution **.template.json**. This file defines the modules and routes in Azure IoT Edge solution, file name must end with **.template.json**"
+ },
+ {
+ "name": "defaultPlatform",
+ "type": "pickList",
+ "label": "Default platform",
+ "defaultValue": "amd64",
+ "required": true,
+ "visibleRule": "action = Build module images || action = Push module images || action = Generate deployment manifest",
+ "options": {
+ "amd64": "amd64",
+ "windows-amd64": "windows-amd64",
+ "arm32v7": "arm32v7",
+ "arm64v8": "arm64v8"
+ },
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "In your **.template.json**, you can leave the modules platform unspecified. For these modules, the **default platform** will be used."
+ },
+ {
+ "name": "fillRegistryCredential",
+ "type": "pickList",
+ "label": "Add registry credential to deployment manifest",
+ "defaultValue": "true",
+ "required": true,
+ "visibleRule": "action = Push module images",
+ "options": {
+ "true": "true",
+ "false": "false"
+ },
+ "helpMarkDown": "Add registry credential for pushing docker images to deployment manifest"
+ },
+ {
+ "name": "deploymentManifestOutputPath",
+ "type": "filePath",
+ "label": "Output path",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/config/deployment.json",
+ "visibleRule": "action == Generate deployment manifest",
+ "required": true,
+ "helpMarkDown": "The output path of generated deployment manifest"
+ },
+ {
+ "name": "validateGeneratedDeploymentManifest",
+ "type": "pickList",
+ "label": "Validate the schema of generated deployment manifest",
+ "defaultValue": "false",
+ "required": true,
+ "visibleRule": "action = Generate deployment manifest",
+ "options": {
+ "true": "true",
+ "false": "false"
+ },
+ "helpMarkDown": "Fail this step if the generated deployment manifest does not pass schema validation. You can search `Azure IoT Edge deployment` in [JSON Schema Store](http://schemastore.org/json/) to find latest schema."
+ },
+ {
+ "name": "bypassModules",
+ "type": "string",
+ "label": "Bypass module(s)",
+ "defaultValue": "",
+ "helpMarkDown": "Select the module(s) that you **DO NOT** need to build(or push) in the .template.json, specify module names and separate with comma.\n Example: if you have 2 modules **SampleModule1,SampleModule2** in your .template.json, you want to just build or push **SampleModule1**, then you set the bypass modules as **SampleModule2**. Leave empty if you would like to build all the modules in .template.json.",
+ "groupName": "advanced_push"
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "azureContainerRegistry",
+ "endpointId": "$(azureSubscriptionEndpoint)",
+ "dataSourceName": "AzureRMContainerRegistries",
+ "resultTemplate": "{\"Value\":\"{\\\"loginServer\\\":\\\"{{{properties.loginServer}}}\\\"}\", \"DisplayValue\":\"{{{name}}}\"}"
+ },
+ {
+ "target": "iothubname",
+ "endpointId": "$(connectedServiceNameARM)",
+ "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.Devices/IotHubs?api-version=2018-04-01",
+ "resultSelector": "jsonpath:$.value[*].name"
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "index.js"
+ },
+ "Node16": {
+ "target": "index.js",
+ "argumentFormat": ""
+ }
},
- {
- "name": "deploymentFilePath",
- "type": "filePath",
- "label": "Deployment file",
- "defaultValue": "$(System.DefaultWorkingDirectory)/config/deployment.json",
- "required": true,
- "visibleRule": "action == Deploy to IoT Edge devices",
- "helpMarkDown": "Select the deployment json file.\n If this task is in **release pipeline**, you need to set the location of deployment file in artifact.(The default value works for most conditions).\n If this task is in **build pipeline**, you need to set it to the path of **Path of output deployment file**."
+ "messages": {
+ "BuildingModules": "Building module images...",
+ "BuildingModulesFinished": "Finished building module images",
+ "PushingModules": "Pushing module images...",
+ "PushingModulesFinished": "Finished pushing module images",
+ "StartDeploy": "Start deploying...",
+ "FinishDeploy": "Finished Deploying",
+ "DeploymentFilePath": "The generated deployment file located in the path: %s",
+ "ExpandingRegistryCredentials": "Expanding registry credentials in deployment file...",
+ "ReplaceCredential": "Replace credential: %s",
+ "DeployTaskRunningInBuild": "Deployment task is running in build pipeline? %s",
+ "CheckValidJson": "Checking if the following file is a valid json: %s",
+ "Invalid": "Invalid",
+ "Valid": "Valid",
+ "NomralizedDeployementId": "Normalized deployment id is: %s",
+ "DependencyAlreadyInstalled": "%s already installed with version: %s",
+ "DependencyInstallSuccess": "%s installed with version: %s",
+ "DependencyInstallFail": "%s installation failed, see detailed error in debug mode",
+ "TemplateFileInvalid": "The path of template file is not valid: %s",
+ "InvalidContainerRegistry": "Failed to fetch container registry authentication token, please check you container registry setting in build task. The username for container registry is %s",
+ "DeploymentFileNotFound": "Deployment file can't be found. Please ensure Path of deployment file is correctly set in the task.",
+ "ValidDeploymentFileNotFound": "Cannot find a valid deployment file. Please ensure Path of deployment file is correctly set in the task.",
+ "AzureSdkNotFound": "Azure SDK not found",
+ "RootPathNotExist": "The Root path %s does not exist",
+ "SkipModuleImageValidation": "SKIP_MODULE_IMAGE_VALIDATION set to true, skipping module image validation.",
+ "InvalidRegistryCredentialWarning": "Failed to login %s with given credential. %s",
+ "CheckModuleImageExistenceError": "%s does not exist or the credential is not set correctly. Error: %s",
+ "StartGenerateDeploymentManifest": "Start generating deployment manifest...",
+ "FinishGenerateDeploymentManifest": "Finished generating deployment manifest.",
+ "LoginRegistrySucess": "Successfully logged in to registry %s",
+ "SkipSettingEnvironmentVariableForSecret": "Environment variable %s already exist. Skip setting environment varialbe for secret: %s."
},
- {
- "name": "connectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription contains IoT Hub",
- "required": true,
- "visibleRule": "action == Deploy to IoT Edge devices",
- "helpMarkDown": "Select an **Azure subscription** that contains IoT Hub"
- },
- {
- "name": "iothubname",
- "type": "pickList",
- "label": "IoT Hub name",
- "required": true,
- "visibleRule": "action == Deploy to IoT Edge devices",
- "helpMarkDown": "Select the **IoT Hub**"
- },
- {
- "name": "deploymentid",
- "type": "string",
- "label": "IoT Edge deployment ID",
- "required": true,
- "defaultValue": "$(System.TeamProject)-devops-deployment",
- "helpMarkDown": "Input the **IoT Edge Deployment ID**, if ID exists, it will be overridden.\n Up to 128 lowercase letters, numbers and the following characters are allowed [ -:+%_#*?!(),=@;' ].\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
- "groupName": "advanced_deploy"
- },
- {
- "name": "priority",
- "type": "string",
- "label": "IoT Edge deployment priority",
- "required": true,
- "defaultValue": "0",
- "helpMarkDown": "Set the **priority** to a positive integer to resolve deployment conflicts: when targeted by multiple deployments a device will use the one with highest priority or (in case of two deployments with the same priority) latest creation time.\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)",
- "groupName": "advanced_deploy"
- },
- {
- "name": "deviceOption",
- "type": "pickList",
- "label": "Choose single/multiple device",
- "required": true,
- "options": {
- "Single Device": "Single Device",
- "Multiple Devices": "Multiple Devices"
- },
- "helpMarkDown": "Choose to deploy to single or multiple(by tags) devices",
- "visibleRule": "action == Deploy to IoT Edge devices"
- },
- {
- "name": "deviceId",
- "type": "string",
- "label": "IoT Edge device ID",
- "required": true,
- "visibleRule": "deviceOption == Single Device",
- "helpMarkDown": "Input the IoT Edge **device ID**"
- },
- {
- "name": "targetcondition",
- "type": "string",
- "label": "IoT Edge device target condition",
- "required": true,
- "visibleRule": "deviceOption == Multiple Devices",
- "helpMarkDown": "Input the **target condition** of devices you would like to deploy. Do not use double quote. Example: **tags.building=9 and tags.environment='test'**.\n Check more information for [Azure IoT Edge deployment](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment)"
- },
- {
- "name": "containerregistrytype",
- "type": "pickList",
- "label": "Container registry type",
- "defaultValue": "Azure Container Registry",
- "required": true,
- "visibleRule": "action = Push module images",
- "options": {
- "Azure Container Registry": "Azure Container Registry",
- "Generic Container Registry": "Generic Container Registry"
- },
- "helpMarkDown": "Select a **Container Registry Type**.\n **Azure Container Registry** for ACR and **Generic Container Registry** for generic registries including docker hub."
- },
- {
- "name": "dockerRegistryEndpoint",
- "aliases": [
- "dockerRegistryConnection"
- ],
- "type": "connectedService:dockerregistry",
- "required": true,
- "label": "Docker Registry Connection",
- "helpMarkDown": "Select a generic **Docker registry connection**. Required for **Build and Push**.",
- "visibleRule": "containerregistrytype = Generic Container Registry"
- },
- {
- "name": "azureSubscriptionEndpoint",
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "helpMarkDown": "Select an Azure subscription",
- "visibleRule": "containerregistrytype = Azure Container Registry"
- },
- {
- "name": "azureContainerRegistry",
- "label": "Azure Container Registry",
- "type": "pickList",
- "required": true,
- "helpMarkDown": "Select an **Azure Container Registry**",
- "visibleRule": "containerregistrytype = Azure Container Registry",
- "defaultValue": ""
- },
- {
- "name": "templateFilePath",
- "type": "filePath",
- "label": ".template.json file",
- "defaultValue": "deployment.template.json",
- "visibleRule": "action = Build module images || action = Push module images || action = Generate deployment manifest",
- "required": true,
- "helpMarkDown": "The path of Azure IoT Edge solution **.template.json**. This file defines the modules and routes in Azure IoT Edge solution, file name must end with **.template.json**"
- },
- {
- "name": "defaultPlatform",
- "type": "pickList",
- "label": "Default platform",
- "defaultValue": "amd64",
- "required": true,
- "visibleRule": "action = Build module images || action = Push module images || action = Generate deployment manifest",
- "options": {
- "amd64": "amd64",
- "windows-amd64": "windows-amd64",
- "arm32v7": "arm32v7",
- "arm64v8": "arm64v8"
- },
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "In your **.template.json**, you can leave the modules platform unspecified. For these modules, the **default platform** will be used."
- },
- {
- "name": "fillRegistryCredential",
- "type": "pickList",
- "label": "Add registry credential to deployment manifest",
- "defaultValue": "true",
- "required": true,
- "visibleRule": "action = Push module images",
- "options": {
- "true": "true",
- "false": "false"
- },
- "helpMarkDown": "Add registry credential for pushing docker images to deployment manifest"
- },
- {
- "name": "deploymentManifestOutputPath",
- "type": "filePath",
- "label": "Output path",
- "defaultValue": "$(System.DefaultWorkingDirectory)/config/deployment.json",
- "visibleRule": "action == Generate deployment manifest",
- "required": true,
- "helpMarkDown": "The output path of generated deployment manifest"
- },
- {
- "name": "validateGeneratedDeploymentManifest",
- "type": "pickList",
- "label": "Validate the schema of generated deployment manifest",
- "defaultValue": "false",
- "required": true,
- "visibleRule": "action = Generate deployment manifest",
- "options": {
- "true": "true",
- "false": "false"
- },
- "helpMarkDown": "Fail this step if the generated deployment manifest does not pass schema validation. You can search `Azure IoT Edge deployment` in [JSON Schema Store](http://schemastore.org/json/) to find latest schema."
- },
- {
- "name": "bypassModules",
- "type": "string",
- "label": "Bypass module(s)",
- "defaultValue": "",
- "helpMarkDown": "Select the module(s) that you **DO NOT** need to build(or push) in the .template.json, specify module names and separate with comma.\n Example: if you have 2 modules **SampleModule1,SampleModule2** in your .template.json, you want to just build or push **SampleModule1**, then you set the bypass modules as **SampleModule2**. Leave empty if you would like to build all the modules in .template.json.",
- "groupName": "advanced_push"
- }
- ],
- "dataSourceBindings": [
- {
- "target": "azureContainerRegistry",
- "endpointId": "$(azureSubscriptionEndpoint)",
- "dataSourceName": "AzureRMContainerRegistries",
- "resultTemplate": "{\"Value\":\"{\\\"loginServer\\\":\\\"{{{properties.loginServer}}}\\\"}\", \"DisplayValue\":\"{{{name}}}\"}"
- },
- {
- "target": "iothubname",
- "endpointId": "$(connectedServiceNameARM)",
- "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.Devices/IotHubs?api-version=2018-04-01",
- "resultSelector": "jsonpath:$.value[*].name"
- }
- ],
- "execution": {
- "Node10": {
- "target": "index.js"
- },
- "Node16": {
- "target": "index.js",
- "argumentFormat": ""
- }
- },
- "messages": {
- "BuildingModules": "Building module images...",
- "BuildingModulesFinished": "Finished building module images",
- "PushingModules": "Pushing module images...",
- "PushingModulesFinished": "Finished pushing module images",
- "StartDeploy": "Start deploying...",
- "FinishDeploy": "Finished Deploying",
- "DeploymentFilePath": "The generated deployment file located in the path: %s",
- "ExpandingRegistryCredentials": "Expanding registry credentials in deployment file...",
- "ReplaceCredential": "Replace credential: %s",
- "DeployTaskRunningInBuild": "Deployment task is running in build pipeline? %s",
- "CheckValidJson": "Checking if the following file is a valid json: %s",
- "Invalid": "Invalid",
- "Valid": "Valid",
- "NomralizedDeployementId": "Normalized deployment id is: %s",
- "DependencyAlreadyInstalled": "%s already installed with version: %s",
- "DependencyInstallSuccess": "%s installed with version: %s",
- "DependencyInstallFail": "%s installation failed, see detailed error in debug mode",
- "TemplateFileInvalid": "The path of template file is not valid: %s",
- "InvalidContainerRegistry": "Failed to fetch container registry authentication token, please check you container registry setting in build task. The username for container registry is %s",
- "DeploymentFileNotFound": "Deployment file can't be found. Please ensure Path of deployment file is correctly set in the task.",
- "ValidDeploymentFileNotFound": "Cannot find a valid deployment file. Please ensure Path of deployment file is correctly set in the task.",
- "AzureSdkNotFound": "Azure SDK not found",
- "RootPathNotExist": "The Root path %s does not exist",
- "SkipModuleImageValidation": "SKIP_MODULE_IMAGE_VALIDATION set to true, skipping module image validation.",
- "InvalidRegistryCredentialWarning": "Failed to login %s with given credential. %s",
- "CheckModuleImageExistenceError": "%s does not exist or the credential is not set correctly. Error: %s",
- "StartGenerateDeploymentManifest": "Start generating deployment manifest...",
- "FinishGenerateDeploymentManifest": "Finished generating deployment manifest.",
- "LoginRegistrySucess": "Successfully logged in to registry %s",
- "SkipSettingEnvironmentVariableForSecret": "Environment variable %s already exist. Skip setting environment varialbe for secret: %s."
- },
- "OutputVariables": [
- {
- "name": "DEPLOYMENT_FILE_PATH",
- "description": "This is the path of generated deployment file.",
- "visibleRule": "action = Build module images"
- }
- ]
+ "OutputVariables": [
+ {
+ "name": "DEPLOYMENT_FILE_PATH",
+ "description": "This is the path of generated deployment file.",
+ "visibleRule": "action = Build module images"
+ }
+ ]
}
\ No newline at end of file
diff --git a/Tasks/AzureIoTEdgeV2/task.loc.json b/Tasks/AzureIoTEdgeV2/task.loc.json
index 157421724acf..d633692f43b1 100644
--- a/Tasks/AzureIoTEdgeV2/task.loc.json
+++ b/Tasks/AzureIoTEdgeV2/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"preview": false,
diff --git a/Tasks/AzureKeyVaultV1/task.json b/Tasks/AzureKeyVaultV1/task.json
index 6977530d6dd3..a689019333d4 100644
--- a/Tasks/AzureKeyVaultV1/task.json
+++ b/Tasks/AzureKeyVaultV1/task.json
@@ -1,133 +1,133 @@
{
- "id": "1E244D32-2DD4-4165-96FB-B7441CA9331E",
- "name": "AzureKeyVault",
- "friendlyName": "Azure Key Vault",
- "description": "Download Azure Key Vault secrets",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-key-vault",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=848891)",
- "category": "Deploy",
- "releaseNotes": "Works with cross-platform agents (Linux, macOS, or Windows)",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 249,
- "Patch": 0
- },
- "demands": [],
- "minimumAgentVersion": "2.0.0",
- "deprecated": true,
- "deprecationMessage": "The AzureKeyVault@1 task is deprecated, please use the latest version of the AzureKeyVault task",
- "inputs": [
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select the Azure subscription for the key vault"
+ "id": "1E244D32-2DD4-4165-96FB-B7441CA9331E",
+ "name": "AzureKeyVault",
+ "friendlyName": "Azure Key Vault",
+ "description": "Download Azure Key Vault secrets",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-key-vault",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=848891)",
+ "category": "Deploy",
+ "releaseNotes": "Works with cross-platform agents (Linux, macOS, or Windows)",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "KeyVaultName",
- "type": "pickList",
- "label": "Key vault",
- "required": true,
- "helpMarkDown": "Provide the name of an existing key vault",
- "properties": {
- "EditableOptions": "True"
- }
+ "demands": [],
+ "minimumAgentVersion": "2.0.0",
+ "deprecated": true,
+ "deprecationMessage": "The AzureKeyVault@1 task is deprecated, please use the latest version of the AzureKeyVault task",
+ "inputs": [
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select the Azure subscription for the key vault"
+ },
+ {
+ "name": "KeyVaultName",
+ "type": "pickList",
+ "label": "Key vault",
+ "required": true,
+ "helpMarkDown": "Provide the name of an existing key vault",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "SecretsFilter",
+ "type": "string",
+ "label": "Secrets filter",
+ "defaultValue": "*",
+ "required": true,
+ "helpMarkDown": "Comma separated list of secret names or leave * to download all secrets from the selected key vault.",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "RunAsPreJob",
+ "type": "boolean",
+ "label": "Make secrets available to whole job",
+ "defaultValue": false,
+ "required": true,
+ "helpMarkDown": "Run the task before job execution begins. Exposes secrets to all tasks in the job, not just tasks that follow this one.",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "KeyVaultName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureKeyVaultsListV2",
+ "resultTemplate": "{ \"Value\" : \"{{{name}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
+ }
+ ],
+ "instanceNameFormat": "Azure Key Vault: $(KeyVaultName)",
+ "prejobexecution": {
+ "Node16": {
+ "target": "runprejob.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "runprejob.js"
+ }
},
- {
- "name": "SecretsFilter",
- "type": "string",
- "label": "Secrets filter",
- "defaultValue": "*",
- "required": true,
- "helpMarkDown": "Comma separated list of secret names or leave * to download all secrets from the selected key vault.",
- "properties": {
- "EditableOptions": "True"
- }
+ "execution": {
+ "Node16": {
+ "target": "run.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "run.js"
+ }
},
- {
- "name": "RunAsPreJob",
- "type": "boolean",
- "label": "Make secrets available to whole job",
- "defaultValue": false,
- "required": true,
- "helpMarkDown": "Run the task before job execution begins. Exposes secrets to all tasks in the job, not just tasks that follow this one.",
- "properties": {
- "EditableOptions": "True"
- }
+ "messages": {
+ "ClientIdCannotBeEmpty": "clientId must be a non empty string.",
+ "DomainCannotBeEmpty": "domain must be a non empty string.",
+ "SecretCannotBeEmpty": "secret must be a non empty string.",
+ "armUrlCannotBeEmpty": "arm URL must be a non empty string.",
+ "authorityUrlCannotBeEmpty": "authority must be a non empty string.",
+ "CallbackCannotBeNull": "callback cannot be null.",
+ "CredentialsCannotBeNull": "'credentials' cannot be null.",
+ "SubscriptionIdCannotBeNull": "'subscriptionId' cannot be null.",
+ "InvalidResponseLongRunningOperation": "Invalid response received for fetching status of a long running operation.",
+ "TimeoutWhileWaiting": "Timed out while waiting",
+ "ResourceGroupCannotBeNull": "resourceGroupName cannot be null or undefined and it must be of type string.",
+ "ResourceGroupExceededLength": "\"resourceGroupName\" should satisfy the constraint - \"MaxLength\": 90",
+ "ResourceGroupDeceededLength": "\"resourceGroupName\" should satisfy the constraint - \"MinLength\": 1",
+ "ResourceGroupDoesntMatchPattern": "\"resourceGroupName\" should satisfy the constraint - \"Pattern\": /^[-\\w\\._\\(\\)]+$/",
+ "AzKv_ConstructorFailed": "Azure key vault parameters initialization failed. Error: %s.",
+ "SubscriptionIdLabel": "SubscriptionId: %s.",
+ "KeyVaultNameLabel": "Key vault name: %s.",
+ "DownloadingSecretsUsing": "Downloading secrets using: %s.",
+ "GetSecretsFailed": "Get secrets failed. Error: %s.",
+ "NoSecretsFound": "No secrets found in: %s",
+ "NumberOfSecretsFound": "Number of secrets found in %s: %s",
+ "NumberOfEnabledSecretsFound": "Number of enabled and unexpired secrets found in %s: %s",
+ "DownloadingSecretValue": "Downloading secret value for: %s.",
+ "AccessDeniedError": "%s. The specified Azure service connection needs to have Get, List secret management permissions on the selected key vault. To set these permissions, download the ProvisionKeyVaultPermissions.ps1 script from build/release logs and execute it, or set them from the Azure portal.",
+ "GetSecretValueFailed": "Get secret value failed for: %s. Error: %s.",
+ "ConflictingVariableFound": "Variable with name %s is defined in both environment and key vault",
+ "GetSecretFailedBecauseOfInvalidCharacters": "Secret not found: %s. Secret name must be a string 1-127 characters in length containing only -, 0-9, a-z and A-Z.",
+ "UploadingAttachment": "Uploading %s as attachment",
+ "CouldNotWriteToFile": "Could not save content to file. Failed with an error %s",
+ "CouldNotMaskSecret": "%s value has regular expressions hence could not mask completely",
+ "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
+ "RetryingWithVaultResourceIdFromResponse": "Retrying with vault resource Id reterieved from response : %s",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
}
- ],
- "dataSourceBindings": [
- {
- "target": "KeyVaultName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureKeyVaultsListV2",
- "resultTemplate": "{ \"Value\" : \"{{{name}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
- }
- ],
- "instanceNameFormat": "Azure Key Vault: $(KeyVaultName)",
- "prejobexecution": {
- "Node16": {
- "target": "runprejob.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "runprejob.js"
- }
- },
- "execution": {
- "Node16": {
- "target": "run.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "run.js"
- }
- },
- "messages": {
- "ClientIdCannotBeEmpty": "clientId must be a non empty string.",
- "DomainCannotBeEmpty": "domain must be a non empty string.",
- "SecretCannotBeEmpty": "secret must be a non empty string.",
- "armUrlCannotBeEmpty": "arm URL must be a non empty string.",
- "authorityUrlCannotBeEmpty": "authority must be a non empty string.",
- "CallbackCannotBeNull": "callback cannot be null.",
- "CredentialsCannotBeNull": "'credentials' cannot be null.",
- "SubscriptionIdCannotBeNull": "'subscriptionId' cannot be null.",
- "InvalidResponseLongRunningOperation": "Invalid response received for fetching status of a long running operation.",
- "TimeoutWhileWaiting": "Timed out while waiting",
- "ResourceGroupCannotBeNull": "resourceGroupName cannot be null or undefined and it must be of type string.",
- "ResourceGroupExceededLength": "\"resourceGroupName\" should satisfy the constraint - \"MaxLength\": 90",
- "ResourceGroupDeceededLength": "\"resourceGroupName\" should satisfy the constraint - \"MinLength\": 1",
- "ResourceGroupDoesntMatchPattern": "\"resourceGroupName\" should satisfy the constraint - \"Pattern\": /^[-\\w\\._\\(\\)]+$/",
- "AzKv_ConstructorFailed": "Azure key vault parameters initialization failed. Error: %s.",
- "SubscriptionIdLabel": "SubscriptionId: %s.",
- "KeyVaultNameLabel": "Key vault name: %s.",
- "DownloadingSecretsUsing": "Downloading secrets using: %s.",
- "GetSecretsFailed": "Get secrets failed. Error: %s.",
- "NoSecretsFound": "No secrets found in: %s",
- "NumberOfSecretsFound": "Number of secrets found in %s: %s",
- "NumberOfEnabledSecretsFound": "Number of enabled and unexpired secrets found in %s: %s",
- "DownloadingSecretValue": "Downloading secret value for: %s.",
- "AccessDeniedError": "%s. The specified Azure service connection needs to have Get, List secret management permissions on the selected key vault. To set these permissions, download the ProvisionKeyVaultPermissions.ps1 script from build/release logs and execute it, or set them from the Azure portal.",
- "GetSecretValueFailed": "Get secret value failed for: %s. Error: %s.",
- "ConflictingVariableFound": "Variable with name %s is defined in both environment and key vault",
- "GetSecretFailedBecauseOfInvalidCharacters": "Secret not found: %s. Secret name must be a string 1-127 characters in length containing only -, 0-9, a-z and A-Z.",
- "UploadingAttachment": "Uploading %s as attachment",
- "CouldNotWriteToFile": "Could not save content to file. Failed with an error %s",
- "CouldNotMaskSecret": "%s value has regular expressions hence could not mask completely",
- "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
- "RetryingWithVaultResourceIdFromResponse": "Retrying with vault resource Id reterieved from response : %s",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureKeyVaultV1/task.loc.json b/Tasks/AzureKeyVaultV1/task.loc.json
index 39e1472fc6d1..e1cba9a83652 100644
--- a/Tasks/AzureKeyVaultV1/task.loc.json
+++ b/Tasks/AzureKeyVaultV1/task.loc.json
@@ -14,7 +14,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 249,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/AzureKeyVaultV2/task.json b/Tasks/AzureKeyVaultV2/task.json
index 012d62cbf9fe..9d60f3682fdb 100644
--- a/Tasks/AzureKeyVaultV2/task.json
+++ b/Tasks/AzureKeyVaultV2/task.json
@@ -14,7 +14,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 249,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/AzureKeyVaultV2/task.loc.json b/Tasks/AzureKeyVaultV2/task.loc.json
index 4ddeddf94e0c..a9701c8ac1bd 100644
--- a/Tasks/AzureKeyVaultV2/task.loc.json
+++ b/Tasks/AzureKeyVaultV2/task.loc.json
@@ -14,7 +14,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 249,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/AzurePowerShellV2/task.json b/Tasks/AzurePowerShellV2/task.json
index 7122ee201ded..f4d1bc88c8c6 100644
--- a/Tasks/AzurePowerShellV2/task.json
+++ b/Tasks/AzurePowerShellV2/task.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzurePowerShellV2/task.loc.json b/Tasks/AzurePowerShellV2/task.loc.json
index 7032687eda26..39aa7d392f2f 100644
--- a/Tasks/AzurePowerShellV2/task.loc.json
+++ b/Tasks/AzurePowerShellV2/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"demands": [
diff --git a/Tasks/AzurePowerShellV3/task.json b/Tasks/AzurePowerShellV3/task.json
index 6f7258753710..677db12a8778 100644
--- a/Tasks/AzurePowerShellV3/task.json
+++ b/Tasks/AzurePowerShellV3/task.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "Added support for Fail on standard error and ErrorActionPreference",
diff --git a/Tasks/AzurePowerShellV3/task.loc.json b/Tasks/AzurePowerShellV3/task.loc.json
index 2912db9990a2..9c00127029a8 100644
--- a/Tasks/AzurePowerShellV3/task.loc.json
+++ b/Tasks/AzurePowerShellV3/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/AzurePowerShellV4/task.json b/Tasks/AzurePowerShellV4/task.json
index 783dab4735b7..d2c5c953681f 100644
--- a/Tasks/AzurePowerShellV4/task.json
+++ b/Tasks/AzurePowerShellV4/task.json
@@ -1,213 +1,213 @@
{
- "id": "72A1931B-EFFB-4D2E-8FD8-F8472A07CB62",
- "name": "AzurePowerShell",
- "friendlyName": "Azure PowerShell",
- "description": "Run a PowerShell script within an Azure environment",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613749)",
- "helpUrl": "https://aka.ms/azurepowershelltroubleshooting",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 4,
- "Minor": 248,
- "Patch": 0
- },
- "releaseNotes": "Added support for Az Module and cross platform agents.",
- "groups": [
- {
- "name": "AzurePowerShellVersionOptions",
- "displayName": "Azure PowerShell version options",
- "isExpanded": true
+ "id": "72A1931B-EFFB-4D2E-8FD8-F8472A07CB62",
+ "name": "AzurePowerShell",
+ "friendlyName": "Azure PowerShell",
+ "description": "Run a PowerShell script within an Azure environment",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613749)",
+ "helpUrl": "https://aka.ms/azurepowershelltroubleshooting",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 4,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": false
- }
- ],
- "minimumAgentVersion": "2.115.0",
- "inputs": [
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to configure before running PowerShell",
- "properties": {
- "EndpointFilterRule": "ScopeLevel != AzureMLWorkspace"
- }
- },
- {
- "name": "ScriptType",
- "type": "radio",
- "label": "Script Type",
- "required": false,
- "helpMarkDown": "Type of the script: File Path or Inline Script",
- "defaultValue": "FilePath",
- "options": {
- "FilePath": "Script File Path",
- "InlineScript": "Inline Script"
- }
- },
- {
- "name": "ScriptPath",
- "type": "filePath",
- "label": "Script Path",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Path of the script. Should be fully qualified path or relative to the default working directory.",
- "visibleRule": "ScriptType = FilePath"
- },
- {
- "name": "Inline",
- "type": "multiLine",
- "label": "Inline Script",
- "required": false,
- "defaultValue": "# You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments",
- "helpMarkDown": "Enter the script to execute.",
- "visibleRule": "ScriptType = InlineScript",
- "properties": {
- "resizable": "true",
- "rows": "10",
- "maxLength": "5000"
- }
- },
- {
- "name": "ScriptArguments",
- "type": "string",
- "label": "Script Arguments",
- "defaultValue": "",
- "visibleRule": "ScriptType = FilePath",
- "required": false,
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- },
- "helpMarkDown": "Additional parameters to pass to PowerShell. Can be either ordinal or named parameters."
- },
- {
- "name": "errorActionPreference",
- "type": "pickList",
- "label": "ErrorActionPreference",
- "required": false,
- "defaultValue": "stop",
- "options": {
- "stop": "Stop",
- "continue": "Continue",
- "silentlyContinue": "SilentlyContinue"
- },
- "helpMarkDown": "Select the value of the ErrorActionPreference variable for executing the script."
- },
- {
- "name": "FailOnStandardError",
- "type": "boolean",
- "label": "Fail on Standard Error",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, this task will fail if any errors are written to the error pipeline, or if any data is written to the Standard Error stream."
- },
- {
- "name": "RestrictContextToCurrentTask",
- "type": "boolean",
- "label": "Restrict scope of context to current task",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, this task will restrict the scope of context to current task only and the context will not be available to other tasks in the pipeline when using private agent."
- },
- {
- "name": "TargetAzurePs",
- "aliases": [
- "azurePowerShellVersion"
- ],
- "type": "radio",
- "label": "Azure PowerShell Version",
- "defaultValue": "OtherVersion",
- "required": false,
- "options": {
- "LatestVersion": "Latest installed version",
- "OtherVersion": "Specify other version"
- },
- "groupName": "AzurePowerShellVersionOptions",
- "helpMarkDown": "In case of hosted agents, the supported Azure PowerShell Version is: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0 (Hosted VS2017 Queue).\nTo pick the latest version available on the agent, select \"Latest installed version\".\n\nFor private agents you can specify preferred version of Azure PowerShell using \"Specify version\""
- },
- {
- "name": "CustomTargetAzurePs",
- "aliases": [
- "preferredAzurePowerShellVersion"
- ],
- "type": "string",
- "label": "Preferred Azure PowerShell Version",
- "defaultValue": "",
- "required": true,
- "visibleRule": "TargetAzurePs = OtherVersion",
- "groupName": "AzurePowerShellVersionOptions",
- "helpMarkDown": "Preferred Azure PowerShell Version needs to be a proper semantic version eg. 1.2.3. Regex like 2.\\*,2.3.\\* is not supported. The Hosted VS2017 Pool currently supports Az module version: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0"
- },
- {
- "name": "pwsh",
- "type": "boolean",
- "label": "Use PowerShell Core",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, then on Windows the task will use pwsh.exe from your PATH instead of powershell.exe.",
- "groupName": "advanced"
- },
- {
- "name": "validateScriptSignature",
- "type": "boolean",
- "label": "Validate script signature",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, then the task will first check to make sure specified script is signed and valid before executing it.",
- "groupName": "advanced",
- "visibleRule": "ScriptType = FilePath"
- },
- {
- "name": "workingDirectory",
- "type": "filePath",
- "label": "Working Directory",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Working directory where the script is run.",
- "groupName": "advanced"
- }
- ],
- "instanceNameFormat": "Azure PowerShell script: $(ScriptType)",
- "execution": {
- "PowerShell3": {
- "target": "azurepowershell.ps1",
- "platforms": [
- "windows"
- ]
- },
- "Node16": {
- "target": "azurepowershell.js",
- "argumentFormat": ""
+ "releaseNotes": "Added support for Az Module and cross platform agents.",
+ "groups": [
+ {
+ "name": "AzurePowerShellVersionOptions",
+ "displayName": "Azure PowerShell version options",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "minimumAgentVersion": "2.115.0",
+ "inputs": [
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to configure before running PowerShell",
+ "properties": {
+ "EndpointFilterRule": "ScopeLevel != AzureMLWorkspace"
+ }
+ },
+ {
+ "name": "ScriptType",
+ "type": "radio",
+ "label": "Script Type",
+ "required": false,
+ "helpMarkDown": "Type of the script: File Path or Inline Script",
+ "defaultValue": "FilePath",
+ "options": {
+ "FilePath": "Script File Path",
+ "InlineScript": "Inline Script"
+ }
+ },
+ {
+ "name": "ScriptPath",
+ "type": "filePath",
+ "label": "Script Path",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Path of the script. Should be fully qualified path or relative to the default working directory.",
+ "visibleRule": "ScriptType = FilePath"
+ },
+ {
+ "name": "Inline",
+ "type": "multiLine",
+ "label": "Inline Script",
+ "required": false,
+ "defaultValue": "# You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments",
+ "helpMarkDown": "Enter the script to execute.",
+ "visibleRule": "ScriptType = InlineScript",
+ "properties": {
+ "resizable": "true",
+ "rows": "10",
+ "maxLength": "5000"
+ }
+ },
+ {
+ "name": "ScriptArguments",
+ "type": "string",
+ "label": "Script Arguments",
+ "defaultValue": "",
+ "visibleRule": "ScriptType = FilePath",
+ "required": false,
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ },
+ "helpMarkDown": "Additional parameters to pass to PowerShell. Can be either ordinal or named parameters."
+ },
+ {
+ "name": "errorActionPreference",
+ "type": "pickList",
+ "label": "ErrorActionPreference",
+ "required": false,
+ "defaultValue": "stop",
+ "options": {
+ "stop": "Stop",
+ "continue": "Continue",
+ "silentlyContinue": "SilentlyContinue"
+ },
+ "helpMarkDown": "Select the value of the ErrorActionPreference variable for executing the script."
+ },
+ {
+ "name": "FailOnStandardError",
+ "type": "boolean",
+ "label": "Fail on Standard Error",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, this task will fail if any errors are written to the error pipeline, or if any data is written to the Standard Error stream."
+ },
+ {
+ "name": "RestrictContextToCurrentTask",
+ "type": "boolean",
+ "label": "Restrict scope of context to current task",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, this task will restrict the scope of context to current task only and the context will not be available to other tasks in the pipeline when using private agent."
+ },
+ {
+ "name": "TargetAzurePs",
+ "aliases": [
+ "azurePowerShellVersion"
+ ],
+ "type": "radio",
+ "label": "Azure PowerShell Version",
+ "defaultValue": "OtherVersion",
+ "required": false,
+ "options": {
+ "LatestVersion": "Latest installed version",
+ "OtherVersion": "Specify other version"
+ },
+ "groupName": "AzurePowerShellVersionOptions",
+ "helpMarkDown": "In case of hosted agents, the supported Azure PowerShell Version is: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0 (Hosted VS2017 Queue).\nTo pick the latest version available on the agent, select \"Latest installed version\".\n\nFor private agents you can specify preferred version of Azure PowerShell using \"Specify version\""
+ },
+ {
+ "name": "CustomTargetAzurePs",
+ "aliases": [
+ "preferredAzurePowerShellVersion"
+ ],
+ "type": "string",
+ "label": "Preferred Azure PowerShell Version",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "TargetAzurePs = OtherVersion",
+ "groupName": "AzurePowerShellVersionOptions",
+ "helpMarkDown": "Preferred Azure PowerShell Version needs to be a proper semantic version eg. 1.2.3. Regex like 2.\\*,2.3.\\* is not supported. The Hosted VS2017 Pool currently supports Az module version: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0"
+ },
+ {
+ "name": "pwsh",
+ "type": "boolean",
+ "label": "Use PowerShell Core",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, then on Windows the task will use pwsh.exe from your PATH instead of powershell.exe.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "validateScriptSignature",
+ "type": "boolean",
+ "label": "Validate script signature",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, then the task will first check to make sure specified script is signed and valid before executing it.",
+ "groupName": "advanced",
+ "visibleRule": "ScriptType = FilePath"
+ },
+ {
+ "name": "workingDirectory",
+ "type": "filePath",
+ "label": "Working Directory",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Working directory where the script is run.",
+ "groupName": "advanced"
+ }
+ ],
+ "instanceNameFormat": "Azure PowerShell script: $(ScriptType)",
+ "execution": {
+ "PowerShell3": {
+ "target": "azurepowershell.ps1",
+ "platforms": [
+ "windows"
+ ]
+ },
+ "Node16": {
+ "target": "azurepowershell.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "azurepowershell.js",
+ "argumentFormat": ""
+ }
},
- "Node10": {
- "target": "azurepowershell.js",
- "argumentFormat": ""
+ "messages": {
+ "GeneratingScript": "Generating script.",
+ "JS_FormattedCommand": "Formatted command: %s",
+ "InvalidScriptArguments0": "Invalid script arguments '{0}'. Line breaks are not allowed.",
+ "InvalidScriptPath0": "Invalid script path '{0}'. Invalid path characters specified.",
+ "InvalidAzurePsVersion": "The Azure PowerShell version '{0}' specified is not in the correct format. Please check the format. An example of correct format is 1.0.1",
+ "JS_ExitCode": "PowerShell exited with code '%s'.",
+ "JS_Stderr": "PowerShell wrote one or more lines to the standard error stream.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
}
- },
- "messages": {
- "GeneratingScript": "Generating script.",
- "JS_FormattedCommand": "Formatted command: %s",
- "InvalidScriptArguments0": "Invalid script arguments '{0}'. Line breaks are not allowed.",
- "InvalidScriptPath0": "Invalid script path '{0}'. Invalid path characters specified.",
- "InvalidAzurePsVersion": "The Azure PowerShell version '{0}' specified is not in the correct format. Please check the format. An example of correct format is 1.0.1",
- "JS_ExitCode": "PowerShell exited with code '%s'.",
- "JS_Stderr": "PowerShell wrote one or more lines to the standard error stream.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzurePowerShellV4/task.loc.json b/Tasks/AzurePowerShellV4/task.loc.json
index cfd67b1642c9..5e082b411126 100644
--- a/Tasks/AzurePowerShellV4/task.loc.json
+++ b/Tasks/AzurePowerShellV4/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 4,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/AzurePowerShellV5/task.json b/Tasks/AzurePowerShellV5/task.json
index 06fee82675c3..7ccb78a405bf 100644
--- a/Tasks/AzurePowerShellV5/task.json
+++ b/Tasks/AzurePowerShellV5/task.json
@@ -1,206 +1,206 @@
{
- "id": "72A1931B-EFFB-4D2E-8FD8-F8472A07CB62",
- "name": "AzurePowerShell",
- "friendlyName": "Azure PowerShell",
- "description": "Run a PowerShell script within an Azure environment",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613749)",
- "helpUrl": "https://aka.ms/azurepowershelltroubleshooting",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 5,
- "Minor": 248,
- "Patch": 2
- },
- "releaseNotes": "Added support for Az Module and cross platform agents.",
- "groups": [
- {
- "name": "AzurePowerShellVersionOptions",
- "displayName": "Azure PowerShell version options",
- "isExpanded": true
+ "id": "72A1931B-EFFB-4D2E-8FD8-F8472A07CB62",
+ "name": "AzurePowerShell",
+ "friendlyName": "Azure PowerShell",
+ "description": "Run a PowerShell script within an Azure environment",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613749)",
+ "helpUrl": "https://aka.ms/azurepowershelltroubleshooting",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 5,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": false
- }
- ],
- "minimumAgentVersion": "2.115.0",
- "inputs": [
- {
- "name": "ConnectedServiceNameARM",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Azure Resource Manager subscription to configure before running PowerShell",
- "properties": {
- "EndpointFilterRule": "ScopeLevel != AzureMLWorkspace"
- }
- },
- {
- "name": "ScriptType",
- "type": "radio",
- "label": "Script Type",
- "required": false,
- "helpMarkDown": "Type of the script: File Path or Inline Script",
- "defaultValue": "FilePath",
- "options": {
- "FilePath": "Script File Path",
- "InlineScript": "Inline Script"
- }
- },
- {
- "name": "ScriptPath",
- "type": "filePath",
- "label": "Script Path",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Path of the script. Should be fully qualified path or relative to the default working directory.",
- "visibleRule": "ScriptType = FilePath"
- },
- {
- "name": "Inline",
- "type": "multiLine",
- "label": "Inline Script",
- "required": false,
- "defaultValue": "# You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments",
- "helpMarkDown": "Enter the script to execute.",
- "visibleRule": "ScriptType = InlineScript",
- "properties": {
- "resizable": "true",
- "rows": "10",
- "maxLength": "5000"
- }
- },
- {
- "name": "ScriptArguments",
- "type": "string",
- "label": "Script Arguments",
- "defaultValue": "",
- "visibleRule": "ScriptType = FilePath",
- "required": false,
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- },
- "helpMarkDown": "Additional parameters to pass to PowerShell. Can be either ordinal or named parameters."
- },
- {
- "name": "errorActionPreference",
- "type": "pickList",
- "label": "ErrorActionPreference",
- "required": false,
- "defaultValue": "stop",
- "options": {
- "stop": "Stop",
- "continue": "Continue",
- "silentlyContinue": "SilentlyContinue"
- },
- "helpMarkDown": "Select the value of the ErrorActionPreference variable for executing the script."
- },
- {
- "name": "FailOnStandardError",
- "type": "boolean",
- "label": "Fail on Standard Error",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, this task will fail if any errors are written to the error pipeline, or if any data is written to the Standard Error stream."
- },
- {
- "name": "TargetAzurePs",
- "aliases": [
- "azurePowerShellVersion"
- ],
- "type": "radio",
- "label": "Azure PowerShell Version",
- "defaultValue": "OtherVersion",
- "required": false,
- "options": {
- "LatestVersion": "Latest installed version",
- "OtherVersion": "Specify other version"
- },
- "groupName": "AzurePowerShellVersionOptions",
- "helpMarkDown": "In case of hosted agents, the supported Azure PowerShell Version is: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0 (Hosted VS2017 Queue).\nTo pick the latest version available on the agent, select \"Latest installed version\".\n\nFor private agents you can specify preferred version of Azure PowerShell using \"Specify version\""
- },
- {
- "name": "CustomTargetAzurePs",
- "aliases": [
- "preferredAzurePowerShellVersion"
- ],
- "type": "string",
- "label": "Preferred Azure PowerShell Version",
- "defaultValue": "",
- "required": true,
- "visibleRule": "TargetAzurePs = OtherVersion",
- "groupName": "AzurePowerShellVersionOptions",
- "helpMarkDown": "Preferred Azure PowerShell Version needs to be a proper semantic version eg. 1.2.3. Regex like 2.\\*,2.3.\\* is not supported. The Hosted VS2017 Pool currently supports Az module version: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0"
- },
- {
- "name": "pwsh",
- "type": "boolean",
- "label": "Use PowerShell Core",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, then on Windows the task will use pwsh.exe from your PATH instead of powershell.exe.",
- "groupName": "advanced"
- },
- {
- "name": "validateScriptSignature",
- "type": "boolean",
- "label": "Validate script signature",
- "required": false,
- "defaultValue": "false",
- "helpMarkDown": "If this is true, then the task will first check to make sure specified script is signed and valid before executing it.",
- "groupName": "advanced",
- "visibleRule": "ScriptType = FilePath"
- },
- {
- "name": "workingDirectory",
- "type": "filePath",
- "label": "Working Directory",
- "required": false,
- "defaultValue": "",
- "helpMarkDown": "Working directory where the script is run.",
- "groupName": "advanced"
- }
- ],
- "instanceNameFormat": "Azure PowerShell script: $(ScriptType)",
- "execution": {
- "PowerShell3": {
- "target": "azurepowershell.ps1",
- "platforms": [
- "windows"
- ]
- },
- "Node16": {
- "target": "azurepowershell.js",
- "argumentFormat": ""
+ "releaseNotes": "Added support for Az Module and cross platform agents.",
+ "groups": [
+ {
+ "name": "AzurePowerShellVersionOptions",
+ "displayName": "Azure PowerShell version options",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "minimumAgentVersion": "2.115.0",
+ "inputs": [
+ {
+ "name": "ConnectedServiceNameARM",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Azure Resource Manager subscription to configure before running PowerShell",
+ "properties": {
+ "EndpointFilterRule": "ScopeLevel != AzureMLWorkspace"
+ }
+ },
+ {
+ "name": "ScriptType",
+ "type": "radio",
+ "label": "Script Type",
+ "required": false,
+ "helpMarkDown": "Type of the script: File Path or Inline Script",
+ "defaultValue": "FilePath",
+ "options": {
+ "FilePath": "Script File Path",
+ "InlineScript": "Inline Script"
+ }
+ },
+ {
+ "name": "ScriptPath",
+ "type": "filePath",
+ "label": "Script Path",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Path of the script. Should be fully qualified path or relative to the default working directory.",
+ "visibleRule": "ScriptType = FilePath"
+ },
+ {
+ "name": "Inline",
+ "type": "multiLine",
+ "label": "Inline Script",
+ "required": false,
+ "defaultValue": "# You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments",
+ "helpMarkDown": "Enter the script to execute.",
+ "visibleRule": "ScriptType = InlineScript",
+ "properties": {
+ "resizable": "true",
+ "rows": "10",
+ "maxLength": "5000"
+ }
+ },
+ {
+ "name": "ScriptArguments",
+ "type": "string",
+ "label": "Script Arguments",
+ "defaultValue": "",
+ "visibleRule": "ScriptType = FilePath",
+ "required": false,
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ },
+ "helpMarkDown": "Additional parameters to pass to PowerShell. Can be either ordinal or named parameters."
+ },
+ {
+ "name": "errorActionPreference",
+ "type": "pickList",
+ "label": "ErrorActionPreference",
+ "required": false,
+ "defaultValue": "stop",
+ "options": {
+ "stop": "Stop",
+ "continue": "Continue",
+ "silentlyContinue": "SilentlyContinue"
+ },
+ "helpMarkDown": "Select the value of the ErrorActionPreference variable for executing the script."
+ },
+ {
+ "name": "FailOnStandardError",
+ "type": "boolean",
+ "label": "Fail on Standard Error",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, this task will fail if any errors are written to the error pipeline, or if any data is written to the Standard Error stream."
+ },
+ {
+ "name": "TargetAzurePs",
+ "aliases": [
+ "azurePowerShellVersion"
+ ],
+ "type": "radio",
+ "label": "Azure PowerShell Version",
+ "defaultValue": "OtherVersion",
+ "required": false,
+ "options": {
+ "LatestVersion": "Latest installed version",
+ "OtherVersion": "Specify other version"
+ },
+ "groupName": "AzurePowerShellVersionOptions",
+ "helpMarkDown": "In case of hosted agents, the supported Azure PowerShell Version is: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0 (Hosted VS2017 Queue).\nTo pick the latest version available on the agent, select \"Latest installed version\".\n\nFor private agents you can specify preferred version of Azure PowerShell using \"Specify version\""
+ },
+ {
+ "name": "CustomTargetAzurePs",
+ "aliases": [
+ "preferredAzurePowerShellVersion"
+ ],
+ "type": "string",
+ "label": "Preferred Azure PowerShell Version",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "TargetAzurePs = OtherVersion",
+ "groupName": "AzurePowerShellVersionOptions",
+ "helpMarkDown": "Preferred Azure PowerShell Version needs to be a proper semantic version eg. 1.2.3. Regex like 2.\\*,2.3.\\* is not supported. The Hosted VS2017 Pool currently supports Az module version: 1.0.0, 1.6.0, 2.3.2, 2.6.0, 3.1.0"
+ },
+ {
+ "name": "pwsh",
+ "type": "boolean",
+ "label": "Use PowerShell Core",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, then on Windows the task will use pwsh.exe from your PATH instead of powershell.exe.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "validateScriptSignature",
+ "type": "boolean",
+ "label": "Validate script signature",
+ "required": false,
+ "defaultValue": "false",
+ "helpMarkDown": "If this is true, then the task will first check to make sure specified script is signed and valid before executing it.",
+ "groupName": "advanced",
+ "visibleRule": "ScriptType = FilePath"
+ },
+ {
+ "name": "workingDirectory",
+ "type": "filePath",
+ "label": "Working Directory",
+ "required": false,
+ "defaultValue": "",
+ "helpMarkDown": "Working directory where the script is run.",
+ "groupName": "advanced"
+ }
+ ],
+ "instanceNameFormat": "Azure PowerShell script: $(ScriptType)",
+ "execution": {
+ "PowerShell3": {
+ "target": "azurepowershell.ps1",
+ "platforms": [
+ "windows"
+ ]
+ },
+ "Node16": {
+ "target": "azurepowershell.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "azurepowershell.js",
+ "argumentFormat": ""
+ }
},
- "Node10": {
- "target": "azurepowershell.js",
- "argumentFormat": ""
+ "messages": {
+ "GeneratingScript": "Generating script.",
+ "JS_FormattedCommand": "Formatted command: %s",
+ "InvalidScriptArguments0": "Invalid script arguments '{0}'. Line breaks are not allowed.",
+ "InvalidScriptPath0": "Invalid script path '{0}'. Invalid path characters specified.",
+ "InvalidAzurePsVersion": "The Azure PowerShell version '{0}' specified is not in the correct format. Please check the format. An example of correct format is 1.0.1",
+ "JS_ExitCode": "PowerShell exited with code '%s'.",
+ "JS_Stderr": "PowerShell wrote one or more lines to the standard error stream.",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
+ "PS_ExitCode": "PowerShell exited with code '{0}'."
}
- },
- "messages": {
- "GeneratingScript": "Generating script.",
- "JS_FormattedCommand": "Formatted command: %s",
- "InvalidScriptArguments0": "Invalid script arguments '{0}'. Line breaks are not allowed.",
- "InvalidScriptPath0": "Invalid script path '{0}'. Invalid path characters specified.",
- "InvalidAzurePsVersion": "The Azure PowerShell version '{0}' specified is not in the correct format. Please check the format. An example of correct format is 1.0.1",
- "JS_ExitCode": "PowerShell exited with code '%s'.",
- "JS_Stderr": "PowerShell wrote one or more lines to the standard error stream.",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.",
- "PS_ExitCode": "PowerShell exited with code '{0}'."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzurePowerShellV5/task.loc.json b/Tasks/AzurePowerShellV5/task.loc.json
index b730a02ddc23..add6df504600 100644
--- a/Tasks/AzurePowerShellV5/task.loc.json
+++ b/Tasks/AzurePowerShellV5/task.loc.json
@@ -17,8 +17,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 5,
- "Minor": 248,
- "Patch": 2
+ "Minor": 250,
+ "Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
"groups": [
diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson
index 2f96ea365584..4afe6c38aa52 100644
--- a/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson
@@ -8,7 +8,7 @@
"loc.group.displayName.Template": "Modello",
"loc.group.displayName.Advanced": "Avanzate",
"loc.input.label.deploymentScope": "Ambito di distribuzione",
- "loc.input.help.deploymentScope": "Ambito di distribuzione della distribuzione. Per altre informazioni sugli ambiti di distribuzione, vedere questo [collegamento] (https://docs.microsoft.com/it-it/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)",
+ "loc.input.help.deploymentScope": "Deployment scope of the deployment. To know more abour deployment scopes, refer this [link](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)",
"loc.input.label.ConnectedServiceName": "Connessione ad Azure Resource Manager",
"loc.input.help.ConnectedServiceName": "Selezionare la connessione al servizio Azure Resource Manager con accesso all'ambito di distribuzione selezionato.",
"loc.input.label.subscriptionName": "Sottoscrizione",
diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json
index 3237cad78691..4e90f2fd7845 100644
--- a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json
+++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json
@@ -1,342 +1,342 @@
{
- "id": "94A74903-F93F-4075-884F-DC11F34058B4",
- "name": "AzureResourceManagerTemplateDeployment",
- "friendlyName": "ARM template deployment",
- "description": "Deploy an Azure Resource Manager (ARM) template to all the deployment scopes",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)",
- "category": "Deploy",
- "releaseNotes": "- Added support for bicepparam.",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 3,
- "Minor": 247,
- "Patch": 4
- },
- "demands": [],
- "minimumAgentVersion": "2.119.1",
- "groups": [
- {
- "name": "AzureDetails",
- "displayName": "Azure Details",
- "isExpanded": true
+ "id": "94A74903-F93F-4075-884F-DC11F34058B4",
+ "name": "AzureResourceManagerTemplateDeployment",
+ "friendlyName": "ARM template deployment",
+ "description": "Deploy an Azure Resource Manager (ARM) template to all the deployment scopes",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)",
+ "category": "Deploy",
+ "releaseNotes": "- Added support for bicepparam.",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 3,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "Template",
- "displayName": "Template",
- "isExpanded": true,
- "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group"
+ "demands": [],
+ "minimumAgentVersion": "2.119.1",
+ "groups": [
+ {
+ "name": "AzureDetails",
+ "displayName": "Azure Details",
+ "isExpanded": true
+ },
+ {
+ "name": "Template",
+ "displayName": "Template",
+ "isExpanded": true,
+ "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group"
+ },
+ {
+ "name": "Advanced",
+ "displayName": "Advanced",
+ "isExpanded": true,
+ "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group"
+ }
+ ],
+ "inputs": [
+ {
+ "name": "deploymentScope",
+ "type": "pickList",
+ "label": "Deployment scope",
+ "defaultValue": "Resource Group",
+ "required": "true",
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Deployment scope of the deployment. To know more abour deployment scopes, refer this [link](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)",
+ "options": {
+ "Management Group": "Management Group",
+ "Subscription": "Subscription",
+ "Resource Group": "Resource Group"
+ }
+ },
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureResourceManagerConnection"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Resource Manager connection",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Select the Azure Resource Manager service connection having access to the selected deployment scope.",
+ "properties": {
+ "EndpointFilterRule": "ScopeLevel >= deploymentScope"
+ }
+ },
+ {
+ "name": "subscriptionName",
+ "aliases": [
+ "subscriptionId"
+ ],
+ "type": "pickList",
+ "label": "Subscription",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Select the Azure subscription",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "deploymentScope != Management Group"
+ },
+ {
+ "name": "action",
+ "type": "pickList",
+ "label": "Action",
+ "defaultValue": "Create Or Update Resource Group",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Action to be performed on the Azure resources or resource group.",
+ "options": {
+ "Create Or Update Resource Group": "Create or update resource group",
+ "DeleteRG": "Delete resource group"
+ },
+ "visibleRule": "deploymentScope = Resource Group"
+ },
+ {
+ "name": "resourceGroupName",
+ "type": "pickList",
+ "label": "Resource group",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Provide the name of a resource group.",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "deploymentScope = Resource Group"
+ },
+ {
+ "name": "location",
+ "type": "pickList",
+ "label": "Location",
+ "required": true,
+ "helpMarkDown": "For Resource Group deployment scope: Location for deploying the resource group. If the resource group already exists in the subscription, then this value will be ignored.\n For other deployment scope: Location to store deployment metadata.",
+ "groupName": "AzureDetails",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group"
+ },
+ {
+ "name": "templateLocation",
+ "type": "pickList",
+ "label": "Template location",
+ "required": true,
+ "defaultValue": "Linked artifact",
+ "groupName": "Template",
+ "options": {
+ "Linked artifact": "Linked artifact",
+ "URL of the file": "URL of the file"
+ }
+ },
+ {
+ "name": "csmFileLink",
+ "type": "string",
+ "label": "Template link",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "Template",
+ "helpMarkDown": "Specify the URL of the template file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nTo deploy a template stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a template file (or a linked template) to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911).\n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.",
+ "visibleRule": "templateLocation = URL of the file"
+ },
+ {
+ "name": "csmParametersFileLink",
+ "type": "string",
+ "label": "Template parameters link",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "Template",
+ "helpMarkDown": "Specify the URL of the parameters file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nTo use a file stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a parameters file to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). \n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.",
+ "visibleRule": " templateLocation = URL of the file"
+ },
+ {
+ "name": "csmFile",
+ "type": "filePath",
+ "label": "Template",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "Template",
+ "visibleRule": " templateLocation = Linked artifact",
+ "helpMarkDown": "Specify the path or a pattern pointing to the Azure Resource Manager template. For more information about the templates see https://aka.ms/azuretemplates. To get started immediately use template https://aka.ms/sampletemplate. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0"
+ },
+ {
+ "name": "csmParametersFile",
+ "type": "filePath",
+ "label": "Template parameters",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "Template",
+ "helpMarkDown": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0",
+ "visibleRule": " templateLocation = Linked artifact"
+ },
+ {
+ "name": "overrideParameters",
+ "type": "multiLine",
+ "label": "Override template parameters",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "Template",
+ "helpMarkDown": "To view the template parameters in a grid, click on “…” next to Override Parameters textbox. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. Or type the template parameters to override in the textbox. Example, –storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre). If the parameter value you're using has multiple words, enclose them in quotes, even if you're passing them using variables. For example, -name \"parameter value\" -name2 \"$(var)\" To override object type parameters use stringified JSON objects. For example, -options [\"option1\"] -map {\"key1\": \"value1\" }. ",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.azurerg-parameters-grid"
+ }
+ },
+ {
+ "name": "deploymentMode",
+ "type": "pickList",
+ "label": "Deployment mode",
+ "defaultValue": "Incremental",
+ "required": true,
+ "groupName": "Template",
+ "helpMarkDown": "Refer to [this](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes) for more details. \n\n Incremental mode handles deployments as incremental updates to the resource group. It leaves unchanged resources that exist in the resource group but are not specified in the template. \n\n Complete mode deletes resources that are not in your template. Complete mode takes relatively more time than incremental mode. If the task times out, consider increasing the timeout, or changing the mode to 'Incremental'. \n **[Warning] Complete mode will delete all the existing resources in the resource group that are not specified in the template. Do review if the resource group you're deploying to doesn't contain any necessary resources that are not specified in the template.** \n\n Validate mode enables you to find problems with the template before creating actual resources. Validate mode enables you to find problems with the template before creating actual resources. Please note that this mode will anyways create a resource group even if it does not deploy any resource.\n\n By default, Incremental mode is used.",
+ "options": {
+ "Incremental": "Incremental",
+ "Complete": "Complete",
+ "Validation": "Validation only"
+ }
+ },
+ {
+ "name": "deploymentName",
+ "type": "string",
+ "label": "Deployment name",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "Advanced",
+ "helpMarkDown": "Specifies the name of the resource group deployment to create."
+ },
+ {
+ "name": "deploymentOutputs",
+ "type": "string",
+ "label": "Deployment outputs",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "Advanced",
+ "helpMarkDown": "Provide a name for the variable for the output variable which will contain the outputs section of the current deployment object in string format. You can use the “ConvertFrom-Json” PowerShell cmdlet to parse the JSON object and access the individual output values. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)"
+ },
+ {
+ "name": "addSpnToEnvironment",
+ "type": "boolean",
+ "label": "Access service principal details in override parameters",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Adds service principal id and key of the Azure endpoint you chose to the script's execution environment. You can use these variables: `$servicePrincipalId` and `$servicePrincipalKey` in your override parameters like `-key $servicePrincipalKey`",
+ "groupName": "Advanced"
+ },
+ {
+ "name": "useWithoutJSON",
+ "type": "boolean",
+ "label": "Use individual output values without JSON.Stringify applied",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Individual output values are being converted via JSON.Stringify by default. If you want to use the output values as it is without converting them via JSON.Stringify, enable this option. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)",
+ "groupName": "Advanced"
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "subscriptionName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureSubscriptions",
+ "resultTemplate": "{ \"Value\" : \"{{{subscriptionId}}}\", \"DisplayValue\" : \"{{{displayName}}} ({{{subscriptionId}}})\" }"
+ },
+ {
+ "target": "resourceGroupName",
+ "endpointId": "$(ConnectedServiceName)",
+ "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{subscriptionId}}}/resourcegroups?$skiptoken={{{skiptoken}}}&api-version=2016-02-01",
+ "callbackContextTemplate": "{\"skiptoken\": \"{{#getTokenValue response.nextLink}}{{extractUrlQueryParameter %24skiptoken}}{{/getTokenValue}}\"}",
+ "callbackRequiredTemplate": "{{isTokenPresent response.nextLink}}",
+ "initialContextTemplate": "{\"skiptoken\": \"\"}",
+ "resultSelector": "jsonpath:$.value[*].name",
+ "parameters": {
+ "subscriptionId": "$(subscriptionName)"
+ }
+ },
+ {
+ "target": "location",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureLocationsByDeploymentScope",
+ "parameters": {
+ "subscriptionId": "$(subscriptionName)",
+ "deploymentScope": "$(deploymentScope)"
+ }
+ }
+ ],
+ "instanceNameFormat": "ARM Template deployment: $(deploymentScope) scope",
+ "execution": {
+ "Node16": {
+ "target": "main.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "main.js"
+ }
},
- {
- "name": "Advanced",
- "displayName": "Advanced",
- "isExpanded": true,
- "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group"
+ "messages": {
+ "CheckResourceGroupExistence": "Checking if the following resource group exists: %s.",
+ "ResourceGroupStatusFetchFailed": "Failed to check the resource group status. Error: %s.",
+ "ResourceGroupStatus": "Resource group exists: %s.",
+ "ResourceGroupCreationFailed": "Failed to create the resource group. Error: %s",
+ "CreatingNewRG": "Creating resource Group: %s",
+ "CreatedRG": "Resource Group created successfully.",
+ "CreatingTemplateDeployment": "Creating deployment parameters.",
+ "TemplateParsingFailed": "Ensure the Template file ( '%s' ) is valid. Task failed while parsing with following error: %s",
+ "FileFetchFailed": "Failed to download the file. URL: '%s'. Error: %s",
+ "ParametersFileParsingFailed": "Ensure the Parameters file ( '%s' ) is valid. Task failed while parsing with following error: %s",
+ "StartingDeployment": "Starting Deployment.",
+ "CreateTemplateDeploymentSucceeded": "Successfully deployed the template.",
+ "CreateTemplateDeploymentFailed": "Task failed while creating or updating the template deployment.",
+ "ErrorsInYourDeployment": "There were errors in your deployment. Error code: %s.",
+ "Details": "Details:",
+ "ErrorType": "Error Type:",
+ "PolicyDefinitionName": "Policy Definition Name :",
+ "PolicyAssignmentName": "Policy Assignment Name :",
+ "StartingValidation": "Starting template validation.",
+ "ValidDeployment": "Template deployment validation was completed successfully.",
+ "CreateTemplateDeploymentValidationFailed": "Template validation failed. Error: %s.",
+ "DeletingResourceGroup": "Deleting resource group: %s",
+ "CouldNotDeletedResourceGroup": "Could not delete resource group: '%s'. Operation failed with error: %s",
+ "DeletedResourceGroup": "Deleted resource group: %s",
+ "InvalidAction": "This action is not defined. Check with the task author.",
+ "ARGD_ConstructorFailed": "Task failed while initializing. Error: %s",
+ "InvalidTemplateLocation": "The template location supplied is invalid. Task only supports 'Linked artifact' or 'URL of the file'",
+ "EncodingNotSupported": "Encoding of the file '%s' is '%s' which is not supported. Supported file encodings are ['utf-8', 'utf-16le']",
+ "CouldNotDetectEncoding": "Could not detect encoding of file '%s'",
+ "DetectedFileEncoding": "The detected encoding for file '%s' is '%s'",
+ "ErrorWhileParsingParameter": "There was an error while overriding '%s' parameter because of '%s', make sure it follows JavaScript Object Notation (JSON)",
+ "TemplateFilePatternMatchingMoreThanOneFile": "Found multiple files matching template file pattern: %s",
+ "TemplateParameterFilePatternMatchingMoreThanOneFile": "Found multiple files matching template parameters file pattern: %s",
+ "TemplateFilePatternMatchingNoFile": "Could not find any file matching the template file pattern",
+ "TemplateParameterFilePatternMatchingNoFile": "Could not find any file matching the template file pattern",
+ "ParametersPatternMatchesADirectoryInsteadOfAFile": "Parameters file pattern matches a directory instead of a file.",
+ "CsmFilePatternMatchesADirectoryInsteadOfAFile": "Template file pattern matches a directory instead of a file: %s",
+ "AddedOutputVariable": "Updated output variable '%s', which contains the outputs section of the current deployment object in string format.",
+ "UnableToReadResponseBody": "Unable to read response body. Error: %s",
+ "MoreInformationOnAzurePortal": "More information on Azure Portal",
+ "LogDeploymentName": "Deployment name is %s",
+ "ResourceGroupNameNotProvided": "Resource Group name should be provided",
+ "LocationNotProvided": "Location is required for deployment",
+ "ARMServiceConnectionScope": "ARM Service Connection deployment scope - %s",
+ "ServicePrincipalRoleAssignmentDetails": "Please make sure the Service Principal with name %s is assigned the right roles for the entity %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal",
+ "ServicePrincipalFetchFailed": "Error while fetching Service Principal details: %s",
+ "FindMoreDeploymentDetailsAzurePortal": "Task successfully created an Azure Resource Manager deployment, but the deployment failed. Please see more detailed Azure resource manager deployment logs at: (Please Copy-Paste the link) %s",
+ "ManagedServiceIdentityDetails": "Please make sure the Managed Service Identity used for deployment is assigned the right roles for the Resource Group %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal",
+ "CompleteDeploymentModeNotSupported": "Deployment mode 'Complete' is not supported for deployment at '%s' scope",
+ "TemplateValidationFailure": "Validation errors were found in the Azure Resource Manager template. This can potentially cause template deployment to fail. %s. Please follow https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax",
+ "TroubleshootingGuide": "Check out the troubleshooting guide to see if your issue is addressed: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting",
+ "IncompatibleAzureCLIVersion": "Azure CLI version should be >= 2.20.0",
+ "AzureCLINotFound": "Azure CLI not found on the agent.",
+ "FailedToFetchAzureCLIVersion": "Failed to fetch az cli version from agent. Error: %s",
+ "BicepBuildFailed": "\"az bicep build\" failed. Error: %s",
+ "BicepFileCleanupFailed": "Failed to delete Bicep file. Error: %s",
+ "LoginFailed": "Azure login failed: %s",
+ "MSILoginFailed": "Azure login failed using Managed Service Identity: %s",
+ "AuthSchemeNotSupported": "Auth Scheme %s is not supported",
+ "ErrorInSettingUpSubscription": "Error in setting up subscription: %s",
+ "BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s",
+ "IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file"
}
- ],
- "inputs": [
- {
- "name": "deploymentScope",
- "type": "pickList",
- "label": "Deployment scope",
- "defaultValue": "Resource Group",
- "required": "true",
- "groupName": "AzureDetails",
- "helpMarkDown": "Deployment scope of the deployment. To know more abour deployment scopes, refer this [link](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)",
- "options": {
- "Management Group": "Management Group",
- "Subscription": "Subscription",
- "Resource Group": "Resource Group"
- }
- },
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureResourceManagerConnection"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Resource Manager connection",
- "defaultValue": "",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Select the Azure Resource Manager service connection having access to the selected deployment scope.",
- "properties": {
- "EndpointFilterRule": "ScopeLevel >= deploymentScope"
- }
- },
- {
- "name": "subscriptionName",
- "aliases": [
- "subscriptionId"
- ],
- "type": "pickList",
- "label": "Subscription",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Select the Azure subscription",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "deploymentScope != Management Group"
- },
- {
- "name": "action",
- "type": "pickList",
- "label": "Action",
- "defaultValue": "Create Or Update Resource Group",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Action to be performed on the Azure resources or resource group.",
- "options": {
- "Create Or Update Resource Group": "Create or update resource group",
- "DeleteRG": "Delete resource group"
- },
- "visibleRule": "deploymentScope = Resource Group"
- },
- {
- "name": "resourceGroupName",
- "type": "pickList",
- "label": "Resource group",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Provide the name of a resource group.",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "deploymentScope = Resource Group"
- },
- {
- "name": "location",
- "type": "pickList",
- "label": "Location",
- "required": true,
- "helpMarkDown": "For Resource Group deployment scope: Location for deploying the resource group. If the resource group already exists in the subscription, then this value will be ignored.\n For other deployment scope: Location to store deployment metadata.",
- "groupName": "AzureDetails",
- "properties": {
- "EditableOptions": "True"
- },
- "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group"
- },
- {
- "name": "templateLocation",
- "type": "pickList",
- "label": "Template location",
- "required": true,
- "defaultValue": "Linked artifact",
- "groupName": "Template",
- "options": {
- "Linked artifact": "Linked artifact",
- "URL of the file": "URL of the file"
- }
- },
- {
- "name": "csmFileLink",
- "type": "string",
- "label": "Template link",
- "defaultValue": "",
- "required": true,
- "groupName": "Template",
- "helpMarkDown": "Specify the URL of the template file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nTo deploy a template stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a template file (or a linked template) to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911).\n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.",
- "visibleRule": "templateLocation = URL of the file"
- },
- {
- "name": "csmParametersFileLink",
- "type": "string",
- "label": "Template parameters link",
- "defaultValue": "",
- "required": false,
- "groupName": "Template",
- "helpMarkDown": "Specify the URL of the parameters file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nTo use a file stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a parameters file to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). \n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.",
- "visibleRule": " templateLocation = URL of the file"
- },
- {
- "name": "csmFile",
- "type": "filePath",
- "label": "Template",
- "defaultValue": "",
- "required": true,
- "groupName": "Template",
- "visibleRule": " templateLocation = Linked artifact",
- "helpMarkDown": "Specify the path or a pattern pointing to the Azure Resource Manager template. For more information about the templates see https://aka.ms/azuretemplates. To get started immediately use template https://aka.ms/sampletemplate. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0"
- },
- {
- "name": "csmParametersFile",
- "type": "filePath",
- "label": "Template parameters",
- "defaultValue": "",
- "required": false,
- "groupName": "Template",
- "helpMarkDown": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0",
- "visibleRule": " templateLocation = Linked artifact"
- },
- {
- "name": "overrideParameters",
- "type": "multiLine",
- "label": "Override template parameters",
- "defaultValue": "",
- "required": false,
- "groupName": "Template",
- "helpMarkDown": "To view the template parameters in a grid, click on “…” next to Override Parameters textbox. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. Or type the template parameters to override in the textbox. Example, –storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre). If the parameter value you're using has multiple words, enclose them in quotes, even if you're passing them using variables. For example, -name \"parameter value\" -name2 \"$(var)\" To override object type parameters use stringified JSON objects. For example, -options [\"option1\"] -map {\"key1\": \"value1\" }. ",
- "properties": {
- "editorExtension": "ms.vss-services-azure.azurerg-parameters-grid"
- }
- },
- {
- "name": "deploymentMode",
- "type": "pickList",
- "label": "Deployment mode",
- "defaultValue": "Incremental",
- "required": true,
- "groupName": "Template",
- "helpMarkDown": "Refer to [this](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes) for more details. \n\n Incremental mode handles deployments as incremental updates to the resource group. It leaves unchanged resources that exist in the resource group but are not specified in the template. \n\n Complete mode deletes resources that are not in your template. Complete mode takes relatively more time than incremental mode. If the task times out, consider increasing the timeout, or changing the mode to 'Incremental'. \n **[Warning] Complete mode will delete all the existing resources in the resource group that are not specified in the template. Do review if the resource group you're deploying to doesn't contain any necessary resources that are not specified in the template.** \n\n Validate mode enables you to find problems with the template before creating actual resources. Validate mode enables you to find problems with the template before creating actual resources. Please note that this mode will anyways create a resource group even if it does not deploy any resource.\n\n By default, Incremental mode is used.",
- "options": {
- "Incremental": "Incremental",
- "Complete": "Complete",
- "Validation": "Validation only"
- }
- },
- {
- "name": "deploymentName",
- "type": "string",
- "label": "Deployment name",
- "defaultValue": "",
- "required": false,
- "groupName": "Advanced",
- "helpMarkDown": "Specifies the name of the resource group deployment to create."
- },
- {
- "name": "deploymentOutputs",
- "type": "string",
- "label": "Deployment outputs",
- "required": false,
- "defaultValue": "",
- "groupName": "Advanced",
- "helpMarkDown": "Provide a name for the variable for the output variable which will contain the outputs section of the current deployment object in string format. You can use the “ConvertFrom-Json” PowerShell cmdlet to parse the JSON object and access the individual output values. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)"
- },
- {
- "name": "addSpnToEnvironment",
- "type": "boolean",
- "label": "Access service principal details in override parameters",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Adds service principal id and key of the Azure endpoint you chose to the script's execution environment. You can use these variables: `$servicePrincipalId` and `$servicePrincipalKey` in your override parameters like `-key $servicePrincipalKey`",
- "groupName": "Advanced"
- },
- {
- "name": "useWithoutJSON",
- "type": "boolean",
- "label": "Use individual output values without JSON.Stringify applied",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Individual output values are being converted via JSON.Stringify by default. If you want to use the output values as it is without converting them via JSON.Stringify, enable this option. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)",
- "groupName": "Advanced"
- }
- ],
- "dataSourceBindings": [
- {
- "target": "subscriptionName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureSubscriptions",
- "resultTemplate": "{ \"Value\" : \"{{{subscriptionId}}}\", \"DisplayValue\" : \"{{{displayName}}} ({{{subscriptionId}}})\" }"
- },
- {
- "target": "resourceGroupName",
- "endpointId": "$(ConnectedServiceName)",
- "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{subscriptionId}}}/resourcegroups?$skiptoken={{{skiptoken}}}&api-version=2016-02-01",
- "callbackContextTemplate": "{\"skiptoken\": \"{{#getTokenValue response.nextLink}}{{extractUrlQueryParameter %24skiptoken}}{{/getTokenValue}}\"}",
- "callbackRequiredTemplate": "{{isTokenPresent response.nextLink}}",
- "initialContextTemplate": "{\"skiptoken\": \"\"}",
- "resultSelector": "jsonpath:$.value[*].name",
- "parameters": {
- "subscriptionId": "$(subscriptionName)"
- }
- },
- {
- "target": "location",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureLocationsByDeploymentScope",
- "parameters": {
- "subscriptionId": "$(subscriptionName)",
- "deploymentScope": "$(deploymentScope)"
- }
- }
- ],
- "instanceNameFormat": "ARM Template deployment: $(deploymentScope) scope",
- "execution": {
- "Node16": {
- "target": "main.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "main.js"
- }
- },
- "messages": {
- "CheckResourceGroupExistence": "Checking if the following resource group exists: %s.",
- "ResourceGroupStatusFetchFailed": "Failed to check the resource group status. Error: %s.",
- "ResourceGroupStatus": "Resource group exists: %s.",
- "ResourceGroupCreationFailed": "Failed to create the resource group. Error: %s",
- "CreatingNewRG": "Creating resource Group: %s",
- "CreatedRG": "Resource Group created successfully.",
- "CreatingTemplateDeployment": "Creating deployment parameters.",
- "TemplateParsingFailed": "Ensure the Template file ( '%s' ) is valid. Task failed while parsing with following error: %s",
- "FileFetchFailed": "Failed to download the file. URL: '%s'. Error: %s",
- "ParametersFileParsingFailed": "Ensure the Parameters file ( '%s' ) is valid. Task failed while parsing with following error: %s",
- "StartingDeployment": "Starting Deployment.",
- "CreateTemplateDeploymentSucceeded": "Successfully deployed the template.",
- "CreateTemplateDeploymentFailed": "Task failed while creating or updating the template deployment.",
- "ErrorsInYourDeployment": "There were errors in your deployment. Error code: %s.",
- "Details": "Details:",
- "ErrorType": "Error Type:",
- "PolicyDefinitionName": "Policy Definition Name :",
- "PolicyAssignmentName": "Policy Assignment Name :",
- "StartingValidation": "Starting template validation.",
- "ValidDeployment": "Template deployment validation was completed successfully.",
- "CreateTemplateDeploymentValidationFailed": "Template validation failed. Error: %s.",
- "DeletingResourceGroup": "Deleting resource group: %s",
- "CouldNotDeletedResourceGroup": "Could not delete resource group: '%s'. Operation failed with error: %s",
- "DeletedResourceGroup": "Deleted resource group: %s",
- "InvalidAction": "This action is not defined. Check with the task author.",
- "ARGD_ConstructorFailed": "Task failed while initializing. Error: %s",
- "InvalidTemplateLocation": "The template location supplied is invalid. Task only supports 'Linked artifact' or 'URL of the file'",
- "EncodingNotSupported": "Encoding of the file '%s' is '%s' which is not supported. Supported file encodings are ['utf-8', 'utf-16le']",
- "CouldNotDetectEncoding": "Could not detect encoding of file '%s'",
- "DetectedFileEncoding": "The detected encoding for file '%s' is '%s'",
- "ErrorWhileParsingParameter": "There was an error while overriding '%s' parameter because of '%s', make sure it follows JavaScript Object Notation (JSON)",
- "TemplateFilePatternMatchingMoreThanOneFile": "Found multiple files matching template file pattern: %s",
- "TemplateParameterFilePatternMatchingMoreThanOneFile": "Found multiple files matching template parameters file pattern: %s",
- "TemplateFilePatternMatchingNoFile": "Could not find any file matching the template file pattern",
- "TemplateParameterFilePatternMatchingNoFile": "Could not find any file matching the template file pattern",
- "ParametersPatternMatchesADirectoryInsteadOfAFile": "Parameters file pattern matches a directory instead of a file.",
- "CsmFilePatternMatchesADirectoryInsteadOfAFile": "Template file pattern matches a directory instead of a file: %s",
- "AddedOutputVariable": "Updated output variable '%s', which contains the outputs section of the current deployment object in string format.",
- "UnableToReadResponseBody": "Unable to read response body. Error: %s",
- "MoreInformationOnAzurePortal": "More information on Azure Portal",
- "LogDeploymentName": "Deployment name is %s",
- "ResourceGroupNameNotProvided": "Resource Group name should be provided",
- "LocationNotProvided": "Location is required for deployment",
- "ARMServiceConnectionScope": "ARM Service Connection deployment scope - %s",
- "ServicePrincipalRoleAssignmentDetails": "Please make sure the Service Principal with name %s is assigned the right roles for the entity %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal",
- "ServicePrincipalFetchFailed": "Error while fetching Service Principal details: %s",
- "FindMoreDeploymentDetailsAzurePortal": "Task successfully created an Azure Resource Manager deployment, but the deployment failed. Please see more detailed Azure resource manager deployment logs at: (Please Copy-Paste the link) %s",
- "ManagedServiceIdentityDetails": "Please make sure the Managed Service Identity used for deployment is assigned the right roles for the Resource Group %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal",
- "CompleteDeploymentModeNotSupported": "Deployment mode 'Complete' is not supported for deployment at '%s' scope",
- "TemplateValidationFailure": "Validation errors were found in the Azure Resource Manager template. This can potentially cause template deployment to fail. %s. Please follow https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax",
- "TroubleshootingGuide": "Check out the troubleshooting guide to see if your issue is addressed: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting",
- "IncompatibleAzureCLIVersion": "Azure CLI version should be >= 2.20.0",
- "AzureCLINotFound": "Azure CLI not found on the agent.",
- "FailedToFetchAzureCLIVersion": "Failed to fetch az cli version from agent. Error: %s",
- "BicepBuildFailed": "\"az bicep build\" failed. Error: %s",
- "BicepFileCleanupFailed": "Failed to delete Bicep file. Error: %s",
- "LoginFailed": "Azure login failed: %s",
- "MSILoginFailed": "Azure login failed using Managed Service Identity: %s",
- "AuthSchemeNotSupported": "Auth Scheme %s is not supported",
- "ErrorInSettingUpSubscription": "Error in setting up subscription: %s",
- "BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s",
- "IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file"
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json
index df10bb5084cd..0249619e2450 100644
--- a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json
+++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json
@@ -14,8 +14,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 247,
- "Patch": 4
+ "Minor": 250,
+ "Patch": 0
},
"demands": [],
"minimumAgentVersion": "2.119.1",
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson
index 92395f92d547..adce348df8e0 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson
@@ -80,7 +80,7 @@
"loc.input.label.ExcludeFilesFromAppDataFlag": "Dateien aus dem Ordner \"App_Data\" ausschließen",
"loc.input.help.ExcludeFilesFromAppDataFlag": "Wählen Sie diese Option aus, um zu verhindern, dass Dateien im Ordner \"App_Data\" in Azure App Service bereitgestellt oder gelöscht werden.",
"loc.input.label.AdditionalArguments": "Zusätzliche Argumente",
- "loc.input.help.AdditionalArguments": "Weitere Web Deploy-Argumente mit der Syntax \"-key:value\". Diese werden angewendet, wenn der Azure App Service bereitgestellt wird. Beispiel: -disableLink:AppPoolExtension -disableLink:ContentExtension. Weitere Beispiele für Einstellungen für den Web Deploy-Vorgang finden Sie [hier] (https://go.microsoft.com/fwlink/?linkid=838471).",
+ "loc.input.help.AdditionalArguments": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471).",
"loc.input.label.RenameFilesFlag": "Gesperrte Dateien umbenennen",
"loc.input.help.RenameFilesFlag": "Wählen Sie die Option aus, um das msdeploy-Flag MSDEPLOY_RENAME_LOCKED_FILES=1 in den Azure App Service-Anwendungseinstellungen zu aktivieren. Wenn diese Option festgelegt ist, kann \"msdeploy\" gesperrte Dateien umbenennen, die während der App-Bereitstellung gesperrt sind.",
"loc.input.label.XmlTransformation": "XML-Transformation",
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "Um ein Zertifikat in App Service zu verwenden, muss das Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert sein. Werden von Ihrer Web-App Zertifikatüberprüfungsfehler zurückgegeben, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat. Um den Fehler zu beheben, müssen Sie \"-allowUntrusted\" in zusätzlichen Argumenten der Web Deploy-Option übergeben.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Fehler beim Aktualisieren der Application Insights-Ressource \"%s\". Fehler: %s",
"loc.messages.JarNotSupported": "Die JAR-Bereitstellung wird in dieser Version nicht unterstützt. Ändern Sie die Aufgabenversion in \"4.*\", d. h. in den Vorschaumodus.",
- "loc.messages.CorrelationIdForARM": "Korrelations-ID aus ARM-API-Aufrufantwort: %s"
+ "loc.messages.CorrelationIdForARM": "Korrelations-ID aus ARM-API-Aufrufantwort: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service ist so konfiguriert, dass keine Standardauthentifizierung verwendet wird. Dies erfordert Web Deploy msdeploy.exe-Version 7.1.7225 oder höher. Sie benötigen eine Version von Visual Studio, die eine aktualisierte Version von \"msdeploy.exe\" enthält. Weitere Informationen finden Sie unter https://aka.ms/azdo-webapp-msdeploy ."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson
index 19de6ff35ca8..a7e56fcdfbe2 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson
@@ -80,7 +80,7 @@
"loc.input.label.ExcludeFilesFromAppDataFlag": "Excluir archivos de la carpeta App_Data",
"loc.input.help.ExcludeFilesFromAppDataFlag": "Seleccione esta opción para evitar que los archivos de la carpeta App_Data se implementen en Azure App Service o se eliminen de ese servicio.",
"loc.input.label.AdditionalArguments": "Argumentos adicionales",
- "loc.input.help.AdditionalArguments": "Argumentos adicionales de Web Deploy que siguen la sintaxis -clave:valor. Se aplicarán cuando se implemente la instancia de Azure App Service. Ejemplo: -disableLink:AppPoolExtension -disableLink:ContentExtension. Para más ejemplos de configuración de la operación de Web Deploy, consulte [aquí] (https://go.microsoft.com/fwlink/?linkid=838471).",
+ "loc.input.help.AdditionalArguments": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471).",
"loc.input.label.RenameFilesFlag": "Cambiar nombre de archivos bloqueados",
"loc.input.help.RenameFilesFlag": "Seleccione la opción para habilitar la marca de msdeploy MSDEPLOY_RENAME_LOCKED_FILES=1 en la configuración de la aplicación de Azure App Service. Si está establecida, la opción permite que msdeploy cambie el nombre de los archivos bloqueados que se bloquean durante la implementación de la aplicación",
"loc.input.label.XmlTransformation": "Transformación XML",
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "Para usar un certificado en App Service, debe haberlo firmado una entidad de certificación de confianza. Si la aplicación web genera errores de validación del certificado, es posible que esté usando un certificado autofirmado. Para resolverlo, debe pasar -allowUntrusted en argumentos adicionales de la opción de implementación web.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "No se pudo actualizar el recurso de Application Insights \"%s\". Error: %s",
"loc.messages.JarNotSupported": "La implementación de jar no se admite en esta versión. Cambie la versión de la tarea a \"4.*\", que se encuentra en modo de versión preliminar",
- "loc.messages.CorrelationIdForARM": "Identificador de correlación de la respuesta de llamada API de ARM: %s"
+ "loc.messages.CorrelationIdForARM": "Identificador de correlación de la respuesta de llamada API de ARM: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service está configurado para no usar la autenticación básica. Esto requiere la versión 7.1.7225 o una posterior de Web Deploy, msdeploy.exe. Necesita una versión de Visual Studio que incluya una versión actualizada de msdeploy.exe. Para obtener más información, visite https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson
index b29c8f4e17a7..c7393d9bb031 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "Pour utiliser un certificat dans App Service, celui-ci doit être signé par une autorité de certification de confiance. Si votre application web génère des erreurs de validation de certificat, cela signifie probablement que vous utilisez un certificat auto-signé. Pour résoudre ces erreurs, vous devez passer -allowUntrusted dans des arguments supplémentaires de l'option Web Deploy.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Échec de la mise à jour de la ressource Application Insights '%s'. Erreur : %s",
"loc.messages.JarNotSupported": "Le déploiement de jar n'est pas pris en charge dans cette version. Remplacez la version de la tâche par la version '4.*', qui est en préversion",
- "loc.messages.CorrelationIdForARM": "ID de corrélation de la réponse à l'appel d'API ARM : %s"
+ "loc.messages.CorrelationIdForARM": "ID de corrélation de la réponse à l'appel d'API ARM : %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service est configuré pour ne pas utiliser l’authentification de base. Cette opération nécessite Web Deploy msdeploy.exe version 7.1.7225 ou ultérieure. Vous avez besoin d’une version de Visual Studio qui inclut une version mise à jour de msdeploy.exe. Pour plus d’informations, visitez https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson
index a55b8075faf7..e9eec79e0d44 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "Per usare un certificato nel servizio app, il certificato deve essere firmato da un'autorità di certificazione attendibile. Se l'app Web restituisce errori di convalida del certificato, è possibile che si stia usando un certificato autofirmato. Per risolvere gli errori, è necessario passare -allowUntrusted negli argomenti aggiuntivi dell'opzione di distribuzione Web.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Non è stato possibile aggiornare la risorsa '%s' di Application Insights. Errore: %s",
"loc.messages.JarNotSupported": "La distribuzione di file jar non è supportata in questa versione. Impostare la versione dell'attività su '4.*' che corrisponde alla modalità anteprima",
- "loc.messages.CorrelationIdForARM": "ID correlazione della risposta alla chiamata API ARM: %s"
+ "loc.messages.CorrelationIdForARM": "ID correlazione della risposta alla chiamata API ARM: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "Servizio app è configurato per non usare l'autenticazione di base. Richiede Distribuzione Web msdeploy.exe versione 7.1.7225 o successiva. È necessaria una versione di Visual Studio che includa una versione aggiornata di msdeploy.exe. Per altre informazioni, visitare https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson
index 4d11b5db8f7f..3c6b0f948062 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "App Service で証明書を使用するには、証明書が信頼された証明機関によって署名されている必要があります。Web アプリで証明書の検証エラーが出る場合は、自己署名証明書を使用している可能性があります。これを解決するには、Web 配置オプションの追加引数に -allowUntrusted を渡す必要があります。",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Application Insights '%s' リソースを更新できませんでした。エラー: %s",
"loc.messages.JarNotSupported": "Jar 配置はこのバージョンではサポートされていません。タスク バージョンをプレビュー モードの '4.*' に変更します",
- "loc.messages.CorrelationIdForARM": "ARM API 呼び出しの応答からの関連付け ID: %s"
+ "loc.messages.CorrelationIdForARM": "ARM API 呼び出しの応答からの関連付け ID: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service は基本認証を使用しないように構成されています。これには、バージョン 7.1.7225 以降の Web 配置 msdeploy.exe が必要です。更新されたバージョンの msdeploy.exe を含む Visual Studio のバージョンが必要です。詳細については、https://aka.ms/azdo-webapp-msdeploy を参照してください。"
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson
index 7316d951a832..8b2c501bcbce 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "App Service에서 인증서를 사용하려면 신뢰할 수 있는 인증 기관에서 인증서에 서명해야 합니다. 웹앱에서 인증서 유효성 검사 오류가 발생하는 경우 자체 서명된 인증서를 사용하는 것 같으며, 오류를 해결하려면 웹 배포 옵션의 추가 인수에 -allowUntrusted를 전달해야 합니다.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Application Insights '%s' 리소스를 업데이트하지 못했습니다. 오류: %s",
"loc.messages.JarNotSupported": "Jar 배포는 이 버전에서 지원되지 않습니다. 작업 버전을 미리 보기 모드인 '4.*'로 변경하세요.",
- "loc.messages.CorrelationIdForARM": "ARM API 호출 응답의 상관 관계 ID: %s"
+ "loc.messages.CorrelationIdForARM": "ARM API 호출 응답의 상관 관계 ID: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service가 기본 인증을 사용하지 않도록 구성되어 있습니다. 이를 위해서는 웹 배포 msdeploy.exe 버전 7.1.7225 이상이 필요합니다. 업데이트된 버전의 msdeploy.exe를 포함하는 Visual Studio 버전이 필요합니다. 자세한 내용은 https://aka.ms/azdo-webapp-msdeploy를 참조하세요."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson
index 11181b7527bf..100e210753c2 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "Чтобы использовать сертификат в службе приложений, сертификат должен быть подписан доверенным центром сертификации. Если в веб-приложении появляются ошибки проверки сертификата, возможно, вы используете самозаверяющий сертификат и для устранения этих ошибок необходимо передать -allowUntrusted в дополнительных аргументах параметра веб-развертывания.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Не удалось обновить ресурс Application Insights \"%s\". Ошибка: %s",
"loc.messages.JarNotSupported": "Развертывание JAR не поддерживается в этой версии. Измените версию задачи на \"4.*\", которая является предварительной",
- "loc.messages.CorrelationIdForARM": "Идентификатор корреляции из ответа на вызов API ARM: %s"
+ "loc.messages.CorrelationIdForARM": "Идентификатор корреляции из ответа на вызов API ARM: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "Служба приложений настроена не использовать обычную проверку подлинности. Для этого требуется веб-развертывание msdeploy.exe версии 7.1.7225 или более поздней. Требуется версия Visual Studio, которая включает обновленную версию msdeploy.exe. Дополнительные сведения см. на странице https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson
index 665981a595a8..e7ad073e15e7 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "要在应用服务中使用某个证书,该证书必须由受信任的证书颁发机构签名。如果 Web 应用显示证书验证错误,则使用的可能是自签名证书,要解决验证问题,需要在 Web 部署选项的其他参数中传递 -allowUntrusted。",
"loc.messages.FailedToUpdateApplicationInsightsResource": "未能更新 Application Insights“%s”资源。错误: %s",
"loc.messages.JarNotSupported": "此版本不支持 Jar 部署。将任务版本更改为处于预览模式的 \"4.*\"",
- "loc.messages.CorrelationIdForARM": "来自 ARM API 调用响应的相关 ID: %s"
+ "loc.messages.CorrelationIdForARM": "来自 ARM API 调用响应的相关 ID: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "应用服务配置为不使用基本身份验证。这需要 Web 部署 msdeploy.exe 7.1.7225 或更高版本。需要包含 msdeploy.exe 更新版本的 Visual Studio 版本。有关详细信息,请访问 https://aka.ms/azdo-webapp-msdeploy。"
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson
index fe75b98bb582..d892f06ee425 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson
@@ -223,5 +223,6 @@
"loc.messages.ASE_WebDeploySSLIssueRecommendation": "若要在 App Service 中使用憑證,該憑證必須經過信任的憑證授權單位所簽署。若您的 Web 應用程式顯示憑證驗證錯誤,可能是您使用了自我簽署憑證。若要解決這些錯誤,您必須在 Web 部署選項的其他引數中傳遞 -allowUntrusted。",
"loc.messages.FailedToUpdateApplicationInsightsResource": "無法更新 Application Insights '%s' 資源。錯誤: %s",
"loc.messages.JarNotSupported": "此版本不支援 jar 部署。請將工作版本變更為處於預覽模式的 '4.*'",
- "loc.messages.CorrelationIdForARM": "來自 ARM api 呼叫回應的相互關聯識別碼: %s"
+ "loc.messages.CorrelationIdForARM": "來自 ARM api 呼叫回應的相互關聯識別碼: %s",
+ "loc.messages.MSDeployNotSupportTokenAuth": "已將 App Service 設為不使用基本驗證。這需要 Web Deploy msdeploy.exe 版本 7.1.7225 或更新版本。您需要包含 msdeploy.exe 已更新版本的 Visual Studio 版本。如需詳細資訊,請前往 https://aka.ms/azdo-webapp-msdeploy。"
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/task.json b/Tasks/AzureRmWebAppDeploymentV3/task.json
index a616e520a036..f02a57219c78 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/task.json
+++ b/Tasks/AzureRmWebAppDeploymentV3/task.json
@@ -1,773 +1,773 @@
{
- "id": "497D490F-EEA7-4F2B-AB94-48D9C1ACDCB1",
- "name": "AzureRmWebAppDeployment",
- "friendlyName": "Azure App Service deploy",
- "description": "Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby",
- "helpUrl": "https://aka.ms/azureappservicetroubleshooting",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurermwebdeployreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 3,
- "Minor": 247,
- "Patch": 0
- },
- "releaseNotes": "What's new in Version 3.0: Supports File Transformations (XDT) Supports Variable Substitutions(XML, JSON) Click [here](https://aka.ms/azurermwebdeployreadme) for more information.",
- "minimumAgentVersion": "2.104.1",
- "groups": [
- {
- "name": "FileTransformsAndVariableSubstitution",
- "displayName": "File Transforms & Variable Substitution Options",
- "isExpanded": false,
- "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\" && Package NotEndsWith .war"
- },
- {
- "name": "AdditionalDeploymentOptions",
- "displayName": "Additional Deployment Options",
- "isExpanded": false,
- "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\""
- },
- {
- "name": "PostDeploymentAction",
- "displayName": "Post Deployment Action",
- "isExpanded": false,
- "visibleRule": "WebAppKind != \"\""
- },
- {
- "name": "ApplicationAndConfigurationSettings",
- "displayName": "Application and Configuration Settings",
- "isExpanded": false
- },
- {
- "name": "output",
- "displayName": "Output",
- "isExpanded": true,
- "visibleRule": "WebAppKind != \"\""
- }
- ],
- "deprecated": true,
- "deprecationMessage": "The AzureRmWebAppDeployment@3 task is deprecated, please use a newer version of the AzureRmWebAppDeployment task to take advantage of latest features e.g. Workload identity federation (see https://aka.ms/azdo-rm-workload-identity-tasks)",
- "inputs": [
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment."
- },
- {
- "name": "WebAppKind",
- "aliases": [
- "appType"
- ],
- "type": "pickList",
- "label": "App type",
- "defaultValue": "app",
- "required": true,
- "options": {
- "app": "Web App",
- "applinux": "Linux Web App",
- "functionapp": "Function App (Not Recommended, Use Azure Functions Task)",
- "api": "API App",
- "mobileapp": "Mobile App"
- },
- "properties": {
- "EditableOptions": "true"
- },
- "helpMarkDown": "Select type of web app to deploy. Note: Select Linux Web App for built-in platform images or custom container image deployments."
- },
- {
- "name": "WebAppName",
- "type": "pickList",
- "label": "App Service name",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select the name of an existing Azure App Service. App services based on selected app type will only be listed."
- },
- {
- "name": "DeployToSlotFlag",
- "type": "boolean",
- "label": "Deploy to slot",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Select the option to deploy to an existing slot other than the Production slot. If this option is not selected, then the Azure App Service will be deployed to the Production slot.",
- "visibleRule": "WebAppKind != \"\""
- },
- {
- "name": "ResourceGroupName",
- "type": "pickList",
- "label": "Resource group",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select the Azure Resource group that contains the Azure App Service specified above.",
- "visibleRule": "DeployToSlotFlag = true"
- },
- {
- "name": "SlotName",
- "type": "pickList",
- "label": "Slot",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.",
- "visibleRule": "DeployToSlotFlag = true"
- },
- {
- "name": "ImageSource",
- "type": "pickList",
- "label": "Image Source",
- "defaultValue": "Registry",
- "options": {
- "Registry": "Container Registry",
- "Builtin": "Built-in Image"
- },
- "required": false,
- "properties": {
- "EditableOptions": "false",
- "PopulateDefaultValue": "true"
- },
- "helpMarkDown": "App Service on Linux offers two different options to publish your application Custom image deployment or App deployment with a built-in platform image. [Learn More](https://go.microsoft.com/fwlink/?linkid=862490)",
- "visibleRule": "WebAppKind = applinux || WebAppKind = linux"
- },
- {
- "name": "AzureContainerRegistry",
- "type": "pickList",
- "label": "Registry",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "A globally unique top-level domain name for your specific registry. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'.",
- "visibleRule": "ImageSource = AzureContainerRegistry"
- },
- {
- "name": "AzureContainerRegistryLoginServer",
- "type": "pickList",
- "label": "Registry Login Server Name",
- "defaultValue": "",
- "required": false,
- "properties": {
- "EditableOptions": "False",
- "PopulateDefaultValue": "True"
- },
- "helpMarkDown": "Enter or Select an Azure container registry login server name.",
- "visibleRule": "ImageSource = invalidimagesource"
- },
- {
- "name": "AzureContainerRegistryImage",
- "type": "pickList",
- "label": "Image",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'.",
- "visibleRule": "ImageSource = AzureContainerRegistry"
- },
- {
- "name": "AzureContainerRegistryTag",
- "type": "pickList",
- "label": "Tag",
- "defaultValue": "",
- "required": false,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'.",
- "visibleRule": "ImageSource = AzureContainerRegistry"
- },
- {
- "name": "DockerRepositoryAccess",
- "type": "radio",
- "label": "Repository Access",
- "required": true,
- "options": {
- "private": "Private",
- "public": "Public"
- },
- "defaultValue": "public",
- "helpMarkDown": "Select the Docker repository access.",
- "visibleRule": "ImageSource = invalidImage"
- },
- {
- "name": "RegistryConnectedServiceName",
- "aliases": [
- "dockerRegistryConnection"
- ],
- "type": "connectedService:dockerregistry",
- "label": "Registry Connection",
- "required": true,
- "defaultValue": "",
- "helpMarkDown": "Select the registry connection.",
- "visibleRule": "DockerRepositoryAccess = private || ImageSource = PrivateRegistry"
- },
- {
- "name": "PrivateRegistryImage",
- "type": "pickList",
- "label": "Image",
- "defaultValue": "",
- "required": true,
- "visibleRule": "ImageSource = PrivateRegistry",
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "PrivateRegistryTag",
- "type": "pickList",
- "label": "Tag",
- "defaultValue": "",
- "required": false,
- "visibleRule": "ImageSource = PrivateRegistry",
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "DockerNamespace",
- "type": "string",
- "label": "Registry or Namespace",
- "defaultValue": "",
- "required": true,
- "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registry",
- "helpMarkDown": "A globally unique top-level domain name for your specific registry or namespace. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "DockerRepository",
- "type": "string",
- "label": "Image",
- "defaultValue": "",
- "required": true,
- "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registry",
- "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "DockerImageTag",
- "type": "string",
- "label": "Tag",
- "defaultValue": "",
- "required": false,
- "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registry",
- "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "VirtualApplication",
- "type": "string",
- "label": "Virtual application",
- "defaultValue": "",
- "required": false,
- "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\"",
- "helpMarkDown": "Specify the name of the Virtual application that has been configured in the Azure portal. The option is not required for deployments to the App Service root."
- },
- {
- "name": "Package",
- "type": "filePath",
- "label": "Package or folder",
- "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
- "required": true,
- "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\"",
- "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://www.visualstudio.com/docs/build/define/variables) | [Release](https://www.visualstudio.com/docs/release/author-release-definition/understanding-tasks#predefvariables)), wild cards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
- },
- {
- "name": "BuiltinLinuxPackage",
- "aliases": [
- "packageForLinux"
- ],
- "type": "filePath",
- "label": "Package or folder",
- "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
- "required": true,
- "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtin",
- "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://www.visualstudio.com/docs/build/define/variables) | [Release](https://www.visualstudio.com/docs/release/author-release-definition/understanding-tasks#predefvariables)), wild cards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
- },
- {
- "name": "RuntimeStack",
- "type": "pickList",
- "label": "Runtime Stack",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Select the framework and version.",
- "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtin"
- },
- {
- "name": "StartupCommand",
- "type": "string",
- "label": "Startup command ",
- "defaultValue": "",
- "required": false,
- "visibleRule": "WebAppKind = applinux || WebAppKind = linux",
- "helpMarkDown": "Enter the start up command."
- },
- {
- "name": "WebAppUri",
- "type": "string",
- "label": "App Service URL",
- "required": false,
- "defaultValue": "",
- "groupName": "output",
- "helpMarkDown": "Specify a name for the output variable that is generated for the URL of the Azure App Service. The variable can be consumed in subsequent tasks."
- },
- {
- "name": "ScriptType",
- "type": "pickList",
- "label": "Deployment script type",
- "defaultValue": "",
- "options": {
- "": "Select deployment script type (inline or file)",
- "Inline Script": "Inline Script",
- "File Path": "Script File Path"
- },
- "groupName": "PostDeploymentAction",
- "helpMarkDown": "Customize the deployment by providing a script that will run on the Azure App service once the task has completed the deployment successfully . For example restore packages for Node, PHP, Python applications. [Learn more](https://go.microsoft.com/fwlink/?linkid=843471)."
- },
- {
- "name": "InlineScript",
- "type": "multiLine",
- "label": "Inline Script",
- "defaultValue": ":: You can provide your deployment commands here. One command per line.",
- "groupName": "PostDeploymentAction",
- "required": true,
- "visibleRule": "ScriptType == Inline Script",
- "properties": {
- "resizable": "true",
- "rows": "10",
- "maxLength": "500"
- }
- },
- {
- "name": "ScriptPath",
- "type": "filePath",
- "label": "Deployment script path",
- "required": true,
- "groupName": "PostDeploymentAction",
- "visibleRule": "ScriptType == File Path"
- },
- {
- "name": "GenerateWebConfig",
- "type": "boolean",
- "label": "Generate Web.config",
- "defaultValue": "false",
- "required": false,
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "A standard Web.config will be generated and deployed to Azure App Service if the application does not have one. The values in web.config can be edited and vary based on the application framework. For example for node.js application, web.config will have startup file and iis_node module values. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469)."
- },
- {
- "name": "WebConfigParameters",
- "type": "multiLine",
- "label": "Web.config parameters",
- "required": true,
- "defaultValue": "",
- "visibleRule": "GenerateWebConfig == true",
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "Edit values like startup file in the generated web.config file. This edit feature is only for the generated web.config. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469).",
- "properties": {
- "editorExtension": "ms.vss-services-azure.webconfig-parameters-grid"
- }
- },
- {
- "name": "AppSettings",
- "type": "multiLine",
- "label": "App settings",
- "defaultValue": "",
- "required": false,
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes. Example : -Port 5000 -RequestTimeout 5000 -WEBSITE_TIME_ZONE \"Eastern Standard Time\"",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "ConfigurationSettings",
- "type": "multiLine",
- "label": "Configuration settings",
- "defaultValue": "",
- "required": false,
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "Edit web app configuration settings following the syntax -key value. Value containing spaces should be enclosed in double quotes. Example : -phpVersion 5.6 -linuxFxVersion: node|6.11",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "TakeAppOfflineFlag",
- "type": "boolean",
- "label": "Take App Offline",
- "defaultValue": "false",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "helpMarkDown": "Select the option to take the Azure App Service offline by placing an app_offline.htm file in the root directory of the App Service before the sync operation begins. The file will be removed after the sync operation completes successfully."
- },
- {
- "name": "UseWebDeploy",
- "type": "boolean",
- "label": "Publish using Web Deploy",
- "required": false,
- "defaultValue": "false",
- "groupName": "AdditionalDeploymentOptions",
- "helpMarkDown": "Publish using Web Deploy options are supported only when using Windows agent. On other platforms, the task relies on [Kudu REST APIs](https://github.com/projectkudu/kudu/wiki/REST-API) to deploy the Azure App Service, and following options are not supported"
- },
- {
- "name": "SetParametersFile",
- "type": "filePath",
- "label": "SetParameters file",
- "defaultValue": "",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true",
- "helpMarkDown": "Optional: location of the SetParameters.xml file to use."
- },
- {
- "name": "RemoveAdditionalFilesFlag",
- "type": "boolean",
- "label": "Remove additional files at destination",
- "defaultValue": "false",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true",
- "helpMarkDown": "Select the option to delete files on the Azure App Service that have no matching files in the App Service package or folder.
Note: This will also remove all files related to any extension installed on this Azure App Service. To prevent this, select 'Exclude files from App_Data folder' checkbox. "
- },
- {
- "name": "ExcludeFilesFromAppDataFlag",
- "type": "boolean",
- "label": "Exclude files from the App_Data folder",
- "defaultValue": "false",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true",
- "helpMarkDown": "Select the option to prevent files in the App_Data folder from being deployed to/ deleted from the Azure App Service."
- },
- {
- "name": "AdditionalArguments",
- "type": "string",
- "label": "Additional arguments",
- "required": false,
- "defaultValue": "",
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true",
- "helpMarkDown": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471)."
- },
- {
- "name": "RenameFilesFlag",
- "type": "boolean",
- "label": "Rename locked files",
- "defaultValue": "false",
- "required": false,
- "visibleRule": "UseWebDeploy == true",
- "groupName": "AdditionalDeploymentOptions",
- "helpMarkDown": "Select the option to enable msdeploy flag MSDEPLOY_RENAME_LOCKED_FILES=1 in Azure App Service application settings. The option if set enables msdeploy to rename locked files that are locked during app deployment"
- },
- {
- "name": "XmlTransformation",
- "aliases": [
- "enableXmlTransform"
- ],
- "type": "boolean",
- "label": "XML transformation",
- "required": false,
- "defaultValue": false,
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "The config transforms will be run for `*.Release.config` and `*..config` on the `*.config file`. Config transforms will be run prior to the Variable Substitution. XML transformations are supported only for Windows platform."
- },
- {
- "name": "XmlVariableSubstitution",
- "aliases": [
- "enableXmlVariableSubstitution"
- ],
- "type": "boolean",
- "label": "XML variable substitution",
- "required": false,
- "defaultValue": false,
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "Variables defined in the build or release pipeline will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after config transforms.
Note: If same variables are defined in the release pipeline and in the Environment, then the Environment variables will supersede the release pipeline variables. "
- },
- {
- "name": "JSONFiles",
- "type": "multiLine",
- "label": "JSON variable substitution",
- "required": false,
- "defaultValue": "",
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "Provide new line separated list of JSON files to substitute the variable values. Files names are to be provided relative to the root folder. To substitute JSON variables that are nested or hierarchical, specify them using JSONPath expressions.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build/release pipeline (or release pipeline’s environment). { \"Data\": { \"DefaultConnection\": { \"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\" } } } Variable Substitution is run after configuration transforms.
Note: pipeline variables are excluded in substitution."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "WebAppName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppNamesByType",
- "parameters": {
- "WebAppKind": "$(WebAppKind)"
- }
- },
- {
- "target": "ResourceGroupName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppResourceGroup",
- "parameters": {
- "WebAppName": "$(WebAppName)"
- }
- },
- {
- "target": "SlotName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppSlotsId",
- "parameters": {
- "WebAppName": "$(WebAppName)",
- "ResourceGroupName": "$(ResourceGroupName)"
- },
- "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}"
- },
- {
- "target": "AzureContainerRegistry",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMContainerRegistries",
- "resultTemplate": "{\"Value\":\"{{{ name }}}\",\"DisplayValue\":\"{{{ name }}}\"}"
- },
- {
- "target": "AzureContainerRegistryLoginServer",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureContainerRegistryLoginServer",
- "parameters": {
- "AzureContainerRegistry": "$(AzureContainerRegistry)"
- },
- "resultTemplate": "{\"Value\":\"{{{ #stringReplace '.azurecr.io' '' loginServer }}}\",\"DisplayValue\":\"{{{ #stringReplace '.azurecr.io' '' loginServer }}}\"}"
- },
- {
- "target": "AzureContainerRegistryImage",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureContainerRegistryImages",
- "parameters": {
- "AzureContainerRegistryLoginServer": "$(AzureContainerRegistryLoginServer)"
- }
- },
- {
- "target": "AzureContainerRegistryTag",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureContainerRegistryTags",
- "parameters": {
- "AzureContainerRegistryLoginServer": "$(AzureContainerRegistryLoginServer)",
- "AzureContainerRegistryImage": "$(AzureContainerRegistryImage)"
- }
- },
- {
- "target": "DockerNamespace",
- "endpointId": "$(RegistryConnectedServiceName)",
- "dataSourceName": "Namespaces"
- },
- {
- "target": "DockerRepository",
- "endpointId": "$(RegistryConnectedServiceName)",
- "dataSourceName": "Repos",
- "parameters": {
- "namespaces": "$(DockerNamespace)"
- }
- },
- {
- "target": "DockerImageTag",
- "endpointId": "$(RegistryConnectedServiceName)",
- "dataSourceName": "Tags",
- "parameters": {
- "DockerNamespace": "$(DockerNamespace)",
- "DockerRepository": "$(DockerRepository)"
- }
- },
- {
- "target": "PrivateRegistryImage",
- "endpointId": "$(RegistryConnectedServiceName)",
- "endpointUrl": "{{endpoint.url}}v2/_catalog",
- "resultSelector": "jsonpath:$.repositories[*]",
- "authorizationHeader": "Basic {{ #base64 endpoint.username \":\" endpoint.password }}"
- },
- {
- "target": "PrivateRegistryTag",
- "endpointId": "$(RegistryConnectedServiceName)",
- "endpointUrl": "{{endpoint.url}}v2/$(PrivateRegistryImage)/tags/list",
- "resultSelector": "jsonpath:$.tags[*]",
- "authorizationHeader": "Basic {{ #base64 endpoint.username \":\" endpoint.password }}"
- },
- {
- "target": "RuntimeStack",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppRuntimeStacksByOsType",
- "parameters": {
- "osTypeSelected": "Linux"
- },
- "resultTemplate": "{\"Value\":\"{{{ runtimeVersion }}}\",\"DisplayValue\":\"{{{ displayVersion }}}\"}"
- }
- ],
- "instanceNameFormat": "Azure App Service Deploy: $(WebAppName)",
- "execution": {
- "Node16": {
- "target": "azurermwebappdeployment.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "azurermwebappdeployment.js"
+ "id": "497D490F-EEA7-4F2B-AB94-48D9C1ACDCB1",
+ "name": "AzureRmWebAppDeployment",
+ "friendlyName": "Azure App Service deploy",
+ "description": "Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby",
+ "helpUrl": "https://aka.ms/azureappservicetroubleshooting",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurermwebdeployreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 3,
+ "Minor": 250,
+ "Patch": 0
+ },
+ "releaseNotes": "What's new in Version 3.0: Supports File Transformations (XDT) Supports Variable Substitutions(XML, JSON) Click [here](https://aka.ms/azurermwebdeployreadme) for more information.",
+ "minimumAgentVersion": "2.104.1",
+ "groups": [
+ {
+ "name": "FileTransformsAndVariableSubstitution",
+ "displayName": "File Transforms & Variable Substitution Options",
+ "isExpanded": false,
+ "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\" && Package NotEndsWith .war"
+ },
+ {
+ "name": "AdditionalDeploymentOptions",
+ "displayName": "Additional Deployment Options",
+ "isExpanded": false,
+ "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\""
+ },
+ {
+ "name": "PostDeploymentAction",
+ "displayName": "Post Deployment Action",
+ "isExpanded": false,
+ "visibleRule": "WebAppKind != \"\""
+ },
+ {
+ "name": "ApplicationAndConfigurationSettings",
+ "displayName": "Application and Configuration Settings",
+ "isExpanded": false
+ },
+ {
+ "name": "output",
+ "displayName": "Output",
+ "isExpanded": true,
+ "visibleRule": "WebAppKind != \"\""
+ }
+ ],
+ "deprecated": true,
+ "deprecationMessage": "The AzureRmWebAppDeployment@3 task is deprecated, please use a newer version of the AzureRmWebAppDeployment task to take advantage of latest features e.g. Workload identity federation (see https://aka.ms/azdo-rm-workload-identity-tasks)",
+ "inputs": [
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment."
+ },
+ {
+ "name": "WebAppKind",
+ "aliases": [
+ "appType"
+ ],
+ "type": "pickList",
+ "label": "App type",
+ "defaultValue": "app",
+ "required": true,
+ "options": {
+ "app": "Web App",
+ "applinux": "Linux Web App",
+ "functionapp": "Function App (Not Recommended, Use Azure Functions Task)",
+ "api": "API App",
+ "mobileapp": "Mobile App"
+ },
+ "properties": {
+ "EditableOptions": "true"
+ },
+ "helpMarkDown": "Select type of web app to deploy. Note: Select Linux Web App for built-in platform images or custom container image deployments."
+ },
+ {
+ "name": "WebAppName",
+ "type": "pickList",
+ "label": "App Service name",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select the name of an existing Azure App Service. App services based on selected app type will only be listed."
+ },
+ {
+ "name": "DeployToSlotFlag",
+ "type": "boolean",
+ "label": "Deploy to slot",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Select the option to deploy to an existing slot other than the Production slot. If this option is not selected, then the Azure App Service will be deployed to the Production slot.",
+ "visibleRule": "WebAppKind != \"\""
+ },
+ {
+ "name": "ResourceGroupName",
+ "type": "pickList",
+ "label": "Resource group",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select the Azure Resource group that contains the Azure App Service specified above.",
+ "visibleRule": "DeployToSlotFlag = true"
+ },
+ {
+ "name": "SlotName",
+ "type": "pickList",
+ "label": "Slot",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.",
+ "visibleRule": "DeployToSlotFlag = true"
+ },
+ {
+ "name": "ImageSource",
+ "type": "pickList",
+ "label": "Image Source",
+ "defaultValue": "Registry",
+ "options": {
+ "Registry": "Container Registry",
+ "Builtin": "Built-in Image"
+ },
+ "required": false,
+ "properties": {
+ "EditableOptions": "false",
+ "PopulateDefaultValue": "true"
+ },
+ "helpMarkDown": "App Service on Linux offers two different options to publish your application Custom image deployment or App deployment with a built-in platform image. [Learn More](https://go.microsoft.com/fwlink/?linkid=862490)",
+ "visibleRule": "WebAppKind = applinux || WebAppKind = linux"
+ },
+ {
+ "name": "AzureContainerRegistry",
+ "type": "pickList",
+ "label": "Registry",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "A globally unique top-level domain name for your specific registry. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'.",
+ "visibleRule": "ImageSource = AzureContainerRegistry"
+ },
+ {
+ "name": "AzureContainerRegistryLoginServer",
+ "type": "pickList",
+ "label": "Registry Login Server Name",
+ "defaultValue": "",
+ "required": false,
+ "properties": {
+ "EditableOptions": "False",
+ "PopulateDefaultValue": "True"
+ },
+ "helpMarkDown": "Enter or Select an Azure container registry login server name.",
+ "visibleRule": "ImageSource = invalidimagesource"
+ },
+ {
+ "name": "AzureContainerRegistryImage",
+ "type": "pickList",
+ "label": "Image",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'.",
+ "visibleRule": "ImageSource = AzureContainerRegistry"
+ },
+ {
+ "name": "AzureContainerRegistryTag",
+ "type": "pickList",
+ "label": "Tag",
+ "defaultValue": "",
+ "required": false,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'.",
+ "visibleRule": "ImageSource = AzureContainerRegistry"
+ },
+ {
+ "name": "DockerRepositoryAccess",
+ "type": "radio",
+ "label": "Repository Access",
+ "required": true,
+ "options": {
+ "private": "Private",
+ "public": "Public"
+ },
+ "defaultValue": "public",
+ "helpMarkDown": "Select the Docker repository access.",
+ "visibleRule": "ImageSource = invalidImage"
+ },
+ {
+ "name": "RegistryConnectedServiceName",
+ "aliases": [
+ "dockerRegistryConnection"
+ ],
+ "type": "connectedService:dockerregistry",
+ "label": "Registry Connection",
+ "required": true,
+ "defaultValue": "",
+ "helpMarkDown": "Select the registry connection.",
+ "visibleRule": "DockerRepositoryAccess = private || ImageSource = PrivateRegistry"
+ },
+ {
+ "name": "PrivateRegistryImage",
+ "type": "pickList",
+ "label": "Image",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "ImageSource = PrivateRegistry",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "PrivateRegistryTag",
+ "type": "pickList",
+ "label": "Tag",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "ImageSource = PrivateRegistry",
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "DockerNamespace",
+ "type": "string",
+ "label": "Registry or Namespace",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registry",
+ "helpMarkDown": "A globally unique top-level domain name for your specific registry or namespace. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "DockerRepository",
+ "type": "string",
+ "label": "Image",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registry",
+ "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "DockerImageTag",
+ "type": "string",
+ "label": "Tag",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registry",
+ "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "VirtualApplication",
+ "type": "string",
+ "label": "Virtual application",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\"",
+ "helpMarkDown": "Specify the name of the Virtual application that has been configured in the Azure portal. The option is not required for deployments to the App Service root."
+ },
+ {
+ "name": "Package",
+ "type": "filePath",
+ "label": "Package or folder",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
+ "required": true,
+ "visibleRule": "WebAppKind != linux && WebAppKind != applinux && WebAppKind != \"\"",
+ "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://www.visualstudio.com/docs/build/define/variables) | [Release](https://www.visualstudio.com/docs/release/author-release-definition/understanding-tasks#predefvariables)), wild cards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
+ },
+ {
+ "name": "BuiltinLinuxPackage",
+ "aliases": [
+ "packageForLinux"
+ ],
+ "type": "filePath",
+ "label": "Package or folder",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
+ "required": true,
+ "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtin",
+ "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://www.visualstudio.com/docs/build/define/variables) | [Release](https://www.visualstudio.com/docs/release/author-release-definition/understanding-tasks#predefvariables)), wild cards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
+ },
+ {
+ "name": "RuntimeStack",
+ "type": "pickList",
+ "label": "Runtime Stack",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Select the framework and version.",
+ "visibleRule": "WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtin"
+ },
+ {
+ "name": "StartupCommand",
+ "type": "string",
+ "label": "Startup command ",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "WebAppKind = applinux || WebAppKind = linux",
+ "helpMarkDown": "Enter the start up command."
+ },
+ {
+ "name": "WebAppUri",
+ "type": "string",
+ "label": "App Service URL",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "output",
+ "helpMarkDown": "Specify a name for the output variable that is generated for the URL of the Azure App Service. The variable can be consumed in subsequent tasks."
+ },
+ {
+ "name": "ScriptType",
+ "type": "pickList",
+ "label": "Deployment script type",
+ "defaultValue": "",
+ "options": {
+ "": "Select deployment script type (inline or file)",
+ "Inline Script": "Inline Script",
+ "File Path": "Script File Path"
+ },
+ "groupName": "PostDeploymentAction",
+ "helpMarkDown": "Customize the deployment by providing a script that will run on the Azure App service once the task has completed the deployment successfully . For example restore packages for Node, PHP, Python applications. [Learn more](https://go.microsoft.com/fwlink/?linkid=843471)."
+ },
+ {
+ "name": "InlineScript",
+ "type": "multiLine",
+ "label": "Inline Script",
+ "defaultValue": ":: You can provide your deployment commands here. One command per line.",
+ "groupName": "PostDeploymentAction",
+ "required": true,
+ "visibleRule": "ScriptType == Inline Script",
+ "properties": {
+ "resizable": "true",
+ "rows": "10",
+ "maxLength": "500"
+ }
+ },
+ {
+ "name": "ScriptPath",
+ "type": "filePath",
+ "label": "Deployment script path",
+ "required": true,
+ "groupName": "PostDeploymentAction",
+ "visibleRule": "ScriptType == File Path"
+ },
+ {
+ "name": "GenerateWebConfig",
+ "type": "boolean",
+ "label": "Generate Web.config",
+ "defaultValue": "false",
+ "required": false,
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "A standard Web.config will be generated and deployed to Azure App Service if the application does not have one. The values in web.config can be edited and vary based on the application framework. For example for node.js application, web.config will have startup file and iis_node module values. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469)."
+ },
+ {
+ "name": "WebConfigParameters",
+ "type": "multiLine",
+ "label": "Web.config parameters",
+ "required": true,
+ "defaultValue": "",
+ "visibleRule": "GenerateWebConfig == true",
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "Edit values like startup file in the generated web.config file. This edit feature is only for the generated web.config. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469).",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.webconfig-parameters-grid"
+ }
+ },
+ {
+ "name": "AppSettings",
+ "type": "multiLine",
+ "label": "App settings",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes. Example : -Port 5000 -RequestTimeout 5000 -WEBSITE_TIME_ZONE \"Eastern Standard Time\"",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "ConfigurationSettings",
+ "type": "multiLine",
+ "label": "Configuration settings",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "Edit web app configuration settings following the syntax -key value. Value containing spaces should be enclosed in double quotes. Example : -phpVersion 5.6 -linuxFxVersion: node|6.11",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "TakeAppOfflineFlag",
+ "type": "boolean",
+ "label": "Take App Offline",
+ "defaultValue": "false",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "helpMarkDown": "Select the option to take the Azure App Service offline by placing an app_offline.htm file in the root directory of the App Service before the sync operation begins. The file will be removed after the sync operation completes successfully."
+ },
+ {
+ "name": "UseWebDeploy",
+ "type": "boolean",
+ "label": "Publish using Web Deploy",
+ "required": false,
+ "defaultValue": "false",
+ "groupName": "AdditionalDeploymentOptions",
+ "helpMarkDown": "Publish using Web Deploy options are supported only when using Windows agent. On other platforms, the task relies on [Kudu REST APIs](https://github.com/projectkudu/kudu/wiki/REST-API) to deploy the Azure App Service, and following options are not supported"
+ },
+ {
+ "name": "SetParametersFile",
+ "type": "filePath",
+ "label": "SetParameters file",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true",
+ "helpMarkDown": "Optional: location of the SetParameters.xml file to use."
+ },
+ {
+ "name": "RemoveAdditionalFilesFlag",
+ "type": "boolean",
+ "label": "Remove additional files at destination",
+ "defaultValue": "false",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true",
+ "helpMarkDown": "Select the option to delete files on the Azure App Service that have no matching files in the App Service package or folder.
Note: This will also remove all files related to any extension installed on this Azure App Service. To prevent this, select 'Exclude files from App_Data folder' checkbox. "
+ },
+ {
+ "name": "ExcludeFilesFromAppDataFlag",
+ "type": "boolean",
+ "label": "Exclude files from the App_Data folder",
+ "defaultValue": "false",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true",
+ "helpMarkDown": "Select the option to prevent files in the App_Data folder from being deployed to/ deleted from the Azure App Service."
+ },
+ {
+ "name": "AdditionalArguments",
+ "type": "string",
+ "label": "Additional arguments",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true",
+ "helpMarkDown": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471)."
+ },
+ {
+ "name": "RenameFilesFlag",
+ "type": "boolean",
+ "label": "Rename locked files",
+ "defaultValue": "false",
+ "required": false,
+ "visibleRule": "UseWebDeploy == true",
+ "groupName": "AdditionalDeploymentOptions",
+ "helpMarkDown": "Select the option to enable msdeploy flag MSDEPLOY_RENAME_LOCKED_FILES=1 in Azure App Service application settings. The option if set enables msdeploy to rename locked files that are locked during app deployment"
+ },
+ {
+ "name": "XmlTransformation",
+ "aliases": [
+ "enableXmlTransform"
+ ],
+ "type": "boolean",
+ "label": "XML transformation",
+ "required": false,
+ "defaultValue": false,
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "The config transforms will be run for `*.Release.config` and `*..config` on the `*.config file`. Config transforms will be run prior to the Variable Substitution. XML transformations are supported only for Windows platform."
+ },
+ {
+ "name": "XmlVariableSubstitution",
+ "aliases": [
+ "enableXmlVariableSubstitution"
+ ],
+ "type": "boolean",
+ "label": "XML variable substitution",
+ "required": false,
+ "defaultValue": false,
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "Variables defined in the build or release pipeline will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after config transforms.
Note: If same variables are defined in the release pipeline and in the Environment, then the Environment variables will supersede the release pipeline variables. "
+ },
+ {
+ "name": "JSONFiles",
+ "type": "multiLine",
+ "label": "JSON variable substitution",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "Provide new line separated list of JSON files to substitute the variable values. Files names are to be provided relative to the root folder. To substitute JSON variables that are nested or hierarchical, specify them using JSONPath expressions.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build/release pipeline (or release pipeline’s environment). { \"Data\": { \"DefaultConnection\": { \"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\" } } } Variable Substitution is run after configuration transforms.
Note: pipeline variables are excluded in substitution."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "WebAppName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppNamesByType",
+ "parameters": {
+ "WebAppKind": "$(WebAppKind)"
+ }
+ },
+ {
+ "target": "ResourceGroupName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppResourceGroup",
+ "parameters": {
+ "WebAppName": "$(WebAppName)"
+ }
+ },
+ {
+ "target": "SlotName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppSlotsId",
+ "parameters": {
+ "WebAppName": "$(WebAppName)",
+ "ResourceGroupName": "$(ResourceGroupName)"
+ },
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}"
+ },
+ {
+ "target": "AzureContainerRegistry",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMContainerRegistries",
+ "resultTemplate": "{\"Value\":\"{{{ name }}}\",\"DisplayValue\":\"{{{ name }}}\"}"
+ },
+ {
+ "target": "AzureContainerRegistryLoginServer",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureContainerRegistryLoginServer",
+ "parameters": {
+ "AzureContainerRegistry": "$(AzureContainerRegistry)"
+ },
+ "resultTemplate": "{\"Value\":\"{{{ #stringReplace '.azurecr.io' '' loginServer }}}\",\"DisplayValue\":\"{{{ #stringReplace '.azurecr.io' '' loginServer }}}\"}"
+ },
+ {
+ "target": "AzureContainerRegistryImage",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureContainerRegistryImages",
+ "parameters": {
+ "AzureContainerRegistryLoginServer": "$(AzureContainerRegistryLoginServer)"
+ }
+ },
+ {
+ "target": "AzureContainerRegistryTag",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureContainerRegistryTags",
+ "parameters": {
+ "AzureContainerRegistryLoginServer": "$(AzureContainerRegistryLoginServer)",
+ "AzureContainerRegistryImage": "$(AzureContainerRegistryImage)"
+ }
+ },
+ {
+ "target": "DockerNamespace",
+ "endpointId": "$(RegistryConnectedServiceName)",
+ "dataSourceName": "Namespaces"
+ },
+ {
+ "target": "DockerRepository",
+ "endpointId": "$(RegistryConnectedServiceName)",
+ "dataSourceName": "Repos",
+ "parameters": {
+ "namespaces": "$(DockerNamespace)"
+ }
+ },
+ {
+ "target": "DockerImageTag",
+ "endpointId": "$(RegistryConnectedServiceName)",
+ "dataSourceName": "Tags",
+ "parameters": {
+ "DockerNamespace": "$(DockerNamespace)",
+ "DockerRepository": "$(DockerRepository)"
+ }
+ },
+ {
+ "target": "PrivateRegistryImage",
+ "endpointId": "$(RegistryConnectedServiceName)",
+ "endpointUrl": "{{endpoint.url}}v2/_catalog",
+ "resultSelector": "jsonpath:$.repositories[*]",
+ "authorizationHeader": "Basic {{ #base64 endpoint.username \":\" endpoint.password }}"
+ },
+ {
+ "target": "PrivateRegistryTag",
+ "endpointId": "$(RegistryConnectedServiceName)",
+ "endpointUrl": "{{endpoint.url}}v2/$(PrivateRegistryImage)/tags/list",
+ "resultSelector": "jsonpath:$.tags[*]",
+ "authorizationHeader": "Basic {{ #base64 endpoint.username \":\" endpoint.password }}"
+ },
+ {
+ "target": "RuntimeStack",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppRuntimeStacksByOsType",
+ "parameters": {
+ "osTypeSelected": "Linux"
+ },
+ "resultTemplate": "{\"Value\":\"{{{ runtimeVersion }}}\",\"DisplayValue\":\"{{{ displayVersion }}}\"}"
+ }
+ ],
+ "instanceNameFormat": "Azure App Service Deploy: $(WebAppName)",
+ "execution": {
+ "Node16": {
+ "target": "azurermwebappdeployment.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "azurermwebappdeployment.js"
+ }
+ },
+ "messages": {
+ "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
+ "SetParamFilenotfound0": "Set parameters file not found: %s",
+ "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
+ "GotconnectiondetailsforazureRMWebApp0": "Got connection details for Azure App Service:'%s'",
+ "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists",
+ "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve connection details for Azure App Service : %s. Status Code: %s (%s)",
+ "UnabletoretrieveResourceID": "Unable to retrieve connection details for Azure Resource:'%s'. Status Code: %s",
+ "CouldnotfetchaccesstokenforAzureStatusCode": "Could not fetch access token for Azure. Status Code: %s (%s)",
+ "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s",
+ "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s",
+ "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website",
+ "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'",
+ "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']",
+ "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'",
+ "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved",
+ "PackageDeploymentSuccess": "Successfully deployed web package to App Service.",
+ "PackageDeploymentFailed": "Failed to deploy web package to App Service.",
+ "Runningcommand": "Running command: %s",
+ "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)",
+ "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s",
+ "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s",
+ "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s",
+ "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.",
+ "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above",
+ "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)",
+ "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.",
+ "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.",
+ "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.",
+ "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.",
+ "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
+ "Configfiledoesntexists": "Configuration file %s doesn't exist.",
+ "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s",
+ "AppOfflineModeenabled": "App offline mode enabled.",
+ "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)",
+ "AppOflineModedisabled": "App offline mode disabled.",
+ "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)",
+ "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
+ "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
+ "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent",
+ "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.",
+ "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.",
+ "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.",
+ "ShortFileBufferError": "File buffer is too short to detect encoding type : %s",
+ "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s",
+ "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details",
+ "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s",
+ "Physicalpathalreadyexists": "Physical path '%s' already exists",
+ "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s",
+ "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s",
+ "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s",
+ "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s",
+ "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
+ "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
+ "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
+ "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s",
+ "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s",
+ "ExecuteScriptOnKudu": "Executing given script on Kudu service.",
+ "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s",
+ "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s",
+ "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.",
+ "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s",
+ "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s",
+ "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s",
+ "ScriptFileNotFound": "Script file '%s' not found.",
+ "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux",
+ "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.",
+ "stdoutFromScript": "Standard output from script: ",
+ "stderrFromScript": "Standard error from script: ",
+ "WebConfigAlreadyExists": "web.config file already exists. Not generating.",
+ "SuccessfullyGeneratedWebConfig": "Successfully generated web.config file",
+ "FailedToGenerateWebConfig": "Failed to generate web.config. %s",
+ "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)",
+ "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s",
+ "ScriptStatusTimeout": "Unable to fetch script status due to timeout.",
+ "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.",
+ "InvalidPollOption": "Invalid polling option provided: %s.",
+ "MissingAppTypeWebConfigParameters": "Attribute '-appType' is missing in the Web.config parameters. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask', 'node' and 'Go'. For example, '-appType python_Bottle' (sans-quotes) in case of Python Bottle framework..",
+ "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'",
+ "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
+ "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ",
+ "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.",
+ "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.",
+ "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'",
+ "UnableToFetchAuthorityURL": "Unable to fetch authority url.",
+ "UnableToFetchActiveDirectory": "Unable to fetch active directory resource id.",
+ "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.",
+ "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.",
+ "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.",
+ "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.",
+ "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s",
+ "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s",
+ "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentails.[Status Code: '%s']",
+ "UnableToReadResponseBody": "Unable to read response body. Error: %s",
+ "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'",
+ "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'",
+ "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s",
+ "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s",
+ "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.",
+ "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s",
+ "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destinaton' option or Stop continuous Jobs before deployment.",
+ "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s",
+ "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s",
+ "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s",
+ "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s",
+ "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s",
+ "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s",
+ "RetryToDeploy": "Retrying to deploy the package.",
+ "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s",
+ "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s",
+ "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s",
+ "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s",
+ "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s",
+ "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s",
+ "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s",
+ "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s",
+ "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s",
+ "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s",
+ "UpdatingAppServiceConfigurationSettings": "Updating App Service Configuration settings. Data: %s",
+ "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.",
+ "UpdatingAppServiceApplicationSettings": "Updating App Service Application settings. Data: %s",
+ "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.",
+ "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
+ "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
+ "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
+ "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
+ "GoExeNameNotPresent": "Go exe name is not present",
+ "WarDeploymentRetry": "Retrying war file deployment as it did not expand successfully earlier.",
+ "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.",
+ "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s",
+ "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
+ "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline",
+ "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.",
+ "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s",
+ "JarNotSupported": "Jar deployment is not supported in this version. Change the task version to '4.*' which is in preview mode",
+ "CorrelationIdForARM": "Correlation ID from ARM api call response : %s",
+ "MSDeployNotSupportTokenAuth": "App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy ."
}
- },
- "messages": {
- "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
- "SetParamFilenotfound0": "Set parameters file not found: %s",
- "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
- "GotconnectiondetailsforazureRMWebApp0": "Got connection details for Azure App Service:'%s'",
- "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists",
- "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve connection details for Azure App Service : %s. Status Code: %s (%s)",
- "UnabletoretrieveResourceID": "Unable to retrieve connection details for Azure Resource:'%s'. Status Code: %s",
- "CouldnotfetchaccesstokenforAzureStatusCode": "Could not fetch access token for Azure. Status Code: %s (%s)",
- "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s",
- "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s",
- "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website",
- "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'",
- "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']",
- "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'",
- "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved",
- "PackageDeploymentSuccess": "Successfully deployed web package to App Service.",
- "PackageDeploymentFailed": "Failed to deploy web package to App Service.",
- "Runningcommand": "Running command: %s",
- "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)",
- "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s",
- "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s",
- "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s",
- "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.",
- "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above",
- "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)",
- "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.",
- "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.",
- "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.",
- "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.",
- "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
- "Configfiledoesntexists": "Configuration file %s doesn't exist.",
- "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s",
- "AppOfflineModeenabled": "App offline mode enabled.",
- "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)",
- "AppOflineModedisabled": "App offline mode disabled.",
- "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)",
- "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
- "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
- "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent",
- "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.",
- "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.",
- "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.",
- "ShortFileBufferError": "File buffer is too short to detect encoding type : %s",
- "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s",
- "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details",
- "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s",
- "Physicalpathalreadyexists": "Physical path '%s' already exists",
- "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s",
- "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s",
- "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s",
- "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s",
- "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
- "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
- "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
- "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s",
- "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s",
- "ExecuteScriptOnKudu": "Executing given script on Kudu service.",
- "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s",
- "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s",
- "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.",
- "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s",
- "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s",
- "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s",
- "ScriptFileNotFound": "Script file '%s' not found.",
- "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux",
- "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.",
- "stdoutFromScript": "Standard output from script: ",
- "stderrFromScript": "Standard error from script: ",
- "WebConfigAlreadyExists": "web.config file already exists. Not generating.",
- "SuccessfullyGeneratedWebConfig": "Successfully generated web.config file",
- "FailedToGenerateWebConfig": "Failed to generate web.config. %s",
- "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)",
- "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s",
- "ScriptStatusTimeout": "Unable to fetch script status due to timeout.",
- "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.",
- "InvalidPollOption": "Invalid polling option provided: %s.",
- "MissingAppTypeWebConfigParameters": "Attribute '-appType' is missing in the Web.config parameters. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask', 'node' and 'Go'. For example, '-appType python_Bottle' (sans-quotes) in case of Python Bottle framework..",
- "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'",
- "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
- "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ",
- "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.",
- "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.",
- "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'",
- "UnableToFetchAuthorityURL": "Unable to fetch authority url.",
- "UnableToFetchActiveDirectory": "Unable to fetch active directory resource id.",
- "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.",
- "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.",
- "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.",
- "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.",
- "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s",
- "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s",
- "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentails.[Status Code: '%s']",
- "UnableToReadResponseBody": "Unable to read response body. Error: %s",
- "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'",
- "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'",
- "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s",
- "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s",
- "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.",
- "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s",
- "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destinaton' option or Stop continuous Jobs before deployment.",
- "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s",
- "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s",
- "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s",
- "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s",
- "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s",
- "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s",
- "RetryToDeploy": "Retrying to deploy the package.",
- "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s",
- "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s",
- "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s",
- "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s",
- "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s",
- "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s",
- "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s",
- "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s",
- "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s",
- "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s",
- "UpdatingAppServiceConfigurationSettings": "Updating App Service Configuration settings. Data: %s",
- "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.",
- "UpdatingAppServiceApplicationSettings": "Updating App Service Application settings. Data: %s",
- "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.",
- "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
- "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
- "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
- "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
- "GoExeNameNotPresent": "Go exe name is not present",
- "WarDeploymentRetry": "Retrying war file deployment as it did not expand successfully earlier.",
- "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.",
- "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s",
- "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
- "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline",
- "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.",
- "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s",
- "JarNotSupported": "Jar deployment is not supported in this version. Change the task version to '4.*' which is in preview mode",
- "CorrelationIdForARM": "Correlation ID from ARM api call response : %s",
- "MSDeployNotSupportTokenAuth": "App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy ."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV3/task.loc.json b/Tasks/AzureRmWebAppDeploymentV3/task.loc.json
index de542f9053f4..5b81a4dc48f2 100644
--- a/Tasks/AzureRmWebAppDeploymentV3/task.loc.json
+++ b/Tasks/AzureRmWebAppDeploymentV3/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/de-DE/resources.resjson
index 61fdf60095b0..946dab91cbbd 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/de-DE/resources.resjson
@@ -65,7 +65,7 @@
"loc.input.label.ExcludeFilesFromAppDataFlag": "Dateien aus dem Ordner \"App_Data\" ausschließen",
"loc.input.help.ExcludeFilesFromAppDataFlag": "Wählen Sie diese Option aus, um zu verhindern, dass Dateien im Ordner \"App_Data\" in Azure App Service bereitgestellt oder gelöscht werden.",
"loc.input.label.AdditionalArguments": "Zusätzliche Argumente",
- "loc.input.help.AdditionalArguments": "Weitere Web Deploy-Argumente mit der Syntax \"-key:value\". Diese werden angewendet, wenn der Azure App Service bereitgestellt wird. Beispiel: -disableLink:AppPoolExtension -disableLink:ContentExtension. Weitere Beispiele für Einstellungen für den Web Deploy-Vorgang finden Sie [hier] (https://go.microsoft.com/fwlink/?linkid=838471).",
+ "loc.input.help.AdditionalArguments": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471).",
"loc.input.label.RenameFilesFlag": "Gesperrte Dateien umbenennen",
"loc.input.help.RenameFilesFlag": "Wählen Sie die Option aus, um das msdeploy-Flag MSDEPLOY_RENAME_LOCKED_FILES=1 in den Azure App Service-Anwendungseinstellungen zu aktivieren. Wenn diese Option festgelegt ist, kann \"msdeploy\" gesperrte Dateien umbenennen, die während der App-Bereitstellung gesperrt sind.",
"loc.input.label.XmlTransformation": "XML-Transformation",
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "Fehler beim Abrufen der Ressourcen-ID für Ressourcentyp \"%s\" und Ressourcenname \"%s\". Fehler: %s",
"loc.messages.JarPathNotPresent": "Der Java-JAR-Pfad ist nicht vorhanden.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Fehler beim Aktualisieren der Application Insights-Ressource \"%s\". Fehler: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "Wechseln Sie Web Deploy zum \"Aus Paket ausführen\", um FILE_IN_USE-Fehler zu vermeiden. Beachten Sie, dass \"Aus Paket ausführen\" keine Unterstützung für den msBuild-Pakettyp bietet. Ändern Sie Ihr Paketformat, um diese Bereitstellungsmethode zu verwenden."
+ "loc.messages.RunFromZipPreventsFileInUseError": "Wechseln Sie Web Deploy zum \"Aus Paket ausführen\", um FILE_IN_USE-Fehler zu vermeiden. Beachten Sie, dass \"Aus Paket ausführen\" keine Unterstützung für den msBuild-Pakettyp bietet. Ändern Sie Ihr Paketformat, um diese Bereitstellungsmethode zu verwenden.",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service ist so konfiguriert, dass keine Standardauthentifizierung verwendet wird. Dies erfordert Web Deploy msdeploy.exe-Version 7.1.7225 oder höher. Sie benötigen eine Version von Visual Studio, die eine aktualisierte Version von \"msdeploy.exe\" enthält. Weitere Informationen finden Sie unter https://aka.ms/azdo-webapp-msdeploy ."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/es-ES/resources.resjson
index f10de1f4b8fc..7e21a7ee4b39 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/es-ES/resources.resjson
@@ -9,7 +9,7 @@
"loc.group.displayName.PostDeploymentAction": "Acción posterior a la implementación",
"loc.group.displayName.ApplicationAndConfigurationSettings": "Configuración y opciones de la aplicación",
"loc.input.label.ConnectionType": "Tipo de conexión",
- "loc.input.help.ConnectionType": "Seleccione el tipo de conexión de servicio que se va a usar para implementar la aplicación web. Seleccione Perfil de publicación para usar el perfil de publicación creado por Visual Studio. [Más información] (https://aka.ms/vsPublishProfile).",
+ "loc.input.help.ConnectionType": "Select the service connection type to use to deploy the Web App. Select Publish Profile for using Visual Studio created Publish profile. [More Information](https://aka.ms/vsPublishProfile).",
"loc.input.label.ConnectedServiceName": "Suscripción a Azure",
"loc.input.help.ConnectedServiceName": "Seleccione la suscripción de Azure Resource Manager para la implementación.",
"loc.input.label.PublishProfilePath": "Ruta de acceso del perfil de publicación",
@@ -65,7 +65,7 @@
"loc.input.label.ExcludeFilesFromAppDataFlag": "Excluir archivos de la carpeta App_Data",
"loc.input.help.ExcludeFilesFromAppDataFlag": "Seleccione esta opción para evitar que los archivos de la carpeta App_Data se implementen en Azure App Service o se eliminen de ese servicio.",
"loc.input.label.AdditionalArguments": "Argumentos adicionales",
- "loc.input.help.AdditionalArguments": "Argumentos adicionales de Web Deploy que siguen la sintaxis -clave:valor. Se aplicarán cuando se implemente la instancia de Azure App Service. Ejemplo: -disableLink:AppPoolExtension -disableLink:ContentExtension. Para más ejemplos de configuración de la operación de Web Deploy, consulte [aquí] (https://go.microsoft.com/fwlink/?linkid=838471).",
+ "loc.input.help.AdditionalArguments": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471).",
"loc.input.label.RenameFilesFlag": "Cambiar nombre de archivos bloqueados",
"loc.input.help.RenameFilesFlag": "Seleccione la opción para habilitar la marca de msdeploy MSDEPLOY_RENAME_LOCKED_FILES=1 en la configuración de la aplicación de Azure App Service. Si está establecida, la opción permite que msdeploy cambie el nombre de los archivos bloqueados que se bloquean durante la implementación de la aplicación",
"loc.input.label.XmlTransformation": "Transformación XML",
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "No se pudo obtener el identificador del tipo de recurso \"%s\" y el nombre de recurso \"%s\". Error: %s",
"loc.messages.JarPathNotPresent": "La ruta de acceso de jar de Java no está presente.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "No se pudo actualizar el recurso de Application Insights \"%s\". Error: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "Cambie de Web Deploy a la ejecución desde el paquete, que ayuda a evitar el error FILE_IN_USE. Tenga en cuenta que la ejecución desde el paquete no admite el tipo de paquete msBuild. Cambie el formato del paquete para usar este método de implementación."
+ "loc.messages.RunFromZipPreventsFileInUseError": "Cambie de Web Deploy a la ejecución desde el paquete, que ayuda a evitar el error FILE_IN_USE. Tenga en cuenta que la ejecución desde el paquete no admite el tipo de paquete msBuild. Cambie el formato del paquete para usar este método de implementación.",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service está configurado para no usar la autenticación básica. Esto requiere la versión 7.1.7225 o una posterior de Web Deploy, msdeploy.exe. Necesita una versión de Visual Studio que incluya una versión actualizada de msdeploy.exe. Para obtener más información, visite https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/fr-FR/resources.resjson
index 735e9149ed5b..e173e6ecc690 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/fr-FR/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "Échec de l'obtention de l'ID de ressource pour le type de ressource '%s' et le nom de ressource '%s'. Erreur : %s",
"loc.messages.JarPathNotPresent": "Le chemin du fichier jar Java n'est pas présent",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Échec de la mise à jour de la ressource Application Insights '%s'. Erreur : %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "Passez de Web Deploy à l'exécution à partir d'un package, ce qui permet d'éviter l'erreur FILE_IN_USE. Notez que l'exécution à partir d'un package ne prend pas en charge le type de package msBuild. Changez le format de votre package pour utiliser cette méthode de déploiement."
+ "loc.messages.RunFromZipPreventsFileInUseError": "Passez de Web Deploy à l'exécution à partir d'un package, ce qui permet d'éviter l'erreur FILE_IN_USE. Notez que l'exécution à partir d'un package ne prend pas en charge le type de package msBuild. Changez le format de votre package pour utiliser cette méthode de déploiement.",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service est configuré pour ne pas utiliser l’authentification de base. Cette opération nécessite Web Deploy msdeploy.exe version 7.1.7225 ou ultérieure. Vous avez besoin d’une version de Visual Studio qui inclut une version mise à jour de msdeploy.exe. Pour plus d’informations, visitez https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/it-IT/resources.resjson
index f4bfc0ca0356..18b97dd73b84 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/it-IT/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "Non è stato possibile ottenere l'ID risorsa per il tipo di risorsa '%s' e il nome di risorsa '%s'. Errore: %s",
"loc.messages.JarPathNotPresent": "Il percorso del file jar Java non è presente",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Non è stato possibile aggiornare la risorsa '%s' di Application Insights. Errore: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "Passare da Distribuzione Web a Run From Package, che consente di evitare errori FILE_IN_USE. Tenere presente che Run From Package non supporta il tipo di pacchetto msBuild. Per usare questo metodo di distribuzione, modificare il formato del pacchetto."
+ "loc.messages.RunFromZipPreventsFileInUseError": "Passare da Distribuzione Web a Run From Package, che consente di evitare errori FILE_IN_USE. Tenere presente che Run From Package non supporta il tipo di pacchetto msBuild. Per usare questo metodo di distribuzione, modificare il formato del pacchetto.",
+ "loc.messages.MSDeployNotSupportTokenAuth": "Servizio app è configurato per non usare l'autenticazione di base. Richiede Distribuzione Web msdeploy.exe versione 7.1.7225 o successiva. È necessaria una versione di Visual Studio che includa una versione aggiornata di msdeploy.exe. Per altre informazioni, visitare https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ja-JP/resources.resjson
index c363ab7cf9cb..ee75f5b0873e 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ja-JP/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "リソースの種類 '%s'、リソース名 '%s' のリソース ID を取得できませんでした。エラー: %s",
"loc.messages.JarPathNotPresent": "Java jar パスが存在しません",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Application Insights '%s' リソースを更新できませんでした。エラー: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "Web 配置から Run From Package に移動します。これは、FILE_IN_USE エラーを回避するのに役立ちます。Run From Package では、msBuild パッケージの種類はサポートされていません。この配置方法を使用するには、パッケージ形式を変更してください。"
+ "loc.messages.RunFromZipPreventsFileInUseError": "Web 配置から Run From Package に移動します。これは、FILE_IN_USE エラーを回避するのに役立ちます。Run From Package では、msBuild パッケージの種類はサポートされていません。この配置方法を使用するには、パッケージ形式を変更してください。",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service は基本認証を使用しないように構成されています。これには、バージョン 7.1.7225 以降の Web 配置 msdeploy.exe が必要です。更新されたバージョンの msdeploy.exe を含む Visual Studio のバージョンが必要です。詳細については、https://aka.ms/azdo-webapp-msdeploy を参照してください。"
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ko-KR/resources.resjson
index b73547991743..3d2d51bf6e65 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ko-KR/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "리소스 종류 '%s' 및 리소스 이름 '%s'의 리소스 ID를 가져오지 못했습니다. 오류: %s",
"loc.messages.JarPathNotPresent": "Java jar 경로가 없습니다.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Application Insights '%s' 리소스를 업데이트하지 못했습니다. 오류: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "'웹 배포'에서 FILE_IN_USE 오류 방지에 도움이 되는 '패키지에서 실행'으로 전환하세요. '패키지에서 실행'은 msBuild 패키지 형식을 지원하지 않습니다. 이 배포 방법을 사용하려면 패키지 형식을 변경하세요."
+ "loc.messages.RunFromZipPreventsFileInUseError": "'웹 배포'에서 FILE_IN_USE 오류 방지에 도움이 되는 '패키지에서 실행'으로 전환하세요. '패키지에서 실행'은 msBuild 패키지 형식을 지원하지 않습니다. 이 배포 방법을 사용하려면 패키지 형식을 변경하세요.",
+ "loc.messages.MSDeployNotSupportTokenAuth": "App Service가 기본 인증을 사용하지 않도록 구성되어 있습니다. 이를 위해서는 웹 배포 msdeploy.exe 버전 7.1.7225 이상이 필요합니다. 업데이트된 버전의 msdeploy.exe를 포함하는 Visual Studio 버전이 필요합니다. 자세한 내용은 https://aka.ms/azdo-webapp-msdeploy를 참조하세요."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ru-RU/resources.resjson
index d5539e3edd48..86d9546155a8 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/ru-RU/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "Не удалось получить идентификатор ресурса для ресурса с типом \"%s\" и именем \"%s\". Ошибка: %s",
"loc.messages.JarPathNotPresent": "Отсутствует путь к jar-файлу Java.",
"loc.messages.FailedToUpdateApplicationInsightsResource": "Не удалось обновить ресурс Application Insights \"%s\". Ошибка: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "Переход от веб-развертывания к запуску из пакета, что помогает избежать ошибки FILE_IN_USE. Обратите внимание, что запуск из пакета не поддерживает тип пакета msBuild. Измените формат пакета, чтобы использовать этот метод развертывания."
+ "loc.messages.RunFromZipPreventsFileInUseError": "Переход от веб-развертывания к запуску из пакета, что помогает избежать ошибки FILE_IN_USE. Обратите внимание, что запуск из пакета не поддерживает тип пакета msBuild. Измените формат пакета, чтобы использовать этот метод развертывания.",
+ "loc.messages.MSDeployNotSupportTokenAuth": "Служба приложений настроена не использовать обычную проверку подлинности. Для этого требуется веб-развертывание msdeploy.exe версии 7.1.7225 или более поздней. Требуется версия Visual Studio, которая включает обновленную версию msdeploy.exe. Дополнительные сведения см. на странице https://aka.ms/azdo-webapp-msdeploy."
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-CN/resources.resjson
index 99bb677d364e..4360057e0da7 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-CN/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "未能获取资源类型“%s”和资源名称“%s”的资源 ID。错误: %s",
"loc.messages.JarPathNotPresent": "Java jar 路径不存在",
"loc.messages.FailedToUpdateApplicationInsightsResource": "未能更新 Application Insights“%s”资源。错误: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "从 Web 部署移动到 RunFrom 包,这有助于避免 FILE_IN_USE 错误。请注意,“从包运行”不支持 msBuild 包类型。请更改包格式以使用此部署方法。"
+ "loc.messages.RunFromZipPreventsFileInUseError": "从 Web 部署移动到 RunFrom 包,这有助于避免 FILE_IN_USE 错误。请注意,“从包运行”不支持 msBuild 包类型。请更改包格式以使用此部署方法。",
+ "loc.messages.MSDeployNotSupportTokenAuth": "应用服务配置为不使用基本身份验证。这需要 Web 部署 msdeploy.exe 7.1.7225 或更高版本。需要包含 msdeploy.exe 更新版本的 Visual Studio 版本。有关详细信息,请访问 https://aka.ms/azdo-webapp-msdeploy。"
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-TW/resources.resjson
index 7bcbc1329826..d77a920ca3c8 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/AzureRmWebAppDeploymentV4/Strings/resources.resjson/zh-TW/resources.resjson
@@ -225,5 +225,6 @@
"loc.messages.FailedToGetResourceID": "無法取得資源類型 '%s' 和資源名稱 '%s' 的資源識別碼。錯誤: %s",
"loc.messages.JarPathNotPresent": "沒有 Java 的 jar 路徑",
"loc.messages.FailedToUpdateApplicationInsightsResource": "無法更新 Application Insights '%s' 資源。錯誤: %s",
- "loc.messages.RunFromZipPreventsFileInUseError": "從 Web Deploy 移至 RunFrom Package 可協助避免 FILE_IN_USE 錯誤。請注意,Run From Package 不支援 msBuild 套件類型。請變更您的套件格式以使用此部署方法。"
+ "loc.messages.RunFromZipPreventsFileInUseError": "從 Web Deploy 移至 RunFrom Package 可協助避免 FILE_IN_USE 錯誤。請注意,Run From Package 不支援 msBuild 套件類型。請變更您的套件格式以使用此部署方法。",
+ "loc.messages.MSDeployNotSupportTokenAuth": "已將 App Service 設為不使用基本驗證。這需要 Web Deploy msdeploy.exe 版本 7.1.7225 或更新版本。您需要包含 msdeploy.exe 已更新版本的 Visual Studio 版本。如需詳細資訊,請前往 https://aka.ms/azdo-webapp-msdeploy。"
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/task.json b/Tasks/AzureRmWebAppDeploymentV4/task.json
index 12903c3e3491..4bbb407a1a18 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/task.json
+++ b/Tasks/AzureRmWebAppDeploymentV4/task.json
@@ -1,661 +1,661 @@
{
- "id": "497D490F-EEA7-4F2B-AB94-48D9C1ACDCB1",
- "name": "AzureRmWebAppDeployment",
- "friendlyName": "Azure App Service deploy",
- "description": "Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby",
- "helpUrl": "https://aka.ms/azureappservicetroubleshooting",
- "helpMarkDown": "[Learn more about this task](https://aka.ms/azurermwebdeployreadme)",
- "category": "Deploy",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 4,
- "Minor": 247,
- "Patch": 0
- },
- "releaseNotes": "What's new in version 4.* Supports Zip Deploy, Run From Package, War Deploy [Details here](https://aka.ms/appServiceDeploymentMethods) Supports App Service Environments Improved UI for discovering different App service types supported by the task Run From Package is the preferred deployment method, which makes files in wwwroot folder read-only Click [here](https://aka.ms/azurermwebdeployreadme) for more information.",
- "minimumAgentVersion": "2.104.1",
- "groups": [
- {
- "name": "FileTransformsAndVariableSubstitution",
- "displayName": "File Transforms & Variable Substitution Options",
- "isExpanded": false,
- "visibleRule": "WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war"
- },
- {
- "name": "AdditionalDeploymentOptions",
- "displayName": "Additional Deployment Options",
- "isExpanded": false,
- "visibleRule": "ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != \"\" && Package NotEndsWith .war && Package NotEndsWith .jar"
- },
- {
- "name": "PostDeploymentAction",
- "displayName": "Post Deployment Action",
- "isExpanded": false,
- "visibleRule": "ConnectionType = AzureRM && WebAppKind != \"\" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer"
- },
- {
- "name": "ApplicationAndConfigurationSettings",
- "displayName": "Application and Configuration Settings",
- "isExpanded": false,
- "visibleRule": "ConnectionType = AzureRM"
- }
- ],
- "inputs": [
- {
- "name": "ConnectionType",
- "type": "pickList",
- "label": "Connection type",
- "defaultValue": "AzureRM",
- "options": {
- "AzureRM": "Azure Resource Manager",
- "PublishProfile": "Publish Profile"
- },
- "required": true,
- "helpMarkDown": "Select the service connection type to use to deploy the Web App. Select Publish Profile for using Visual Studio created Publish profile. [More Information](https://aka.ms/vsPublishProfile)."
- },
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment.",
- "visibleRule": "ConnectionType = AzureRM"
- },
- {
- "name": "PublishProfilePath",
- "type": "filePath",
- "label": "Publish profile path",
- "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.pubxml",
- "required": true,
- "helpMarkDown": "Path of the Publish profile created from Visual Studio",
- "visibleRule": "ConnectionType = PublishProfile"
- },
- {
- "name": "PublishProfilePassword",
- "type": "string",
- "label": "Publish profile password",
- "required": true,
- "helpMarkDown": "It is recommended to store password in a secret variable and use that variable here e.g. $(Password).",
- "visibleRule": "ConnectionType = PublishProfile"
- },
- {
- "name": "WebAppKind",
- "aliases": [
- "appType"
- ],
- "type": "pickList",
- "label": "App Service type",
- "defaultValue": "webApp",
- "required": true,
- "options": {
- "webApp": "Web App on Windows",
- "webAppLinux": "Web App on Linux",
- "webAppContainer": "Web App for Containers (Linux)",
- "webAppHyperVContainer": "Web App for Containers (Windows)",
- "functionApp": "Function App on Windows (Not Recommended, Use Azure Functions Task)",
- "functionAppLinux": "Function App on Linux (Not Recommended, Use Azure Functions Task)",
- "functionAppContainer": "Function App for Containers (Linux) (Not Recommended, Use Azure Functions for container Task)",
- "apiApp": "API App",
- "mobileApp": "Mobile App"
- },
- "properties": {
- "EditableOptions": "true"
- },
- "helpMarkDown": "Choose from Web App On Windows, Web App On Linux, Web App for Containers, Function App, Function App on Linux, Function App for Containers and Mobile App.",
- "visibleRule": "ConnectionType = AzureRM"
- },
- {
- "name": "WebAppName",
- "type": "pickList",
- "label": "App Service name",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select the name of an existing Azure App Service. App services based on selected app type will only be listed.",
- "visibleRule": "ConnectionType = AzureRM"
- },
- {
- "name": "DeployToSlotOrASEFlag",
- "aliases": [
- "deployToSlotOrASE"
- ],
- "type": "boolean",
- "label": "Deploy to Slot or App Service Environment",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Select the option to deploy to an existing deployment slot or Azure App Service Environment. For both the targets, the task needs Resource group name. In case the deployment target is a slot, by default the deployment is done to the production slot. Any other existing slot name can also be provided. In case the deployment target is an Azure App Service environment, leave the slot name as ‘production’ and just specify the Resource group name.",
- "visibleRule": "ConnectionType = AzureRM && WebAppKind != \"\""
- },
- {
- "name": "ResourceGroupName",
- "type": "pickList",
- "label": "Resource group",
- "defaultValue": "",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "The Resource group name is required when the deployment target is either a deployment slot or an App Service Environment. Enter or Select the Azure Resource group that contains the Azure App Service specified above.",
- "visibleRule": "DeployToSlotOrASEFlag = true"
- },
- {
- "name": "SlotName",
- "type": "pickList",
- "label": "Slot",
- "defaultValue": "production",
- "required": true,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.",
- "visibleRule": "DeployToSlotOrASEFlag = true"
- },
- {
- "name": "DockerNamespace",
- "type": "string",
- "label": "Registry or Namespace",
- "defaultValue": "",
- "required": true,
- "visibleRule": "WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer",
- "helpMarkDown": "A globally unique top-level domain name for your specific registry or namespace. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "DockerRepository",
- "type": "string",
- "label": "Image",
- "defaultValue": "",
- "required": true,
- "visibleRule": "WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer",
- "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "DockerImageTag",
- "type": "string",
- "label": "Tag",
- "defaultValue": "",
- "required": false,
- "visibleRule": "WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer",
- "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
- },
- {
- "name": "VirtualApplication",
- "type": "string",
- "label": "Virtual application",
- "defaultValue": "",
- "required": false,
- "visibleRule": "WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != \"\"",
- "helpMarkDown": "Specify the name of the Virtual application that has been configured in the Azure portal. The option is not required for deployments to the App Service root."
- },
- {
- "name": "Package",
- "aliases": [
- "packageForLinux"
- ],
- "type": "filePath",
- "label": "Package or folder",
- "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
- "required": true,
- "visibleRule": "ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux",
- "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
- },
- {
- "name": "RuntimeStack",
- "type": "pickList",
- "label": "Runtime Stack",
- "defaultValue": "",
- "required": false,
- "properties": {
- "EditableOptions": "True"
- },
- "helpMarkDown": "Select the framework and version.",
- "visibleRule": "WebAppKind = webAppLinux"
- },
- {
- "name": "RuntimeStackFunction",
- "type": "pickList",
- "label": "Runtime Stack",
- "defaultValue": "",
- "required": false,
- "properties": {
- "EditableOptions": "True"
- },
- "options": {
- "DOTNET|2.2": "DOTNET|2.2 (functionapp v2)",
- "DOTNET|3.1": "DOTNET|3.1 (functionapp v3)",
- "JAVA|8": "JAVA|8 (functionapp v2/v3)",
- "JAVA|11": "JAVA|11 (functionapp v3)",
- "NODE|8": "NODE|8 (functionapp v2)",
- "NODE|10": "NODE|10 (functionapp v2/v3)",
- "NODE|12": "NODE|12 (functionapp v3)",
- "NODE|14": "NODE|14 (functionapp v3)",
- "PYTHON|3.6": "PYTHON|3.6 (functionapp v2/v3)",
- "PYTHON|3.7": "PYTHON|3.7 (functionapp v2/v3)",
- "PYTHON|3.8": "PYTHON|3.8 (functionapp v3)"
- },
- "helpMarkDown": "Select the framework and version. Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown.",
- "visibleRule": "WebAppKind = functionAppLinux"
- },
- {
- "name": "StartupCommand",
- "type": "string",
- "label": "Startup command ",
- "defaultValue": "",
- "required": false,
- "visibleRule": "WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer",
- "helpMarkDown": "Enter the start up command. For ex. dotnet exec filename.dll dotnet filename.dll"
- },
- {
- "name": "ScriptType",
- "type": "pickList",
- "label": "Deployment script type",
- "defaultValue": "",
- "options": {
- "": "Select deployment script type (inline or file)",
- "Inline Script": "Inline Script",
- "File Path": "Script File Path"
- },
- "groupName": "PostDeploymentAction",
- "helpMarkDown": "Customize the deployment by providing a script that will run on the Azure App service once the task has completed the deployment successfully . For example restore packages for Node, PHP, Python applications. [Learn more](https://go.microsoft.com/fwlink/?linkid=843471)."
- },
- {
- "name": "InlineScript",
- "type": "multiLine",
- "label": "Inline Script",
- "defaultValue": ":: You can provide your deployment commands here. One command per line.",
- "groupName": "PostDeploymentAction",
- "required": true,
- "visibleRule": "ScriptType == Inline Script",
- "properties": {
- "resizable": "true",
- "rows": "10",
- "maxLength": "500"
- }
- },
- {
- "name": "ScriptPath",
- "type": "filePath",
- "label": "Deployment script path",
- "required": true,
- "groupName": "PostDeploymentAction",
- "visibleRule": "ScriptType == File Path"
- },
- {
- "name": "WebConfigParameters",
- "type": "multiLine",
- "label": "Generate web.config parameters for Python, Node.js, Go and Java apps",
- "required": false,
- "defaultValue": "",
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "A standard Web.config will be generated and deployed to Azure App Service if the application does not have one. The values in web.config can be edited and vary based on the application framework. For example for node.js application, web.config will have startup file and iis_node module values. This edit feature is only for the generated web.config. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469).",
- "properties": {
- "editorExtension": "ms.vss-services-azure.webconfig-parameters-grid"
- }
- },
- {
- "name": "AppSettings",
- "type": "multiLine",
- "label": "App settings",
- "defaultValue": "",
- "required": false,
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes. Example : -Port 5000 -RequestTimeout 5000 -WEBSITE_TIME_ZONE \"Eastern Standard Time\"",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "ConfigurationSettings",
- "type": "multiLine",
- "label": "Configuration settings",
- "defaultValue": "",
- "required": false,
- "groupName": "ApplicationAndConfigurationSettings",
- "helpMarkDown": "Edit web app configuration settings following the syntax -key value. Value containing spaces should be enclosed in double quotes. Example : -phpVersion 5.6 -linuxFxVersion: node|6.11",
- "properties": {
- "editorExtension": "ms.vss-services-azure.parameters-grid"
- }
- },
- {
- "name": "UseWebDeploy",
- "aliases": [
- "enableCustomDeployment"
- ],
- "type": "boolean",
- "label": "Select deployment method",
- "required": false,
- "defaultValue": "false",
- "groupName": "AdditionalDeploymentOptions",
- "helpMarkDown": "If unchecked we will auto-detect the best deployment method based on your app type, package format and other parameters. Select the option to view the supported deployment methods and choose one for deploying your app."
- },
- {
- "name": "DeploymentType",
- "type": "pickList",
- "label": "Deployment method",
- "defaultValue": "webDeploy",
- "required": true,
- "groupName": "AdditionalDeploymentOptions",
- "options": {
- "webDeploy": "Web Deploy",
- "zipDeploy": "Zip Deploy",
- "runFromZip": "Run From Package"
- },
- "helpMarkDown": "Choose the deployment method for the app.",
- "visibleRule": "UseWebDeploy == true"
- },
- {
- "name": "TakeAppOfflineFlag",
- "type": "boolean",
- "label": "Take App Offline",
- "defaultValue": "true",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true && DeploymentType != runFromZip",
- "helpMarkDown": "Select the option to take the Azure App Service offline by placing an app_offline.htm file in the root directory of the App Service before the sync operation begins. The file will be removed after the sync operation completes successfully."
- },
- {
- "name": "SetParametersFile",
- "type": "filePath",
- "label": "SetParameters file",
- "defaultValue": "",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
- "helpMarkDown": "Optional: location of the SetParameters.xml file to use."
- },
- {
- "name": "RemoveAdditionalFilesFlag",
- "type": "boolean",
- "label": "Remove additional files at destination",
- "defaultValue": "false",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
- "helpMarkDown": "Select the option to delete files on the Azure App Service that have no matching files in the App Service package or folder.
Note: This will also remove all files related to any extension installed on this Azure App Service. To prevent this, select 'Exclude files from App_Data folder' checkbox. "
- },
- {
- "name": "ExcludeFilesFromAppDataFlag",
- "type": "boolean",
- "label": "Exclude files from the App_Data folder",
- "defaultValue": "true",
- "required": false,
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
- "helpMarkDown": "Select the option to prevent files in the App_Data folder from being deployed to/ deleted from the Azure App Service."
- },
- {
- "name": "AdditionalArguments",
- "type": "string",
- "label": "Additional arguments",
- "required": false,
- "defaultValue": "-retryAttempts:6 -retryInterval:10000",
- "groupName": "AdditionalDeploymentOptions",
- "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
- "helpMarkDown": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471)."
- },
- {
- "name": "RenameFilesFlag",
- "type": "boolean",
- "label": "Rename locked files",
- "defaultValue": "true",
- "required": false,
- "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
- "groupName": "AdditionalDeploymentOptions",
- "helpMarkDown": "Select the option to enable msdeploy flag MSDEPLOY_RENAME_LOCKED_FILES=1 in Azure App Service application settings. The option if set enables msdeploy to rename locked files that are locked during app deployment"
- },
- {
- "name": "XmlTransformation",
- "aliases": [
- "enableXmlTransform"
- ],
- "type": "boolean",
- "label": "XML transformation",
- "required": false,
- "defaultValue": false,
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "The config transforms will be run for `*.Release.config` and `*..config` on the `*.config file`. Config transforms will be run prior to the Variable Substitution. XML transformations are supported only for Windows platform."
- },
- {
- "name": "XmlVariableSubstitution",
- "aliases": [
- "enableXmlVariableSubstitution"
- ],
- "type": "boolean",
- "label": "XML variable substitution",
- "required": false,
- "defaultValue": false,
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "Variables defined in the build or release pipelines will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after config transforms.
Note: If same variables are defined in the release pipeline and in the environment, then the environment variables will supersede the release pipeline variables. "
- },
- {
- "name": "JSONFiles",
- "type": "multiLine",
- "label": "JSON variable substitution",
- "required": false,
- "defaultValue": "",
- "groupName": "FileTransformsAndVariableSubstitution",
- "helpMarkDown": "Provide new line separated list of JSON files to substitute the variable values. Files names are to be provided relative to the root folder. To substitute JSON variables that are nested or hierarchical, specify them using JSONPath expressions.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build or release pipeline (or release pipeline's environment). { \"Data\": { \"DefaultConnection\": { \"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\" } } } Variable Substitution is run after configuration transforms.
Note: pipeline variables are excluded in substitution."
- }
- ],
- "outputVariables": [
- {
- "name": "AppServiceApplicationUrl",
- "description": "Application URL of the selected App Service."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "WebAppName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppNamesByAppType",
- "parameters": {
- "WebAppKind": "$(WebAppKind)"
- }
- },
- {
- "target": "ResourceGroupName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppResourceGroup",
- "parameters": {
- "WebAppName": "$(WebAppName)"
- }
- },
- {
- "target": "SlotName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppSlotsId",
- "parameters": {
- "WebAppName": "$(WebAppName)",
- "ResourceGroupName": "$(ResourceGroupName)"
- },
- "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}"
- },
- {
- "target": "RuntimeStack",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureRMWebAppRuntimeStacksByOsType",
- "parameters": {
- "osTypeSelected": "Linux"
- },
- "resultTemplate": "{\"Value\":\"{{{ runtimeVersion }}}\",\"DisplayValue\":\"{{{ displayVersion }}} ({{{ runtimeVersion }}})\"}"
- }
- ],
- "instanceNameFormat": "Azure App Service Deploy: $(WebAppName)",
- "execution": {
- "Node16": {
- "target": "azurermwebappdeployment.js",
- "argumentFormat": ""
- },
- "Node10": {
- "target": "azurermwebappdeployment.js"
+ "id": "497D490F-EEA7-4F2B-AB94-48D9C1ACDCB1",
+ "name": "AzureRmWebAppDeployment",
+ "friendlyName": "Azure App Service deploy",
+ "description": "Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby",
+ "helpUrl": "https://aka.ms/azureappservicetroubleshooting",
+ "helpMarkDown": "[Learn more about this task](https://aka.ms/azurermwebdeployreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 4,
+ "Minor": 250,
+ "Patch": 0
+ },
+ "releaseNotes": "What's new in version 4.* Supports Zip Deploy, Run From Package, War Deploy [Details here](https://aka.ms/appServiceDeploymentMethods) Supports App Service Environments Improved UI for discovering different App service types supported by the task Run From Package is the preferred deployment method, which makes files in wwwroot folder read-only Click [here](https://aka.ms/azurermwebdeployreadme) for more information.",
+ "minimumAgentVersion": "2.104.1",
+ "groups": [
+ {
+ "name": "FileTransformsAndVariableSubstitution",
+ "displayName": "File Transforms & Variable Substitution Options",
+ "isExpanded": false,
+ "visibleRule": "WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war"
+ },
+ {
+ "name": "AdditionalDeploymentOptions",
+ "displayName": "Additional Deployment Options",
+ "isExpanded": false,
+ "visibleRule": "ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != \"\" && Package NotEndsWith .war && Package NotEndsWith .jar"
+ },
+ {
+ "name": "PostDeploymentAction",
+ "displayName": "Post Deployment Action",
+ "isExpanded": false,
+ "visibleRule": "ConnectionType = AzureRM && WebAppKind != \"\" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer"
+ },
+ {
+ "name": "ApplicationAndConfigurationSettings",
+ "displayName": "Application and Configuration Settings",
+ "isExpanded": false,
+ "visibleRule": "ConnectionType = AzureRM"
+ }
+ ],
+ "inputs": [
+ {
+ "name": "ConnectionType",
+ "type": "pickList",
+ "label": "Connection type",
+ "defaultValue": "AzureRM",
+ "options": {
+ "AzureRM": "Azure Resource Manager",
+ "PublishProfile": "Publish Profile"
+ },
+ "required": true,
+ "helpMarkDown": "Select the service connection type to use to deploy the Web App. Select Publish Profile for using Visual Studio created Publish profile. [More Information](https://aka.ms/vsPublishProfile)."
+ },
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment.",
+ "visibleRule": "ConnectionType = AzureRM"
+ },
+ {
+ "name": "PublishProfilePath",
+ "type": "filePath",
+ "label": "Publish profile path",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.pubxml",
+ "required": true,
+ "helpMarkDown": "Path of the Publish profile created from Visual Studio",
+ "visibleRule": "ConnectionType = PublishProfile"
+ },
+ {
+ "name": "PublishProfilePassword",
+ "type": "string",
+ "label": "Publish profile password",
+ "required": true,
+ "helpMarkDown": "It is recommended to store password in a secret variable and use that variable here e.g. $(Password).",
+ "visibleRule": "ConnectionType = PublishProfile"
+ },
+ {
+ "name": "WebAppKind",
+ "aliases": [
+ "appType"
+ ],
+ "type": "pickList",
+ "label": "App Service type",
+ "defaultValue": "webApp",
+ "required": true,
+ "options": {
+ "webApp": "Web App on Windows",
+ "webAppLinux": "Web App on Linux",
+ "webAppContainer": "Web App for Containers (Linux)",
+ "webAppHyperVContainer": "Web App for Containers (Windows)",
+ "functionApp": "Function App on Windows (Not Recommended, Use Azure Functions Task)",
+ "functionAppLinux": "Function App on Linux (Not Recommended, Use Azure Functions Task)",
+ "functionAppContainer": "Function App for Containers (Linux) (Not Recommended, Use Azure Functions for container Task)",
+ "apiApp": "API App",
+ "mobileApp": "Mobile App"
+ },
+ "properties": {
+ "EditableOptions": "true"
+ },
+ "helpMarkDown": "Choose from Web App On Windows, Web App On Linux, Web App for Containers, Function App, Function App on Linux, Function App for Containers and Mobile App.",
+ "visibleRule": "ConnectionType = AzureRM"
+ },
+ {
+ "name": "WebAppName",
+ "type": "pickList",
+ "label": "App Service name",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select the name of an existing Azure App Service. App services based on selected app type will only be listed.",
+ "visibleRule": "ConnectionType = AzureRM"
+ },
+ {
+ "name": "DeployToSlotOrASEFlag",
+ "aliases": [
+ "deployToSlotOrASE"
+ ],
+ "type": "boolean",
+ "label": "Deploy to Slot or App Service Environment",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Select the option to deploy to an existing deployment slot or Azure App Service Environment. For both the targets, the task needs Resource group name. In case the deployment target is a slot, by default the deployment is done to the production slot. Any other existing slot name can also be provided. In case the deployment target is an Azure App Service environment, leave the slot name as ‘production’ and just specify the Resource group name.",
+ "visibleRule": "ConnectionType = AzureRM && WebAppKind != \"\""
+ },
+ {
+ "name": "ResourceGroupName",
+ "type": "pickList",
+ "label": "Resource group",
+ "defaultValue": "",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "The Resource group name is required when the deployment target is either a deployment slot or an App Service Environment. Enter or Select the Azure Resource group that contains the Azure App Service specified above.",
+ "visibleRule": "DeployToSlotOrASEFlag = true"
+ },
+ {
+ "name": "SlotName",
+ "type": "pickList",
+ "label": "Slot",
+ "defaultValue": "production",
+ "required": true,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.",
+ "visibleRule": "DeployToSlotOrASEFlag = true"
+ },
+ {
+ "name": "DockerNamespace",
+ "type": "string",
+ "label": "Registry or Namespace",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer",
+ "helpMarkDown": "A globally unique top-level domain name for your specific registry or namespace. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "DockerRepository",
+ "type": "string",
+ "label": "Image",
+ "defaultValue": "",
+ "required": true,
+ "visibleRule": "WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer",
+ "helpMarkDown": "Name of the repository where the container images are stored. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "DockerImageTag",
+ "type": "string",
+ "label": "Tag",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer",
+ "helpMarkDown": "Tags are optional, it is the mechanism that registries use to give Docker images a version. Note: Fully qualified image name will be of the format: '`/`:`'. For example, 'myregistry.azurecr.io/nginx:latest'."
+ },
+ {
+ "name": "VirtualApplication",
+ "type": "string",
+ "label": "Virtual application",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != \"\"",
+ "helpMarkDown": "Specify the name of the Virtual application that has been configured in the Azure portal. The option is not required for deployments to the App Service root."
+ },
+ {
+ "name": "Package",
+ "aliases": [
+ "packageForLinux"
+ ],
+ "type": "filePath",
+ "label": "Package or folder",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
+ "required": true,
+ "visibleRule": "ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux",
+ "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file. Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war."
+ },
+ {
+ "name": "RuntimeStack",
+ "type": "pickList",
+ "label": "Runtime Stack",
+ "defaultValue": "",
+ "required": false,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "helpMarkDown": "Select the framework and version.",
+ "visibleRule": "WebAppKind = webAppLinux"
+ },
+ {
+ "name": "RuntimeStackFunction",
+ "type": "pickList",
+ "label": "Runtime Stack",
+ "defaultValue": "",
+ "required": false,
+ "properties": {
+ "EditableOptions": "True"
+ },
+ "options": {
+ "DOTNET|2.2": "DOTNET|2.2 (functionapp v2)",
+ "DOTNET|3.1": "DOTNET|3.1 (functionapp v3)",
+ "JAVA|8": "JAVA|8 (functionapp v2/v3)",
+ "JAVA|11": "JAVA|11 (functionapp v3)",
+ "NODE|8": "NODE|8 (functionapp v2)",
+ "NODE|10": "NODE|10 (functionapp v2/v3)",
+ "NODE|12": "NODE|12 (functionapp v3)",
+ "NODE|14": "NODE|14 (functionapp v3)",
+ "PYTHON|3.6": "PYTHON|3.6 (functionapp v2/v3)",
+ "PYTHON|3.7": "PYTHON|3.7 (functionapp v2/v3)",
+ "PYTHON|3.8": "PYTHON|3.8 (functionapp v3)"
+ },
+ "helpMarkDown": "Select the framework and version. Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown.",
+ "visibleRule": "WebAppKind = functionAppLinux"
+ },
+ {
+ "name": "StartupCommand",
+ "type": "string",
+ "label": "Startup command ",
+ "defaultValue": "",
+ "required": false,
+ "visibleRule": "WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer",
+ "helpMarkDown": "Enter the start up command. For ex. dotnet exec filename.dll dotnet filename.dll"
+ },
+ {
+ "name": "ScriptType",
+ "type": "pickList",
+ "label": "Deployment script type",
+ "defaultValue": "",
+ "options": {
+ "": "Select deployment script type (inline or file)",
+ "Inline Script": "Inline Script",
+ "File Path": "Script File Path"
+ },
+ "groupName": "PostDeploymentAction",
+ "helpMarkDown": "Customize the deployment by providing a script that will run on the Azure App service once the task has completed the deployment successfully . For example restore packages for Node, PHP, Python applications. [Learn more](https://go.microsoft.com/fwlink/?linkid=843471)."
+ },
+ {
+ "name": "InlineScript",
+ "type": "multiLine",
+ "label": "Inline Script",
+ "defaultValue": ":: You can provide your deployment commands here. One command per line.",
+ "groupName": "PostDeploymentAction",
+ "required": true,
+ "visibleRule": "ScriptType == Inline Script",
+ "properties": {
+ "resizable": "true",
+ "rows": "10",
+ "maxLength": "500"
+ }
+ },
+ {
+ "name": "ScriptPath",
+ "type": "filePath",
+ "label": "Deployment script path",
+ "required": true,
+ "groupName": "PostDeploymentAction",
+ "visibleRule": "ScriptType == File Path"
+ },
+ {
+ "name": "WebConfigParameters",
+ "type": "multiLine",
+ "label": "Generate web.config parameters for Python, Node.js, Go and Java apps",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "A standard Web.config will be generated and deployed to Azure App Service if the application does not have one. The values in web.config can be edited and vary based on the application framework. For example for node.js application, web.config will have startup file and iis_node module values. This edit feature is only for the generated web.config. [Learn more](https://go.microsoft.com/fwlink/?linkid=843469).",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.webconfig-parameters-grid"
+ }
+ },
+ {
+ "name": "AppSettings",
+ "type": "multiLine",
+ "label": "App settings",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes. Example : -Port 5000 -RequestTimeout 5000 -WEBSITE_TIME_ZONE \"Eastern Standard Time\"",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "ConfigurationSettings",
+ "type": "multiLine",
+ "label": "Configuration settings",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "ApplicationAndConfigurationSettings",
+ "helpMarkDown": "Edit web app configuration settings following the syntax -key value. Value containing spaces should be enclosed in double quotes. Example : -phpVersion 5.6 -linuxFxVersion: node|6.11",
+ "properties": {
+ "editorExtension": "ms.vss-services-azure.parameters-grid"
+ }
+ },
+ {
+ "name": "UseWebDeploy",
+ "aliases": [
+ "enableCustomDeployment"
+ ],
+ "type": "boolean",
+ "label": "Select deployment method",
+ "required": false,
+ "defaultValue": "false",
+ "groupName": "AdditionalDeploymentOptions",
+ "helpMarkDown": "If unchecked we will auto-detect the best deployment method based on your app type, package format and other parameters. Select the option to view the supported deployment methods and choose one for deploying your app."
+ },
+ {
+ "name": "DeploymentType",
+ "type": "pickList",
+ "label": "Deployment method",
+ "defaultValue": "webDeploy",
+ "required": true,
+ "groupName": "AdditionalDeploymentOptions",
+ "options": {
+ "webDeploy": "Web Deploy",
+ "zipDeploy": "Zip Deploy",
+ "runFromZip": "Run From Package"
+ },
+ "helpMarkDown": "Choose the deployment method for the app.",
+ "visibleRule": "UseWebDeploy == true"
+ },
+ {
+ "name": "TakeAppOfflineFlag",
+ "type": "boolean",
+ "label": "Take App Offline",
+ "defaultValue": "true",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true && DeploymentType != runFromZip",
+ "helpMarkDown": "Select the option to take the Azure App Service offline by placing an app_offline.htm file in the root directory of the App Service before the sync operation begins. The file will be removed after the sync operation completes successfully."
+ },
+ {
+ "name": "SetParametersFile",
+ "type": "filePath",
+ "label": "SetParameters file",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
+ "helpMarkDown": "Optional: location of the SetParameters.xml file to use."
+ },
+ {
+ "name": "RemoveAdditionalFilesFlag",
+ "type": "boolean",
+ "label": "Remove additional files at destination",
+ "defaultValue": "false",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
+ "helpMarkDown": "Select the option to delete files on the Azure App Service that have no matching files in the App Service package or folder.
Note: This will also remove all files related to any extension installed on this Azure App Service. To prevent this, select 'Exclude files from App_Data folder' checkbox. "
+ },
+ {
+ "name": "ExcludeFilesFromAppDataFlag",
+ "type": "boolean",
+ "label": "Exclude files from the App_Data folder",
+ "defaultValue": "true",
+ "required": false,
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
+ "helpMarkDown": "Select the option to prevent files in the App_Data folder from being deployed to/ deleted from the Azure App Service."
+ },
+ {
+ "name": "AdditionalArguments",
+ "type": "string",
+ "label": "Additional arguments",
+ "required": false,
+ "defaultValue": "-retryAttempts:6 -retryInterval:10000",
+ "groupName": "AdditionalDeploymentOptions",
+ "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
+ "helpMarkDown": "Additional Web Deploy arguments following the syntax -key:value . These will be applied when deploying the Azure App Service. Example: -disableLink:AppPoolExtension -disableLink:ContentExtension. For more examples of Web Deploy operation settings, refer to [this](https://go.microsoft.com/fwlink/?linkid=838471)."
+ },
+ {
+ "name": "RenameFilesFlag",
+ "type": "boolean",
+ "label": "Rename locked files",
+ "defaultValue": "true",
+ "required": false,
+ "visibleRule": "UseWebDeploy == true && DeploymentType == webDeploy",
+ "groupName": "AdditionalDeploymentOptions",
+ "helpMarkDown": "Select the option to enable msdeploy flag MSDEPLOY_RENAME_LOCKED_FILES=1 in Azure App Service application settings. The option if set enables msdeploy to rename locked files that are locked during app deployment"
+ },
+ {
+ "name": "XmlTransformation",
+ "aliases": [
+ "enableXmlTransform"
+ ],
+ "type": "boolean",
+ "label": "XML transformation",
+ "required": false,
+ "defaultValue": false,
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "The config transforms will be run for `*.Release.config` and `*..config` on the `*.config file`. Config transforms will be run prior to the Variable Substitution. XML transformations are supported only for Windows platform."
+ },
+ {
+ "name": "XmlVariableSubstitution",
+ "aliases": [
+ "enableXmlVariableSubstitution"
+ ],
+ "type": "boolean",
+ "label": "XML variable substitution",
+ "required": false,
+ "defaultValue": false,
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "Variables defined in the build or release pipelines will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after config transforms.
Note: If same variables are defined in the release pipeline and in the environment, then the environment variables will supersede the release pipeline variables. "
+ },
+ {
+ "name": "JSONFiles",
+ "type": "multiLine",
+ "label": "JSON variable substitution",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "FileTransformsAndVariableSubstitution",
+ "helpMarkDown": "Provide new line separated list of JSON files to substitute the variable values. Files names are to be provided relative to the root folder. To substitute JSON variables that are nested or hierarchical, specify them using JSONPath expressions.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build or release pipeline (or release pipeline's environment). { \"Data\": { \"DefaultConnection\": { \"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\" } } } Variable Substitution is run after configuration transforms.
Note: pipeline variables are excluded in substitution."
+ }
+ ],
+ "outputVariables": [
+ {
+ "name": "AppServiceApplicationUrl",
+ "description": "Application URL of the selected App Service."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "WebAppName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppNamesByAppType",
+ "parameters": {
+ "WebAppKind": "$(WebAppKind)"
+ }
+ },
+ {
+ "target": "ResourceGroupName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppResourceGroup",
+ "parameters": {
+ "WebAppName": "$(WebAppName)"
+ }
+ },
+ {
+ "target": "SlotName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppSlotsId",
+ "parameters": {
+ "WebAppName": "$(WebAppName)",
+ "ResourceGroupName": "$(ResourceGroupName)"
+ },
+ "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}"
+ },
+ {
+ "target": "RuntimeStack",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureRMWebAppRuntimeStacksByOsType",
+ "parameters": {
+ "osTypeSelected": "Linux"
+ },
+ "resultTemplate": "{\"Value\":\"{{{ runtimeVersion }}}\",\"DisplayValue\":\"{{{ displayVersion }}} ({{{ runtimeVersion }}})\"}"
+ }
+ ],
+ "instanceNameFormat": "Azure App Service Deploy: $(WebAppName)",
+ "execution": {
+ "Node16": {
+ "target": "azurermwebappdeployment.js",
+ "argumentFormat": ""
+ },
+ "Node10": {
+ "target": "azurermwebappdeployment.js"
+ }
+ },
+ "messages": {
+ "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
+ "SetParamFilenotfound0": "Set parameters file not found: %s",
+ "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
+ "GotconnectiondetailsforazureRMWebApp0": "Got service connection details for Azure App Service:'%s'",
+ "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists",
+ "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve service connection details for Azure App Service : %s. Status Code: %s (%s)",
+ "UnabletoretrieveResourceID": "Unable to retrieve service connection details for Azure Resource:'%s'. Status Code: %s",
+ "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s",
+ "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s",
+ "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website",
+ "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'",
+ "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']",
+ "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'",
+ "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved",
+ "PackageDeploymentSuccess": "Successfully deployed web package to App Service.",
+ "PackageDeploymentFailed": "Failed to deploy web package to App Service.",
+ "Runningcommand": "Running command: %s",
+ "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)",
+ "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s",
+ "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s",
+ "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s",
+ "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.",
+ "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above",
+ "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)",
+ "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.",
+ "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.",
+ "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.",
+ "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.",
+ "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
+ "Configfiledoesntexists": "Configuration file %s doesn't exist.",
+ "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s",
+ "AppOfflineModeenabled": "App offline mode enabled.",
+ "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)",
+ "AppOflineModedisabled": "App offline mode disabled.",
+ "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)",
+ "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
+ "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
+ "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent",
+ "Publishusingzipdeploynotsupportedformsbuildpackage": "Publish using zip deploy option is not supported for msBuild package type.",
+ "Publishusingzipdeploynotsupportedforvirtualapplication": "Publish using zip deploy option is not supported for virtual application.",
+ "Publishusingzipdeploydoesnotsupportwarfile": "Publish using zip deploy or RunFromZip options do not support war file deployment.",
+ "Publishusingrunfromzipwithpostdeploymentscript": "Publish using RunFromZip might not support post deployment script if it makes changes to wwwroot, since the folder is ReadOnly.",
+ "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.",
+ "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.",
+ "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.",
+ "ShortFileBufferError": "File buffer is too short to detect encoding type : %s",
+ "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s",
+ "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details",
+ "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s",
+ "Physicalpathalreadyexists": "Physical path '%s' already exists",
+ "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s",
+ "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s",
+ "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s",
+ "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s",
+ "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
+ "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
+ "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
+ "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s",
+ "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s",
+ "ExecuteScriptOnKudu": "Executing given script on Kudu service.",
+ "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s",
+ "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s",
+ "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.",
+ "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s",
+ "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s",
+ "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s",
+ "ScriptFileNotFound": "Script file '%s' not found.",
+ "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux",
+ "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.",
+ "stdoutFromScript": "Standard output from script: ",
+ "stderrFromScript": "Standard error from script: ",
+ "WebConfigAlreadyExists": "web.config file already exists. Not generating.",
+ "SuccessfullyGeneratedWebConfig": "Successfully generated web.config file",
+ "FailedToGenerateWebConfig": "Failed to generate web.config. %s",
+ "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)",
+ "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s",
+ "ScriptStatusTimeout": "Unable to fetch script status due to timeout.",
+ "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.",
+ "InvalidPollOption": "Invalid polling option provided: %s.",
+ "MissingAppTypeWebConfigParameters": "Attribute '-appType' is missing in the Web.config parameters. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask', 'node' and 'Go'. For example, '-appType python_Bottle' (sans-quotes) in case of Python Bottle framework..",
+ "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'",
+ "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
+ "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ",
+ "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.",
+ "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.",
+ "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'",
+ "UnableToFetchAuthorityURL": "Unable to fetch authority URL.",
+ "UnableToFetchActiveDirectory": "Unable to fetch Active Directory resource ID.",
+ "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.",
+ "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.",
+ "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.",
+ "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.",
+ "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s",
+ "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s",
+ "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentials.[Status Code: '%s']",
+ "UnableToReadResponseBody": "Unable to read response body. Error: %s",
+ "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'",
+ "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'",
+ "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s",
+ "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s",
+ "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.",
+ "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s",
+ "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destination' option or Stop continuous Jobs before deployment.",
+ "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s",
+ "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s",
+ "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s",
+ "FailedToDeleteFolder": "Failed to delete folder '%s' from Kudu. Error: %s",
+ "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s",
+ "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s",
+ "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s",
+ "RetryToDeploy": "Retrying to deploy the package.",
+ "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s",
+ "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s",
+ "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s",
+ "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s",
+ "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s",
+ "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s",
+ "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s",
+ "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s",
+ "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s",
+ "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s",
+ "UpdatingAppServiceConfigurationSettings": "Trying to update App Service Configuration settings. Data: %s",
+ "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.",
+ "UpdatingAppServiceApplicationSettings": "Trying to update App Service Application settings. Data: %s",
+ "AppServiceApplicationSettingsAlreadyPresent": "App Service Application settings are already present.",
+ "AppServiceConnectionStringsAlreadyPresent": "App Service Connection Strings are already present.",
+ "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.",
+ "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
+ "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
+ "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
+ "WarPackageDeploymentInitiated": "Package deployment using WAR Deploy initiated.",
+ "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
+ "GoExeNameNotPresent": "Go exe name is not present",
+ "WarDeploymentRetry": "Retrying war file deployment as it did not expand successfully earlier.",
+ "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.",
+ "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
+ "XmlParsingFailed": "Unable to parse publishProfileXML file, Error: %s",
+ "PropertyDoesntExistPublishProfile": "[%s] Property does not exist in publish profile",
+ "InvalidConnectionType": "Invalid service connection type",
+ "InvalidImageSourceType": "Invalid Image source Type",
+ "InvalidPublishProfile": "Publish profile file is invalid.",
+ "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline",
+ "ZipDeployLogsURL": "Zip Deploy logs can be viewed at %s",
+ "DeployLogsURL": "Deploy logs can be viewed at %s",
+ "AppServiceApplicationURL": "App Service Application URL: %s",
+ "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.",
+ "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s",
+ "JarPathNotPresent": "Java jar path is not present",
+ "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s",
+ "RunFromZipPreventsFileInUseError": "Move from Web Deploy to RunFrom Package, which helps in avoiding FILE_IN_USE error. Note that Run From Package does not support msBuild package type. Please change your package format to use this deployment method.",
+ "MSDeployNotSupportTokenAuth": "App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy ."
}
- },
- "messages": {
- "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s",
- "SetParamFilenotfound0": "Set parameters file not found: %s",
- "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
- "GotconnectiondetailsforazureRMWebApp0": "Got service connection details for Azure App Service:'%s'",
- "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists",
- "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve service connection details for Azure App Service : %s. Status Code: %s (%s)",
- "UnabletoretrieveResourceID": "Unable to retrieve service connection details for Azure Resource:'%s'. Status Code: %s",
- "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s",
- "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s",
- "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website",
- "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'",
- "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']",
- "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'",
- "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved",
- "PackageDeploymentSuccess": "Successfully deployed web package to App Service.",
- "PackageDeploymentFailed": "Failed to deploy web package to App Service.",
- "Runningcommand": "Running command: %s",
- "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)",
- "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s",
- "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s",
- "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s",
- "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.",
- "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above",
- "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)",
- "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.",
- "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.",
- "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.",
- "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.",
- "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
- "Configfiledoesntexists": "Configuration file %s doesn't exist.",
- "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s",
- "AppOfflineModeenabled": "App offline mode enabled.",
- "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)",
- "AppOflineModedisabled": "App offline mode disabled.",
- "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)",
- "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
- "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
- "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent",
- "Publishusingzipdeploynotsupportedformsbuildpackage": "Publish using zip deploy option is not supported for msBuild package type.",
- "Publishusingzipdeploynotsupportedforvirtualapplication": "Publish using zip deploy option is not supported for virtual application.",
- "Publishusingzipdeploydoesnotsupportwarfile": "Publish using zip deploy or RunFromZip options do not support war file deployment.",
- "Publishusingrunfromzipwithpostdeploymentscript": "Publish using RunFromZip might not support post deployment script if it makes changes to wwwroot, since the folder is ReadOnly.",
- "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.",
- "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.",
- "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.",
- "ShortFileBufferError": "File buffer is too short to detect encoding type : %s",
- "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s",
- "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details",
- "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s",
- "Physicalpathalreadyexists": "Physical path '%s' already exists",
- "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s",
- "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s",
- "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s",
- "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s",
- "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
- "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
- "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
- "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s",
- "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s",
- "ExecuteScriptOnKudu": "Executing given script on Kudu service.",
- "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s",
- "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s",
- "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.",
- "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s",
- "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s",
- "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s",
- "ScriptFileNotFound": "Script file '%s' not found.",
- "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux",
- "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.",
- "stdoutFromScript": "Standard output from script: ",
- "stderrFromScript": "Standard error from script: ",
- "WebConfigAlreadyExists": "web.config file already exists. Not generating.",
- "SuccessfullyGeneratedWebConfig": "Successfully generated web.config file",
- "FailedToGenerateWebConfig": "Failed to generate web.config. %s",
- "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)",
- "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s",
- "ScriptStatusTimeout": "Unable to fetch script status due to timeout.",
- "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.",
- "InvalidPollOption": "Invalid polling option provided: %s.",
- "MissingAppTypeWebConfigParameters": "Attribute '-appType' is missing in the Web.config parameters. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask', 'node' and 'Go'. For example, '-appType python_Bottle' (sans-quotes) in case of Python Bottle framework..",
- "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'",
- "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
- "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ",
- "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.",
- "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.",
- "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'",
- "UnableToFetchAuthorityURL": "Unable to fetch authority URL.",
- "UnableToFetchActiveDirectory": "Unable to fetch Active Directory resource ID.",
- "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.",
- "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.",
- "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.",
- "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.",
- "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s",
- "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s",
- "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentials.[Status Code: '%s']",
- "UnableToReadResponseBody": "Unable to read response body. Error: %s",
- "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'",
- "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'",
- "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s",
- "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s",
- "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.",
- "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s",
- "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destination' option or Stop continuous Jobs before deployment.",
- "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s",
- "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s",
- "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s",
- "FailedToDeleteFolder": "Failed to delete folder '%s' from Kudu. Error: %s",
- "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s",
- "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s",
- "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s",
- "RetryToDeploy": "Retrying to deploy the package.",
- "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s",
- "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s",
- "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s",
- "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s",
- "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s",
- "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s",
- "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s",
- "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s",
- "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s",
- "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s",
- "UpdatingAppServiceConfigurationSettings": "Trying to update App Service Configuration settings. Data: %s",
- "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.",
- "UpdatingAppServiceApplicationSettings": "Trying to update App Service Application settings. Data: %s",
- "AppServiceApplicationSettingsAlreadyPresent": "App Service Application settings are already present.",
- "AppServiceConnectionStringsAlreadyPresent": "App Service Connection Strings are already present.",
- "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.",
- "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.",
- "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.",
- "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.",
- "WarPackageDeploymentInitiated": "Package deployment using WAR Deploy initiated.",
- "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s",
- "GoExeNameNotPresent": "Go exe name is not present",
- "WarDeploymentRetry": "Retrying war file deployment as it did not expand successfully earlier.",
- "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.",
- "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
- "XmlParsingFailed": "Unable to parse publishProfileXML file, Error: %s",
- "PropertyDoesntExistPublishProfile": "[%s] Property does not exist in publish profile",
- "InvalidConnectionType": "Invalid service connection type",
- "InvalidImageSourceType": "Invalid Image source Type",
- "InvalidPublishProfile": "Publish profile file is invalid.",
- "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline",
- "ZipDeployLogsURL": "Zip Deploy logs can be viewed at %s",
- "DeployLogsURL": "Deploy logs can be viewed at %s",
- "AppServiceApplicationURL": "App Service Application URL: %s",
- "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.",
- "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s",
- "JarPathNotPresent": "Java jar path is not present",
- "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s",
- "RunFromZipPreventsFileInUseError": "Move from Web Deploy to RunFrom Package, which helps in avoiding FILE_IN_USE error. Note that Run From Package does not support msBuild package type. Please change your package format to use this deployment method.",
- "MSDeployNotSupportTokenAuth": "App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy ."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureRmWebAppDeploymentV4/task.loc.json b/Tasks/AzureRmWebAppDeploymentV4/task.loc.json
index 2b8f59691030..16f3f760970f 100644
--- a/Tasks/AzureRmWebAppDeploymentV4/task.loc.json
+++ b/Tasks/AzureRmWebAppDeploymentV4/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 4,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/AzureTestPlanV0/task.json b/Tasks/AzureTestPlanV0/task.json
index 6b9ea848c7ac..4c9e0c0c848b 100644
--- a/Tasks/AzureTestPlanV0/task.json
+++ b/Tasks/AzureTestPlanV0/task.json
@@ -1,198 +1,198 @@
{
- "id": "105e2492-460a-4da6-56d5-2fa9ab3f0174",
- "name": "AzureTestPlan",
- "friendlyName": "Azure Test Plan",
- "description": "Run manual and automated tests in test plan in Java and python language",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-test-results",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613742)",
- "category": "Test",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 0,
- "Minor": 248,
- "Patch": 0
- },
- "preview": true,
- "demands": [],
- "minimumAgentVersion": "2.144.0",
- "inputs": [
- {
- "name": "testSelector",
- "type": "pickList",
- "label": "Test cases to be executed",
- "required": true,
- "helpMarkDown": "
Manual tests: Use this option to trigger manual tests from your test plan.
Automated tests: Use this option to run tests from your test plan that have automated test method associated with it.
",
- "options": {
- "manualTests": "Manual tests",
- "automatedTests": "Automated tests"
- },
- "properties": {
- "MultiSelectFlatList": "True"
- }
+ "id": "105e2492-460a-4da6-56d5-2fa9ab3f0174",
+ "name": "AzureTestPlan",
+ "friendlyName": "Azure Test Plan",
+ "description": "Run manual and automated tests in test plan in Java and python language",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-test-results",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613742)",
+ "category": "Test",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 0,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "testPlan",
- "type": "pickList",
- "label": "Test plan",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select a test plan containing test suites with test cases.",
- "properties": {
- "DisableManageLink": "True",
- "EditableOptions": "True"
- }
+ "preview": true,
+ "demands": [],
+ "minimumAgentVersion": "2.144.0",
+ "inputs": [
+ {
+ "name": "testSelector",
+ "type": "pickList",
+ "label": "Test cases to be executed",
+ "required": true,
+ "helpMarkDown": "
Manual tests: Use this option to trigger manual tests from your test plan.
Automated tests: Use this option to run tests from your test plan that have automated test method associated with it.
",
+ "options": {
+ "manualTests": "Manual tests",
+ "automatedTests": "Automated tests"
+ },
+ "properties": {
+ "MultiSelectFlatList": "True"
+ }
+ },
+ {
+ "name": "testPlan",
+ "type": "pickList",
+ "label": "Test plan",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select a test plan containing test suites with test cases.",
+ "properties": {
+ "DisableManageLink": "True",
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "testSuite",
+ "type": "pickList",
+ "label": "Test suite",
+ "defaultValue": "",
+ "helpMarkDown": "Select one or more test suites containing test cases.",
+ "required": true,
+ "properties": {
+ "MultiSelect": "True",
+ "DisableManageLink": "True",
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "testConfiguration",
+ "type": "pickList",
+ "label": "Test configuration",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select Test Configuration.",
+ "properties": {
+ "DisableManageLink": "True",
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "testLanguageInput",
+ "type": "pickList",
+ "label": "Select Test framework language",
+ "helpMarkDown": "Test Framework Language of automated tests in test plan",
+ "options": {
+ "JavaMaven": "Java-Maven",
+ "JavaGradle": "Java-Gradle",
+ "Python": "Python",
+ "Go": "Go",
+ "Jest": "Jest"
+ }
+ },
+ {
+ "name": "pomFilePath",
+ "type": "string",
+ "label": "Pom file path",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Relative path from the repository root to the Maven POM file.",
+ "visibleRule": "testLanguageInput = JavaMaven"
+ },
+ {
+ "name": "gradleFilePath",
+ "type": "string",
+ "label": "Gradle file path",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Relative path from the repository root to the build.gradle file.",
+ "visibleRule": "testLanguageInput = JavaGradle"
+ },
+ {
+ "name": "mergeTestResults",
+ "type": "boolean",
+ "label": "Merge test results",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "A test run is created for each results file. Check this option to merge results into a single test run. To optimize for better performance, results will be merged into a single run if there are more than 100 result files, irrespective of this option."
+ },
+ {
+ "name": "publishRunAttachments",
+ "type": "boolean",
+ "label": "Upload test results files",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "Upload logs and other files containing diagnostic information collected when the tests were run.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "failTaskOnFailedTests",
+ "type": "boolean",
+ "label": "Fail if there are test failures",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Fail the task if there are any test failures. Check this option to fail the task if test failures are detected in the result files."
+ },
+ {
+ "name": "failTaskOnFailureToPublishResults",
+ "type": "boolean",
+ "label": "Fail if there is failure in publishing test results",
+ "defaultValue": false,
+ "required": false,
+ "helpMarkDown": "Fail if there is failure in publishing test results. Check this option to fail the task if publishing test results is failed partially."
+ },
+ {
+ "name": "failTaskOnMissingResultsFile",
+ "type": "boolean",
+ "label": "Fail if no result files are found",
+ "defaultValue": false,
+ "required": false,
+ "helpMarkDown": "Fail the task if no result files are found."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "testPlan",
+ "endpointId": "tfs:teamfoundation",
+ "endpointUrl": "{{endpoint.url}}/{{system.teamProject}}/_apis/test/plans?filterActivePlans=true&api-version=3.0-preview.2&$skip={{skip}}&$top=1000",
+ "resultSelector": "jsonpath:$.value[*]",
+ "resultTemplate": "{ \"Value\" : \"{{{id}}}\", \"DisplayValue\" : \"{{{id}}} - {{{name}}}\" }",
+ "callbackContextTemplate": "{\"skip\": \"{{add skip 1000}}\"}",
+ "callbackRequiredTemplate": "{{isEqualNumber result.count 1000}}",
+ "initialContextTemplate": "{\"skip\": \"0\"}"
+ },
+ {
+ "target": "testConfiguration",
+ "endpointId": "tfs:teamfoundation",
+ "endpointUrl": "{{endpoint.url}}/{{system.teamProject}}/_apis/test/configurations?api-version=3.0-preview.1",
+ "resultSelector": "jsonpath:$.value[*]",
+ "resultTemplate": "{ \"Value\" : \"{{{id}}}\", \"DisplayValue\" : \"{{{id}}} - {{{name}}}\" }"
+ },
+ {
+ "target": "testSuite",
+ "endpointId": "tfs:teamfoundation",
+ "endpointUrl": "{{endpoint.url}}/{{system.teamProject}}/_apis/test/plans/{{testPlan}}/suites?$asTreeView=true&api-version=3.0-preview.2",
+ "parameters": {
+ "testPlan": "$(testPlan)"
+ },
+ "resultSelector": "jsonpath:$.value[*]"
+ }
+ ],
+ "instanceNameFormat": "Azure Test Plan - $(testSelector)",
+ "execution": {
+ "Node10": {
+ "target": "runTestPlan.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "runTestPlan.js",
+ "argumentFormat": ""
+ }
},
- {
- "name": "testSuite",
- "type": "pickList",
- "label": "Test suite",
- "defaultValue": "",
- "helpMarkDown": "Select one or more test suites containing test cases.",
- "required": true,
- "properties": {
- "MultiSelect": "True",
- "DisableManageLink": "True",
- "EditableOptions": "True"
- }
- },
- {
- "name": "testConfiguration",
- "type": "pickList",
- "label": "Test configuration",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select Test Configuration.",
- "properties": {
- "DisableManageLink": "True",
- "EditableOptions": "True"
- }
- },
- {
- "name": "testLanguageInput",
- "type": "pickList",
- "label": "Select Test framework language",
- "helpMarkDown": "Test Framework Language of automated tests in test plan",
- "options": {
- "JavaMaven": "Java-Maven",
- "JavaGradle": "Java-Gradle",
- "Python": "Python",
- "Go": "Go",
- "Jest": "Jest"
- }
- },
- {
- "name": "pomFilePath",
- "type": "string",
- "label": "Pom file path",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Relative path from the repository root to the Maven POM file.",
- "visibleRule": "testLanguageInput = JavaMaven"
- },
- {
- "name": "gradleFilePath",
- "type": "string",
- "label": "Gradle file path",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Relative path from the repository root to the build.gradle file.",
- "visibleRule": "testLanguageInput = JavaGradle"
- },
- {
- "name": "mergeTestResults",
- "type": "boolean",
- "label": "Merge test results",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "A test run is created for each results file. Check this option to merge results into a single test run. To optimize for better performance, results will be merged into a single run if there are more than 100 result files, irrespective of this option."
- },
- {
- "name": "publishRunAttachments",
- "type": "boolean",
- "label": "Upload test results files",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "Upload logs and other files containing diagnostic information collected when the tests were run.",
- "groupName": "advanced"
- },
- {
- "name": "failTaskOnFailedTests",
- "type": "boolean",
- "label": "Fail if there are test failures",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Fail the task if there are any test failures. Check this option to fail the task if test failures are detected in the result files."
- },
- {
- "name": "failTaskOnFailureToPublishResults",
- "type": "boolean",
- "label": "Fail if there is failure in publishing test results",
- "defaultValue": false,
- "required": false,
- "helpMarkDown": "Fail if there is failure in publishing test results. Check this option to fail the task if publishing test results is failed partially."
- },
- {
- "name": "failTaskOnMissingResultsFile",
- "type": "boolean",
- "label": "Fail if no result files are found",
- "defaultValue": false,
- "required": false,
- "helpMarkDown": "Fail the task if no result files are found."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "testPlan",
- "endpointId": "tfs:teamfoundation",
- "endpointUrl": "{{endpoint.url}}/{{system.teamProject}}/_apis/test/plans?filterActivePlans=true&api-version=3.0-preview.2&$skip={{skip}}&$top=1000",
- "resultSelector": "jsonpath:$.value[*]",
- "resultTemplate": "{ \"Value\" : \"{{{id}}}\", \"DisplayValue\" : \"{{{id}}} - {{{name}}}\" }",
- "callbackContextTemplate": "{\"skip\": \"{{add skip 1000}}\"}",
- "callbackRequiredTemplate": "{{isEqualNumber result.count 1000}}",
- "initialContextTemplate": "{\"skip\": \"0\"}"
- },
- {
- "target": "testConfiguration",
- "endpointId": "tfs:teamfoundation",
- "endpointUrl": "{{endpoint.url}}/{{system.teamProject}}/_apis/test/configurations?api-version=3.0-preview.1",
- "resultSelector": "jsonpath:$.value[*]",
- "resultTemplate": "{ \"Value\" : \"{{{id}}}\", \"DisplayValue\" : \"{{{id}}} - {{{name}}}\" }"
- },
- {
- "target": "testSuite",
- "endpointId": "tfs:teamfoundation",
- "endpointUrl": "{{endpoint.url}}/{{system.teamProject}}/_apis/test/plans/{{testPlan}}/suites?$asTreeView=true&api-version=3.0-preview.2",
- "parameters": {
- "testPlan": "$(testPlan)"
- },
- "resultSelector": "jsonpath:$.value[*]"
- }
- ],
- "instanceNameFormat": "Azure Test Plan - $(testSelector)",
- "execution": {
- "Node10": {
- "target": "runTestPlan.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "runTestPlan.js",
- "argumentFormat": ""
+ "messages": {
+ "testPlanInput": "Test plan Id : %s",
+ "testplanConfigInput": "Test plan configuration Id : %s",
+ "testSuiteSelected": "Test suite Id selected: %s",
+ "automatedTestTriggered": "Triggering execution of Automated tests from test plan",
+ "ErrorFailTaskOnExecutingTests": "Error occured while executing test command",
+ "ErrorFailTaskOnAPIFailure": "Error occured while fetching automated tests from test plan inputs",
+ "ErrorFailTaskOnCreateRunFailure": "Error occured while creating manual test run from test plan inputs",
+ "chmodGradlew": "Used 'chmod' method for gradlew file to make it executable.",
+ "NoMatchingFilesFound": "No test result files matching '%s' were found.",
+ "MultipleMatchingGradlewFound": "Multiple gradlew files found. Selecting the first matched instance"
}
- },
- "messages": {
- "testPlanInput": "Test plan Id : %s",
- "testplanConfigInput": "Test plan configuration Id : %s",
- "testSuiteSelected": "Test suite Id selected: %s",
- "automatedTestTriggered": "Triggering execution of Automated tests from test plan",
- "ErrorFailTaskOnExecutingTests": "Error occured while executing test command",
- "ErrorFailTaskOnAPIFailure": "Error occured while fetching automated tests from test plan inputs",
- "ErrorFailTaskOnCreateRunFailure": "Error occured while creating manual test run from test plan inputs",
- "chmodGradlew": "Used 'chmod' method for gradlew file to make it executable.",
- "NoMatchingFilesFound": "No test result files matching '%s' were found.",
- "MultipleMatchingGradlewFound": "Multiple gradlew files found. Selecting the first matched instance"
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureTestPlanV0/task.loc.json b/Tasks/AzureTestPlanV0/task.loc.json
index bc55ba96f681..d359cc6dfc9f 100644
--- a/Tasks/AzureTestPlanV0/task.loc.json
+++ b/Tasks/AzureTestPlanV0/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 248,
+ "Minor": 250,
"Patch": 0
},
"preview": true,
diff --git a/Tasks/AzureVmssDeploymentV1/task.json b/Tasks/AzureVmssDeploymentV1/task.json
index 253233ea98e5..86aaec1073c7 100644
--- a/Tasks/AzureVmssDeploymentV1/task.json
+++ b/Tasks/AzureVmssDeploymentV1/task.json
@@ -1,229 +1,229 @@
{
- "id": "4dda660c-b643-4598-a4a2-61080d0002d9",
- "name": "AzureVmssDeployment",
- "friendlyName": "Azure VM scale set deployment",
- "description": "Deploy a virtual machine scale set image",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-vmss-deployment",
- "helpMarkDown": "[Learn more about this task](https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-vmss-deployment)",
- "category": "Deploy",
- "releaseNotes": "- Updates Azure Virtual Machine scale set with a custom machine image.",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 247,
- "Patch": 4
- },
- "demands": [],
- "minimumAgentVersion": "2.209.0",
- "groups": [
- {
- "name": "AzureDetails",
- "displayName": "Azure Details",
- "isExpanded": true
+ "id": "4dda660c-b643-4598-a4a2-61080d0002d9",
+ "name": "AzureVmssDeployment",
+ "friendlyName": "Azure VM scale set deployment",
+ "description": "Deploy a virtual machine scale set image",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-vmss-deployment",
+ "helpMarkDown": "[Learn more about this task](https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-vmss-deployment)",
+ "category": "Deploy",
+ "releaseNotes": "- Updates Azure Virtual Machine scale set with a custom machine image.",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "Image",
- "displayName": "Image Details",
- "isExpanded": true,
- "visibleRule": "action = Update image || action = UpdateImage"
+ "demands": [],
+ "minimumAgentVersion": "2.209.0",
+ "groups": [
+ {
+ "name": "AzureDetails",
+ "displayName": "Azure Details",
+ "isExpanded": true
+ },
+ {
+ "name": "Image",
+ "displayName": "Image Details",
+ "isExpanded": true,
+ "visibleRule": "action = Update image || action = UpdateImage"
+ },
+ {
+ "name": "StartupConfiguration",
+ "displayName": "Configure start-up",
+ "isExpanded": true,
+ "visibleRule": "action = Configure application startup || action = Update image || action = UpdateImage"
+ },
+ {
+ "name": "Advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Select the Azure Resource Manager subscription for the scale set."
+ },
+ {
+ "name": "action",
+ "type": "pickList",
+ "label": "Action",
+ "defaultValue": "Update image",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Choose between updating a VM scale set by using a VHD image and/or by running deployment/install scripts using Custom Script VM extension. The VHD image approach is better for scaling quickly and doing rollback. The extension approach is useful for post deployment configuration, software installation, or any other configuration / management task. You can use a VHD image to update a VM scale set only when it was created by using a custom image, the update will fail if the VM Scale set was created by using a platform/gallery image available in Azure. The Custom script VM extension approach can be used for VM scale set created by using either custom image or platform/gallery image.",
+ "options": {
+ "Update image": "Update VM Scale set by using an image",
+ "Configure application startup": "Run Custom Script VM extension on VM scale set"
+ }
+ },
+ {
+ "name": "vmssName",
+ "type": "pickList",
+ "label": "Virtual Machine scale set name",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Name of VM scale set which you want to update by using either a VHD image or by using Custom script VM extension.",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "vmssOsType",
+ "type": "pickList",
+ "label": "OS type",
+ "required": true,
+ "groupName": "AzureDetails",
+ "helpMarkDown": "Select the operating system type of VM scale set.",
+ "options": {
+ "Windows": "Windows",
+ "Linux": "Linux"
+ },
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "imageUrl",
+ "type": "string",
+ "label": "Image URL",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "Image",
+ "helpMarkDown": "Specify the URL of VHD image. If it is an Azure storage blob URL, the storage account location should be same as scale set location."
+ },
+ {
+ "name": "customScriptsDirectory",
+ "type": "filePath",
+ "label": "Custom script directory",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "StartupConfiguration",
+ "helpMarkDown": "Path to directory containing custom script(s) that will be run by using Custom Script VM extension. The extension approach is useful for post deployment configuration, application/software installation, or any other application configuration/management task. For example: the script can set a machine level environment variable which the application uses, like database connection string."
+ },
+ {
+ "name": "customScript",
+ "type": "string",
+ "label": "Command",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "StartupConfiguration",
+ "helpMarkDown": "The script that will be run by using Custom Script VM extension. This script can invoke other scripts in the directory. The script will be invoked with arguments passed below. This script in conjugation with such arguments can be used to execute commands. For example: 1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) will update connection string in web.config of web application. 2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey will create an encrypted file containing service principal key."
+ },
+ {
+ "name": "customScriptArguments",
+ "type": "string",
+ "label": "Arguments",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "StartupConfiguration",
+ "helpMarkDown": "The custom script will be invoked with arguments passed. Build/Release variables can be used which makes it easy to use secrets."
+ },
+ {
+ "name": "customScriptsStorageAccount",
+ "type": "pickList",
+ "label": "Azure storage account where custom scripts will be uploaded",
+ "defaultValue": "",
+ "required": false,
+ "groupName": "StartupConfiguration",
+ "helpMarkDown": "The Custom Script Extension downloads and executes scripts provided by you on each virtual machines in the VM scale set. These scripts will be stored in the storage account specified here. Specify a pre-existing ARM storage account.",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "skipArchivingCustomScripts",
+ "type": "boolean",
+ "label": "Skip Archiving custom scripts",
+ "defaultValue": false,
+ "groupName": "Advanced",
+ "helpMarkDown": "By default, this task creates a compressed archive of directory containing custom scripts. This improves performance and reliability while uploading to azure storage. If not selected, archiving will not be done and all files will be inidividually uploaded."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "vmssName",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureVirtualMachineScaleSetNames"
+ },
+ {
+ "target": "customScriptsStorageAccount",
+ "endpointId": "$(ConnectedServiceName)",
+ "dataSourceName": "AzureStorageAccountRM"
+ }
+ ],
+ "instanceNameFormat": "Azure VMSS $(vmssName): $(action)",
+ "execution": {
+ "Node20_1": {
+ "target": "main.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "main.js",
+ "argumentFormat": ""
+ }
},
- {
- "name": "StartupConfiguration",
- "displayName": "Configure start-up",
- "isExpanded": true,
- "visibleRule": "action = Configure application startup || action = Update image || action = UpdateImage"
- },
- {
- "name": "Advanced",
- "displayName": "Advanced",
- "isExpanded": false
- }
- ],
- "inputs": [
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "defaultValue": "",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Select the Azure Resource Manager subscription for the scale set."
- },
- {
- "name": "action",
- "type": "pickList",
- "label": "Action",
- "defaultValue": "Update image",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Choose between updating a VM scale set by using a VHD image and/or by running deployment/install scripts using Custom Script VM extension. The VHD image approach is better for scaling quickly and doing rollback. The extension approach is useful for post deployment configuration, software installation, or any other configuration / management task. You can use a VHD image to update a VM scale set only when it was created by using a custom image, the update will fail if the VM Scale set was created by using a platform/gallery image available in Azure. The Custom script VM extension approach can be used for VM scale set created by using either custom image or platform/gallery image.",
- "options": {
- "Update image": "Update VM Scale set by using an image",
- "Configure application startup": "Run Custom Script VM extension on VM scale set"
- }
- },
- {
- "name": "vmssName",
- "type": "pickList",
- "label": "Virtual Machine scale set name",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Name of VM scale set which you want to update by using either a VHD image or by using Custom script VM extension.",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "vmssOsType",
- "type": "pickList",
- "label": "OS type",
- "required": true,
- "groupName": "AzureDetails",
- "helpMarkDown": "Select the operating system type of VM scale set.",
- "options": {
- "Windows": "Windows",
- "Linux": "Linux"
- },
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "imageUrl",
- "type": "string",
- "label": "Image URL",
- "defaultValue": "",
- "required": true,
- "groupName": "Image",
- "helpMarkDown": "Specify the URL of VHD image. If it is an Azure storage blob URL, the storage account location should be same as scale set location."
- },
- {
- "name": "customScriptsDirectory",
- "type": "filePath",
- "label": "Custom script directory",
- "defaultValue": "",
- "required": false,
- "groupName": "StartupConfiguration",
- "helpMarkDown": "Path to directory containing custom script(s) that will be run by using Custom Script VM extension. The extension approach is useful for post deployment configuration, application/software installation, or any other application configuration/management task. For example: the script can set a machine level environment variable which the application uses, like database connection string."
- },
- {
- "name": "customScript",
- "type": "string",
- "label": "Command",
- "defaultValue": "",
- "required": false,
- "groupName": "StartupConfiguration",
- "helpMarkDown": "The script that will be run by using Custom Script VM extension. This script can invoke other scripts in the directory. The script will be invoked with arguments passed below. This script in conjugation with such arguments can be used to execute commands. For example: 1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) will update connection string in web.config of web application. 2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey will create an encrypted file containing service principal key."
- },
- {
- "name": "customScriptArguments",
- "type": "string",
- "label": "Arguments",
- "defaultValue": "",
- "required": false,
- "groupName": "StartupConfiguration",
- "helpMarkDown": "The custom script will be invoked with arguments passed. Build/Release variables can be used which makes it easy to use secrets."
- },
- {
- "name": "customScriptsStorageAccount",
- "type": "pickList",
- "label": "Azure storage account where custom scripts will be uploaded",
- "defaultValue": "",
- "required": false,
- "groupName": "StartupConfiguration",
- "helpMarkDown": "The Custom Script Extension downloads and executes scripts provided by you on each virtual machines in the VM scale set. These scripts will be stored in the storage account specified here. Specify a pre-existing ARM storage account.",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "skipArchivingCustomScripts",
- "type": "boolean",
- "label": "Skip Archiving custom scripts",
- "defaultValue": false,
- "groupName": "Advanced",
- "helpMarkDown": "By default, this task creates a compressed archive of directory containing custom scripts. This improves performance and reliability while uploading to azure storage. If not selected, archiving will not be done and all files will be inidividually uploaded."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "vmssName",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureVirtualMachineScaleSetNames"
- },
- {
- "target": "customScriptsStorageAccount",
- "endpointId": "$(ConnectedServiceName)",
- "dataSourceName": "AzureStorageAccountRM"
- }
- ],
- "instanceNameFormat": "Azure VMSS $(vmssName): $(action)",
- "execution": {
- "Node20_1": {
- "target": "main.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "main.js",
- "argumentFormat": ""
+ "messages": {
+ "InvalidAction": "This action is not defined. Check with the task author.",
+ "TaskNotFound": "Task.json file could not be found: %s",
+ "TaskConstructorFailed": "Task failed while initializing. Error: %s",
+ "InvalidValue": "%s is not a valid value. The valid values are: %s",
+ "VMSSListFetchFailed": "Failed to fetch VMSS details. Error: %s",
+ "NoVMSSFound": "No VMSS found with name %s.",
+ "FailedToGetRGForVMSS": "Failed to get resource group information for VMSS %s.",
+ "VMSSImageUpdateFailed": "Failed to update image for VMSS %s. Error: %s",
+ "UpdatedVMSSImage": "Successfully updated VMSS image.",
+ "GetVMSSExtensionsListFailed": "Failed to fetch list of VM extensions for VMSS %s. Error: %s.",
+ "CustomScriptExtensionRemoved": "Custom script extension %s removed successfully.",
+ "CustomScriptExtensionInstalled": "Custom script extension %s installed successfully.",
+ "RemovingCustomScriptExtension": "VMSS already has an custom script extension %s. This will be removed first.",
+ "RemoveVMSSExtensionsFailed": "Failed to remove VM extension %s. Error: %s.",
+ "SettingVMExtensionFailed": "Failed to install VM custom script extension on VMSS. Error: %s.",
+ "VMSSNameCannotBeNull": "VMSS name cannot be null or undefined and it must be of type string.",
+ "GetVMSSFailed": "Failed to get VMSS details with resource group %s and name %s. Error: %s",
+ "VMSSDoesNotHaveCustomImage": "VMSS %s can not be updated as it uses a platform image. Only a VMSS which is currently using a custom image can be updated.",
+ "VMSSImageUrlCannotBeNull": "Image URL must be a non empty string.",
+ "VMSSImageAlreadyUptoDate": "Image is already up-to-date for %s. Skipping image update.",
+ "NewVMSSImageUrl": "URL for new VMSS image: %s.",
+ "VMSSUpdateImage": "Updating VMSS %s to use new image...",
+ "ResourceNameCannotBeNull": "Resource name cannot be null.",
+ "ArchivingCustomScripts": "Creating compressed archive of custom scripts directory %s.",
+ "SkippedArchivingCustomScripts": "Skipped archiving custom scripts directory",
+ "CustomScriptsArchiveFile": "Custom scripts archive created at %s.",
+ "CopiedInvokerScript": "Script to extract and execute custom script archive has been copied to %s.",
+ "CustomScriptsArchivingFailed": "Could not compress custom scripts. Will use individual files.",
+ "UploadingCustomScriptsBlobs": "Uploading custom scripts from %s to azure blobs.",
+ "UploadingToStorageBlobsFailed": "Failed to upload custom scripts to azure blob storage. Error: %s.",
+ "DestinationBlobContainer": "Files will be uploaded to container URL: %s.",
+ "StorageAccountDoesNotExist": "Failed to get azure storage account with name %s.",
+ "activeDirectoryResourceIdUrlCannotBeEmpty": "Active directory resource URL cannot be empty.",
+ "StorageAccountCannotBeNull": "storage accountName cannot be null or undefined and it must be of type string.",
+ "ArtifactItemsTruncationWarning": "Downloaded items may be truncated at 5000 items, all artifact items might not have been downloaded.",
+ "CreatedBlobForItem": "Created blob for item %s. Blob uri: %s.",
+ "CreatedContainer": "Created container %s.",
+ "ErrorInReadStream": "Error in Read stream: %s.",
+ "ErrorInWriteStream": "Error in write stream: %s.",
+ "FailedToCreateBlob": "Failed to create blob %s. Error: %s.",
+ "FailedToCreateContainer": "Failed to create container %s. Error: %s.",
+ "FailedToListItemInsideContainer": "Failed to list items inside container: %s. Error: %s.",
+ "SuccessFullyFetchedItemList": "Successfully fetched list of items",
+ "UnableToFetchItem": "Unable to fetch item: %s. Error: %s.",
+ "UploadingItem": "Uploading %s.",
+ "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
+ "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
+ "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
}
- },
- "messages": {
- "InvalidAction": "This action is not defined. Check with the task author.",
- "TaskNotFound": "Task.json file could not be found: %s",
- "TaskConstructorFailed": "Task failed while initializing. Error: %s",
- "InvalidValue": "%s is not a valid value. The valid values are: %s",
- "VMSSListFetchFailed": "Failed to fetch VMSS details. Error: %s",
- "NoVMSSFound": "No VMSS found with name %s.",
- "FailedToGetRGForVMSS": "Failed to get resource group information for VMSS %s.",
- "VMSSImageUpdateFailed": "Failed to update image for VMSS %s. Error: %s",
- "UpdatedVMSSImage": "Successfully updated VMSS image.",
- "GetVMSSExtensionsListFailed": "Failed to fetch list of VM extensions for VMSS %s. Error: %s.",
- "CustomScriptExtensionRemoved": "Custom script extension %s removed successfully.",
- "CustomScriptExtensionInstalled": "Custom script extension %s installed successfully.",
- "RemovingCustomScriptExtension": "VMSS already has an custom script extension %s. This will be removed first.",
- "RemoveVMSSExtensionsFailed": "Failed to remove VM extension %s. Error: %s.",
- "SettingVMExtensionFailed": "Failed to install VM custom script extension on VMSS. Error: %s.",
- "VMSSNameCannotBeNull": "VMSS name cannot be null or undefined and it must be of type string.",
- "GetVMSSFailed": "Failed to get VMSS details with resource group %s and name %s. Error: %s",
- "VMSSDoesNotHaveCustomImage": "VMSS %s can not be updated as it uses a platform image. Only a VMSS which is currently using a custom image can be updated.",
- "VMSSImageUrlCannotBeNull": "Image URL must be a non empty string.",
- "VMSSImageAlreadyUptoDate": "Image is already up-to-date for %s. Skipping image update.",
- "NewVMSSImageUrl": "URL for new VMSS image: %s.",
- "VMSSUpdateImage": "Updating VMSS %s to use new image...",
- "ResourceNameCannotBeNull": "Resource name cannot be null.",
- "ArchivingCustomScripts": "Creating compressed archive of custom scripts directory %s.",
- "SkippedArchivingCustomScripts": "Skipped archiving custom scripts directory",
- "CustomScriptsArchiveFile": "Custom scripts archive created at %s.",
- "CopiedInvokerScript": "Script to extract and execute custom script archive has been copied to %s.",
- "CustomScriptsArchivingFailed": "Could not compress custom scripts. Will use individual files.",
- "UploadingCustomScriptsBlobs": "Uploading custom scripts from %s to azure blobs.",
- "UploadingToStorageBlobsFailed": "Failed to upload custom scripts to azure blob storage. Error: %s.",
- "DestinationBlobContainer": "Files will be uploaded to container URL: %s.",
- "StorageAccountDoesNotExist": "Failed to get azure storage account with name %s.",
- "activeDirectoryResourceIdUrlCannotBeEmpty": "Active directory resource URL cannot be empty.",
- "StorageAccountCannotBeNull": "storage accountName cannot be null or undefined and it must be of type string.",
- "ArtifactItemsTruncationWarning": "Downloaded items may be truncated at 5000 items, all artifact items might not have been downloaded.",
- "CreatedBlobForItem": "Created blob for item %s. Blob uri: %s.",
- "CreatedContainer": "Created container %s.",
- "ErrorInReadStream": "Error in Read stream: %s.",
- "ErrorInWriteStream": "Error in write stream: %s.",
- "FailedToCreateBlob": "Failed to create blob %s. Error: %s.",
- "FailedToCreateContainer": "Failed to create container %s. Error: %s.",
- "FailedToListItemInsideContainer": "Failed to list items inside container: %s. Error: %s.",
- "SuccessFullyFetchedItemList": "Successfully fetched list of items",
- "UnableToFetchItem": "Unable to fetch item: %s. Error: %s.",
- "UploadingItem": "Uploading %s.",
- "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s",
- "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s",
- "ExpiredServicePrincipal": "Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired."
- }
}
\ No newline at end of file
diff --git a/Tasks/AzureVmssDeploymentV1/task.loc.json b/Tasks/AzureVmssDeploymentV1/task.loc.json
index 58bacc22fe92..1d5e4334c421 100644
--- a/Tasks/AzureVmssDeploymentV1/task.loc.json
+++ b/Tasks/AzureVmssDeploymentV1/task.loc.json
@@ -14,8 +14,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
- "Patch": 4
+ "Minor": 250,
+ "Patch": 0
},
"demands": [],
"minimumAgentVersion": "2.209.0",
diff --git a/Tasks/BashV3/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/BashV3/Strings/resources.resjson/zh-TW/resources.resjson
index 3c9af996c91a..8da19b1f2352 100644
--- a/Tasks/BashV3/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/BashV3/Strings/resources.resjson/zh-TW/resources.resjson
@@ -16,7 +16,7 @@
"loc.input.label.failOnStderr": "發生標準錯誤的失敗",
"loc.input.help.failOnStderr": "若此為 true,則任何錯誤寫入 StandardError 資料流時,此工作便會失敗。",
"loc.input.label.bashEnvValue": "設定 BASH_ENV 環境變數的值",
- "loc.input.help.bashEnvValue": "若指定輸入,其值會展開,並作為執行指令碼前要執行之啟動檔案的路徑。如果已定義環境變數 'BASH_ENV',則工作只會針對目前的工作覆寫此變數。您可以透過 [link] (https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html) 找到更多詳細資料。",
+ "loc.input.help.bashEnvValue": "If input is specified, it's value is expanded and used as the path of a startup file to execute before running the script. If the environment variable `BASH_ENV` has already been defined, the task will override this variable only for the current task. You can find more details by [link](https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html).",
"loc.messages.GeneratingScript": "正在產生指令碼。",
"loc.messages.JS_ExitCode": "Bash 已結束,代碼為 '%s'。",
"loc.messages.JS_ExitCode_137": "Bash 已結束,代碼為 137,這表示記憶體不足。請確定代理程式 (容器) 主機已設定足夠的記憶體。",
diff --git a/Tasks/BashV3/task.json b/Tasks/BashV3/task.json
index 5c0fde233cc7..557ee0e1ff25 100644
--- a/Tasks/BashV3/task.json
+++ b/Tasks/BashV3/task.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "Script task consistency. Added support for multiple lines and added support for Windows.",
diff --git a/Tasks/BashV3/task.loc.json b/Tasks/BashV3/task.loc.json
index d68a9808a338..2e05bba1bd40 100644
--- a/Tasks/BashV3/task.loc.json
+++ b/Tasks/BashV3/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 3,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/CacheBetaV0/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/CacheBetaV0/Strings/resources.resjson/it-IT/resources.resjson
index 5c6b0353e2ff..7089841b1749 100644
--- a/Tasks/CacheBetaV0/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/CacheBetaV0/Strings/resources.resjson/it-IT/resources.resjson
@@ -6,7 +6,7 @@
"loc.input.label.key": "Chiave",
"loc.input.help.key": "Chiave (identificatore univoco) per la cache. Deve essere un elenco di stringhe o percorsi di file delimitati da caratteri di nuova riga. I percorsi di file possono essere assoluti o relativi a $(System.DefaultWorkingDirectory).",
"loc.input.label.path": "Percorso",
- "loc.input.help.path": "Percorso della cartella da memorizzare nella cache. Può essere completo o relativo a $(System.DefaultWorkingDirectory). I caratteri jolly non sono supportati. Le [variabili] (https://go.microsoft.com/fwlink/?LinkID=550988) sono supportate.",
+ "loc.input.help.path": "Path of the folder to cache. Can be fully-qualified or relative to $(System.DefaultWorkingDirectory). Wildcards are not supported. [Variables](https://go.microsoft.com/fwlink/?LinkID=550988) are supported.",
"loc.input.label.cacheHitVar": "Variabile per riscontro nella cache",
"loc.input.help.cacheHitVar": "Variabile da impostare su 'true' quando viene ripristinata la cache, ovvero un riscontro nella cache; in caso contrario deve essere impostata su 'false'."
}
\ No newline at end of file
diff --git a/Tasks/CacheBetaV0/task.json b/Tasks/CacheBetaV0/task.json
index 5d07cce2019c..c984007944cc 100644
--- a/Tasks/CacheBetaV0/task.json
+++ b/Tasks/CacheBetaV0/task.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 244,
+ "Minor": 250,
"Patch": 0
},
"groups": [],
diff --git a/Tasks/CacheBetaV0/task.loc.json b/Tasks/CacheBetaV0/task.loc.json
index 2e5e309855e2..15797e23ebb0 100644
--- a/Tasks/CacheBetaV0/task.loc.json
+++ b/Tasks/CacheBetaV0/task.loc.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 244,
+ "Minor": 250,
"Patch": 0
},
"groups": [],
diff --git a/Tasks/CacheBetaV1/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/CacheBetaV1/Strings/resources.resjson/it-IT/resources.resjson
index 4794037d5df7..874234ecd790 100644
--- a/Tasks/CacheBetaV1/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/CacheBetaV1/Strings/resources.resjson/it-IT/resources.resjson
@@ -6,7 +6,7 @@
"loc.input.label.key": "Chiave",
"loc.input.help.key": "Chiave (identificatore univoco) per la cache. Deve essere una stringa segmentabile con '|'. I percorsi di file possono essere assoluti o relativi a $(System.DefaultWorkingDirectory).",
"loc.input.label.path": "Percorso",
- "loc.input.help.path": "Percorso della cartella da memorizzare nella cache. Può essere completo o relativo a $(System.DefaultWorkingDirectory). I caratteri jolly non sono supportati. Le [variabili] (https://go.microsoft.com/fwlink/?LinkID=550988) sono supportate.",
+ "loc.input.help.path": "Path of the folder to cache. Can be fully-qualified or relative to $(System.DefaultWorkingDirectory). Wildcards are not supported. [Variables](https://go.microsoft.com/fwlink/?LinkID=550988) are supported.",
"loc.input.label.cacheHitVar": "Variabile per riscontro nella cache",
"loc.input.help.cacheHitVar": "Variabile da impostare su 'true' quando viene ripristinata la cache, ovvero un riscontro nella cache; in caso contrario deve essere impostata su 'false'.",
"loc.input.label.restoreKeys": "Prefissi di chiavi di ripristino aggiuntive",
diff --git a/Tasks/CacheBetaV1/task.json b/Tasks/CacheBetaV1/task.json
index 3a9021b4559a..5549ad45f29e 100644
--- a/Tasks/CacheBetaV1/task.json
+++ b/Tasks/CacheBetaV1/task.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 198,
+ "Minor": 250,
"Patch": 0
},
"groups": [],
diff --git a/Tasks/CacheBetaV1/task.loc.json b/Tasks/CacheBetaV1/task.loc.json
index 81bcb2167d11..552667e22cc2 100644
--- a/Tasks/CacheBetaV1/task.loc.json
+++ b/Tasks/CacheBetaV1/task.loc.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 198,
+ "Minor": 250,
"Patch": 0
},
"groups": [],
diff --git a/Tasks/CacheV2/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/CacheV2/Strings/resources.resjson/it-IT/resources.resjson
index 12981f4112e6..8d81be5be420 100644
--- a/Tasks/CacheV2/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/CacheV2/Strings/resources.resjson/it-IT/resources.resjson
@@ -6,7 +6,7 @@
"loc.input.label.key": "Chiave",
"loc.input.help.key": "Chiave (identificatore univoco) per la cache. Deve essere una stringa segmentabile con '|'. I percorsi di file possono essere assoluti o relativi a $(System.DefaultWorkingDirectory).",
"loc.input.label.path": "Percorso",
- "loc.input.help.path": "Percorso della cartella da memorizzare nella cache. Può essere completo o relativo a $(System.DefaultWorkingDirectory). I caratteri jolly non sono supportati. Le [variabili] (https://go.microsoft.com/fwlink/?LinkID=550988) sono supportate.",
+ "loc.input.help.path": "Path of the folder to cache. Can be fully-qualified or relative to $(System.DefaultWorkingDirectory). Wildcards are not supported. [Variables](https://go.microsoft.com/fwlink/?LinkID=550988) are supported.",
"loc.input.label.cacheHitVar": "Variabile per riscontro nella cache",
"loc.input.help.cacheHitVar": "Variabile da impostare su 'true' quando viene ripristinata la cache, ovvero un riscontro nella cache; in caso contrario deve essere impostata su 'false'.",
"loc.input.label.restoreKeys": "Prefissi di chiavi di ripristino aggiuntive",
diff --git a/Tasks/CacheV2/task.json b/Tasks/CacheV2/task.json
index 0ce4145643d3..754cbb7182ad 100644
--- a/Tasks/CacheV2/task.json
+++ b/Tasks/CacheV2/task.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 198,
+ "Minor": 250,
"Patch": 0
},
"groups": [],
diff --git a/Tasks/CacheV2/task.loc.json b/Tasks/CacheV2/task.loc.json
index ca1d6bac21cd..1a9ecc85c7be 100644
--- a/Tasks/CacheV2/task.loc.json
+++ b/Tasks/CacheV2/task.loc.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 198,
+ "Minor": 250,
"Patch": 0
},
"groups": [],
diff --git a/Tasks/CmdLineV2/task.json b/Tasks/CmdLineV2/task.json
index fe90e01101ab..3670ca162b79 100644
--- a/Tasks/CmdLineV2/task.json
+++ b/Tasks/CmdLineV2/task.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "Script task consistency. Added support for multiple lines.",
diff --git a/Tasks/CmdLineV2/task.loc.json b/Tasks/CmdLineV2/task.loc.json
index e8d4cf30a139..7e08207a3b2f 100644
--- a/Tasks/CmdLineV2/task.loc.json
+++ b/Tasks/CmdLineV2/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/de-DE/resources.resjson
index a2ccfa1e8a66..6dde9433a339 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/de-DE/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Authentifizierungsaufgabe für den Conda-Client",
"loc.instanceNameFormat": "Conda-Authentifizierung",
+ "loc.input.label.workloadIdentityServiceConnection": "Dienstverbindung „Azure DevOps“",
+ "loc.input.help.workloadIdentityServiceConnection": "Wenn diese Option festgelegt ist, werden Anmeldeinformationen mithilfe der Dienstverbindung anstelle der Buildpipelineidentität generiert.",
"loc.messages.FailedToAddAuthentication": "Fehler beim Hinzufügen der Authentifizierung.",
"loc.messages.AddingAuthChannel": "Die Authentifizierung für das Token „%s“ wird hinzugefügt",
"loc.messages.Info_AddingFederatedFeedAuth": "Authentifizierungsinformationen der Dienstverbindung %s werden hinzugefügt",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/es-ES/resources.resjson
index 76882d3eb4b2..0d345362bd44 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/es-ES/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Tarea de autenticación para el cliente de Conda",
"loc.instanceNameFormat": "Autenticación de Conda",
+ "loc.input.label.workloadIdentityServiceConnection": "Conexión de servicio de \"Azure DevOps\"",
+ "loc.input.help.workloadIdentityServiceConnection": "Si se establece, se generarán credenciales mediante una conexión de servicio en lugar de la identidad de la canalización de compilación.",
"loc.messages.FailedToAddAuthentication": "No se pudo agregar la autenticación",
"loc.messages.AddingAuthChannel": "Agregando autenticación para el token %s",
"loc.messages.Info_AddingFederatedFeedAuth": "Agregando información de autenticación de la conexión de servicio %s",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/fr-FR/resources.resjson
index 8f336b19f4d8..3a6426d106fb 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/fr-FR/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Tâche d’authentification pour le client conda",
"loc.instanceNameFormat": "Authentification Conda",
+ "loc.input.label.workloadIdentityServiceConnection": "Connexion aux services « Azure DevOps »",
+ "loc.input.help.workloadIdentityServiceConnection": "Si cette option est définie, les informations d'identification seront générées à l'aide de la connexion au service au lieu de l'identité du pipeline de build.",
"loc.messages.FailedToAddAuthentication": "Nous n’avons pas pu ajouter l’authentification.",
"loc.messages.AddingAuthChannel": "Ajout de l’authentification pour le jeton %s",
"loc.messages.Info_AddingFederatedFeedAuth": "Ajout d'informations d'authentification à partir de la connexion de service %s",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/it-IT/resources.resjson
index 649b831aa38e..93db62915d9f 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/it-IT/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Attività di autenticazione per il client Conda",
"loc.instanceNameFormat": "Autenticazione Conda",
+ "loc.input.label.workloadIdentityServiceConnection": "Connessione al servizio 'Azure DevOps'",
+ "loc.input.help.workloadIdentityServiceConnection": "Se questa opzione è impostata, verranno generate le credenziali usando la connessione al servizio anziché l'identità della pipeline di compilazione.",
"loc.messages.FailedToAddAuthentication": "Non è stato possibile aggiungere l'autenticazione.",
"loc.messages.AddingAuthChannel": "Aggiunta dell'autenticazione per il token %s",
"loc.messages.Info_AddingFederatedFeedAuth": "Aggiunta di informazioni di autenticazione dalla connessione al servizio %s",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ja-JP/resources.resjson
index 0911cff3d5c4..b219926df34a 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ja-JP/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Conda クライアントの認証タスク",
"loc.instanceNameFormat": "Conda 認証",
+ "loc.input.label.workloadIdentityServiceConnection": "'Azure DevOps' サービス接続",
+ "loc.input.help.workloadIdentityServiceConnection": "これを設定すると、ビルド パイプライン ID ではなくサービス接続を使用して資格情報が生成されます。",
"loc.messages.FailedToAddAuthentication": "認証を追加できませんでした。",
"loc.messages.AddingAuthChannel": "トークン %s の認証を追加しています",
"loc.messages.Info_AddingFederatedFeedAuth": "サービス接続 %s から認証情報を追加しています",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ko-KR/resources.resjson
index ee5c745e2207..84c85b5c0a22 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ko-KR/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Conda 클라이언트에 대한 인증 작업",
"loc.instanceNameFormat": "Conda 인증",
+ "loc.input.label.workloadIdentityServiceConnection": "'Azure DevOps' Service Connection",
+ "loc.input.help.workloadIdentityServiceConnection": "이 설정이 설정되면 빌드 파이프라인 ID 대신 서비스 연결을 사용하여 자격 증명을 생성합니다.",
"loc.messages.FailedToAddAuthentication": "인증을 추가하지 못했습니다.",
"loc.messages.AddingAuthChannel": "토큰 %s에 대한 인증을 추가하는 중",
"loc.messages.Info_AddingFederatedFeedAuth": "서비스 연결 %s에서 인증 정보 추가",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ru-RU/resources.resjson
index aa409d973e09..cbbdb698c653 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/ru-RU/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Задача проверки подлинности для клиента Conda",
"loc.instanceNameFormat": "Проверка подлинности Conda",
+ "loc.input.label.workloadIdentityServiceConnection": "Подключение службы \"Azure DevOps\"",
+ "loc.input.help.workloadIdentityServiceConnection": "Если этот параметр задан, учетные данные будут создаваться с помощью подключения к службе, а не удостоверения конвейера сборки.",
"loc.messages.FailedToAddAuthentication": "Добавить проверку подлинности не удалось.",
"loc.messages.AddingAuthChannel": "Добавление проверки подлинности для маркера %s",
"loc.messages.Info_AddingFederatedFeedAuth": "Добавление сведений о проверке подлинности из подключения к службе %s",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-CN/resources.resjson
index adcaa00db465..2dab0a86f67c 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-CN/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Conda 客户端的身份验证任务",
"loc.instanceNameFormat": "Conda 身份验证",
+ "loc.input.label.workloadIdentityServiceConnection": "“Azure DevOps”服务连接",
+ "loc.input.help.workloadIdentityServiceConnection": "如果进行了此设置,则会使用服务连接而不是生成管道标识生成凭据。",
"loc.messages.FailedToAddAuthentication": "添加身份验证失败。",
"loc.messages.AddingAuthChannel": "为令牌 %s 添加身份验证",
"loc.messages.Info_AddingFederatedFeedAuth": "正在添加服务连接 %s 中的身份验证信息",
diff --git a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-TW/resources.resjson
index 51a5e513b99b..b9c0e099c60e 100644
--- a/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/CondaAuthenticateV0/Strings/resources.resjson/zh-TW/resources.resjson
@@ -3,6 +3,8 @@
"loc.helpMarkDown": "",
"loc.description": "Conda 用戶端的驗證工作",
"loc.instanceNameFormat": "Conda 驗證",
+ "loc.input.label.workloadIdentityServiceConnection": "'Azure DevOps' 服務連線",
+ "loc.input.help.workloadIdentityServiceConnection": "如果設定此項目,它會使用服務連線而非建置管線身分識別來產生認證。",
"loc.messages.FailedToAddAuthentication": "無法新增驗證。",
"loc.messages.AddingAuthChannel": "正在新增權杖 %s 的驗證",
"loc.messages.Info_AddingFederatedFeedAuth": "正在新增來自服務連線 %s 的驗證資訊",
diff --git a/Tasks/CondaAuthenticateV0/task.json b/Tasks/CondaAuthenticateV0/task.json
index bcb6994fc2ea..4d43248024a9 100644
--- a/Tasks/CondaAuthenticateV0/task.json
+++ b/Tasks/CondaAuthenticateV0/task.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"runsOn": [
diff --git a/Tasks/CondaAuthenticateV0/task.loc.json b/Tasks/CondaAuthenticateV0/task.loc.json
index 5dbe7916f6e9..465fcdb641ae 100644
--- a/Tasks/CondaAuthenticateV0/task.loc.json
+++ b/Tasks/CondaAuthenticateV0/task.loc.json
@@ -9,7 +9,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"runsOn": [
diff --git a/Tasks/CopyFilesV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/CopyFilesV2/Strings/resources.resjson/es-ES/resources.resjson
index 69a1ce11edf2..42f62047de91 100644
--- a/Tasks/CopyFilesV2/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/CopyFilesV2/Strings/resources.resjson/es-ES/resources.resjson
@@ -8,7 +8,7 @@
"loc.input.label.SourceFolder": "Carpeta de origen",
"loc.input.help.SourceFolder": "La carpeta de origen desde la que se ejecutarán los patrones de copia. La raíz del repositorio está vacía. Use [variables](https://go.microsoft.com/fwlink/?LinkID=550988) si los archivos no están en el repositorio. Ejemplo: $(agent.builddirectory)",
"loc.input.label.Contents": "Contenido",
- "loc.input.help.Contents": "Rutas de acceso de archivo que se incluirán como parte de la copia. Se admiten varias líneas de patrones de coincidencia. [Más información] (https://go.microsoft.com/fwlink/?LinkID=708389)",
+ "loc.input.help.Contents": "File paths to include as part of the copy. Supports multiple lines of match patterns. [More Information](https://go.microsoft.com/fwlink/?LinkID=708389)",
"loc.input.label.TargetFolder": "Carpeta de destino",
"loc.input.help.TargetFolder": "La carpeta de destino o la ruta UNC en la que se copiarán los archivos. Puede usar [variables](http://go.microsoft.com/fwlink/?LinkID=550988). Ejemplo: $(build.artifactstagingdirectory)",
"loc.input.label.CleanTargetFolder": "Borrar carpeta de destino",
diff --git a/Tasks/CopyFilesV2/task.json b/Tasks/CopyFilesV2/task.json
index 55ab769a6ef3..0ca469ab8ecd 100644
--- a/Tasks/CopyFilesV2/task.json
+++ b/Tasks/CopyFilesV2/task.json
@@ -1,151 +1,151 @@
{
- "id": "5BFB729A-A7C8-4A78-A7C3-8D717BB7C13C",
- "name": "CopyFiles",
- "friendlyName": "Copy files",
- "description": "Copy files from a source folder to a target folder using patterns matching file paths (not folder paths)",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/copy-files",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=708389)",
- "category": "Utility",
- "visibility": [
- "Build"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 2,
- "Minor": 246,
- "Patch": 0
- },
- "releaseNotes": "Match pattern consistency.",
- "demands": [],
- "minimumAgentVersion": "2.182.1",
- "groups": [
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": false
- }
- ],
- "inputs": [
- {
- "name": "SourceFolder",
- "type": "filePath",
- "label": "Source Folder",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "The source folder that the copy pattern(s) will be run from. Empty is the root of the repo. Use [variables](https://go.microsoft.com/fwlink/?LinkID=550988) if files are not in the repo. Example: $(agent.builddirectory)"
- },
- {
- "name": "Contents",
- "type": "multiLine",
- "label": "Contents",
- "defaultValue": "**",
- "required": true,
- "helpMarkDown": "File paths to include as part of the copy. Supports multiple lines of match patterns. [More Information](https://go.microsoft.com/fwlink/?LinkID=708389)"
- },
- {
- "name": "TargetFolder",
- "type": "string",
- "label": "Target Folder",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Target folder or UNC path files will copy to. You can use [variables](http://go.microsoft.com/fwlink/?LinkID=550988). Example: $(build.artifactstagingdirectory)"
- },
- {
- "name": "CleanTargetFolder",
- "type": "boolean",
- "label": "Clean Target Folder",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Delete all existing files in target folder before copy",
- "groupName": "advanced"
- },
- {
- "name": "OverWrite",
- "type": "boolean",
- "label": "Overwrite",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Replace existing file in target folder",
- "groupName": "advanced"
- },
- {
- "name": "flattenFolders",
- "type": "boolean",
- "label": "Flatten Folders",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Flatten the folder structure and copy all files into the specified target folder.",
- "groupName": "advanced"
+ "id": "5BFB729A-A7C8-4A78-A7C3-8D717BB7C13C",
+ "name": "CopyFiles",
+ "friendlyName": "Copy files",
+ "description": "Copy files from a source folder to a target folder using patterns matching file paths (not folder paths)",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/copy-files",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=708389)",
+ "category": "Utility",
+ "visibility": [
+ "Build"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 2,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "preserveTimestamp",
- "type": "boolean",
- "label": "Preserve Target Timestamp",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Using the original source file, preserve the target file timestamp.",
- "groupName": "advanced"
+ "releaseNotes": "Match pattern consistency.",
+ "demands": [],
+ "minimumAgentVersion": "2.182.1",
+ "groups": [
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "SourceFolder",
+ "type": "filePath",
+ "label": "Source Folder",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "The source folder that the copy pattern(s) will be run from. Empty is the root of the repo. Use [variables](https://go.microsoft.com/fwlink/?LinkID=550988) if files are not in the repo. Example: $(agent.builddirectory)"
+ },
+ {
+ "name": "Contents",
+ "type": "multiLine",
+ "label": "Contents",
+ "defaultValue": "**",
+ "required": true,
+ "helpMarkDown": "File paths to include as part of the copy. Supports multiple lines of match patterns. [More Information](https://go.microsoft.com/fwlink/?LinkID=708389)"
+ },
+ {
+ "name": "TargetFolder",
+ "type": "string",
+ "label": "Target Folder",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Target folder or UNC path files will copy to. You can use [variables](http://go.microsoft.com/fwlink/?LinkID=550988). Example: $(build.artifactstagingdirectory)"
+ },
+ {
+ "name": "CleanTargetFolder",
+ "type": "boolean",
+ "label": "Clean Target Folder",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Delete all existing files in target folder before copy",
+ "groupName": "advanced"
+ },
+ {
+ "name": "OverWrite",
+ "type": "boolean",
+ "label": "Overwrite",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Replace existing file in target folder",
+ "groupName": "advanced"
+ },
+ {
+ "name": "flattenFolders",
+ "type": "boolean",
+ "label": "Flatten Folders",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Flatten the folder structure and copy all files into the specified target folder.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "preserveTimestamp",
+ "type": "boolean",
+ "label": "Preserve Target Timestamp",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Using the original source file, preserve the target file timestamp.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "retryCount",
+ "type": "string",
+ "label": "Retry count to copy the file",
+ "defaultValue": "0",
+ "required": false,
+ "helpMarkDown": "Specify the retry count to copy the file. It might help to resolve intermittent issues e.g. with UNC target paths on a remote host.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "delayBetweenRetries",
+ "type": "string",
+ "label": "Delay between two retries.",
+ "defaultValue": "1000",
+ "required": false,
+ "helpMarkDown": "Specify the delay between two retries. It might help to be more resilient to intermittent issues e.g. with UNC target paths on a remote host.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "ignoreMakeDirErrors",
+ "type": "boolean",
+ "label": "Ignore errors during creation of target folder.",
+ "defaultValue": "false",
+ "required": false,
+ "helpMarkDown": "Ignore errors which happen during creation of target folder. This could be useful to avoid issues with parallel execution of task by several agents with one target folder.",
+ "groupName": "advanced"
+ }
+ ],
+ "instanceNameFormat": "Copy Files to: $(TargetFolder)",
+ "execution": {
+ "Node10": {
+ "target": "copyfiles.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "copyfiles.js",
+ "argumentFormat": ""
+ },
+ "Node20_1": {
+ "target": "copyfiles.js",
+ "argumentFormat": ""
+ }
},
- {
- "name": "retryCount",
- "type": "string",
- "label": "Retry count to copy the file",
- "defaultValue": "0",
- "required": false,
- "helpMarkDown": "Specify the retry count to copy the file. It might help to resolve intermittent issues e.g. with UNC target paths on a remote host.",
- "groupName": "advanced"
- },
- {
- "name": "delayBetweenRetries",
- "type": "string",
- "label": "Delay between two retries.",
- "defaultValue": "1000",
- "required": false,
- "helpMarkDown": "Specify the delay between two retries. It might help to be more resilient to intermittent issues e.g. with UNC target paths on a remote host.",
- "groupName": "advanced"
- },
- {
- "name": "ignoreMakeDirErrors",
- "type": "boolean",
- "label": "Ignore errors during creation of target folder.",
- "defaultValue": "false",
- "required": false,
- "helpMarkDown": "Ignore errors which happen during creation of target folder. This could be useful to avoid issues with parallel execution of task by several agents with one target folder.",
- "groupName": "advanced"
- }
- ],
- "instanceNameFormat": "Copy Files to: $(TargetFolder)",
- "execution": {
- "Node10": {
- "target": "copyfiles.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "copyfiles.js",
- "argumentFormat": ""
- },
- "Node20_1": {
- "target": "copyfiles.js",
- "argumentFormat": ""
- }
- },
- "messages": {
- "FoundNFiles": "found %d files",
- "CleaningTargetFolder": "Cleaning target folder: %s",
- "FileAlreadyExistAt": "File %s already exist at %s",
- "CopyingTo": "Copying %s to %s",
- "TargetIsDir": "Unable to copy file %s to %s. The target path already exists as a directory."
- },
- "restrictions": {
- "commands": {
- "mode": "restricted"
+ "messages": {
+ "FoundNFiles": "found %d files",
+ "CleaningTargetFolder": "Cleaning target folder: %s",
+ "FileAlreadyExistAt": "File %s already exist at %s",
+ "CopyingTo": "Copying %s to %s",
+ "TargetIsDir": "Unable to copy file %s to %s. The target path already exists as a directory."
},
- "settableVariables": {
- "allowed": []
+ "restrictions": {
+ "commands": {
+ "mode": "restricted"
+ },
+ "settableVariables": {
+ "allowed": []
+ }
}
- }
}
\ No newline at end of file
diff --git a/Tasks/CopyFilesV2/task.loc.json b/Tasks/CopyFilesV2/task.loc.json
index 4e5538bae733..c8f35db11204 100644
--- a/Tasks/CopyFilesV2/task.loc.json
+++ b/Tasks/CopyFilesV2/task.loc.json
@@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"releaseNotes": "ms-resource:loc.releaseNotes",
diff --git a/Tasks/DecryptFileV1/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/DecryptFileV1/Strings/resources.resjson/ru-RU/resources.resjson
index 86e17b6c1ea3..242a6ba202c4 100644
--- a/Tasks/DecryptFileV1/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/DecryptFileV1/Strings/resources.resjson/ru-RU/resources.resjson
@@ -5,7 +5,7 @@
"loc.instanceNameFormat": "Расшифровать $(inFile)",
"loc.group.displayName.advanced": "Дополнительно",
"loc.input.label.cipher": "Шифрование",
- "loc.input.help.cipher": "Шифрование, которое следует использовать. Полный список возможных значений см. в разделе [Сipher Suite Names (имена наборов шифрования)] (https://go.microsoft.com/fwlink/?LinkID=627129).",
+ "loc.input.help.cipher": "Encryption cypher to use. See [cypher suite names](https://go.microsoft.com/fwlink/?LinkID=627129) for a complete list of possible values.",
"loc.input.label.inFile": "Зашифрованный файл",
"loc.input.help.inFile": "Относительный путь к файлу для расшифровки.",
"loc.input.label.passphrase": "Парольная фраза",
diff --git a/Tasks/DecryptFileV1/task.json b/Tasks/DecryptFileV1/task.json
index 18fb12692a36..4eaf34b79852 100644
--- a/Tasks/DecryptFileV1/task.json
+++ b/Tasks/DecryptFileV1/task.json
@@ -1,97 +1,97 @@
{
- "id": "7C6A6b71-4355-4AFC-A274-480EAB5678E9",
- "name": "DecryptFile",
- "friendlyName": "Decrypt file (OpenSSL)",
- "description": "Decrypt a file using OpenSSL",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/decrypt-file",
- "helpMarkDown": "",
- "category": "Utility",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 246,
- "Patch": 0
- },
- "minimumAgentVersion": "2.182.1",
- "groups": [
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": false
- }
- ],
- "instanceNameFormat": "Decrypt $(inFile)",
- "inputs": [
- {
- "name": "cipher",
- "type": "string",
- "label": "Cypher",
- "defaultValue": "des3",
- "required": true,
- "helpMarkDown": "Encryption cypher to use. See [cypher suite names](https://go.microsoft.com/fwlink/?LinkID=627129) for a complete list of possible values."
- },
- {
- "name": "inFile",
- "type": "filePath",
- "label": "Encrypted file",
- "required": true,
- "helpMarkDown": "Relative path of file to decrypt."
- },
- {
- "name": "passphrase",
- "type": "string",
- "label": "Passphrase",
- "required": true,
- "helpMarkDown": "Passphrase to use for decryption. **Use a Variable to encrypt the passphrase.**"
+ "id": "7C6A6b71-4355-4AFC-A274-480EAB5678E9",
+ "name": "DecryptFile",
+ "friendlyName": "Decrypt file (OpenSSL)",
+ "description": "Decrypt a file using OpenSSL",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/decrypt-file",
+ "helpMarkDown": "",
+ "category": "Utility",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "outFile",
- "type": "filePath",
- "label": "Decrypted file path",
- "required": false,
- "helpMarkDown": "Optional filename for decrypted file. Defaults to the Encrypted File with a \".out\" extension"
+ "minimumAgentVersion": "2.182.1",
+ "groups": [
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "instanceNameFormat": "Decrypt $(inFile)",
+ "inputs": [
+ {
+ "name": "cipher",
+ "type": "string",
+ "label": "Cypher",
+ "defaultValue": "des3",
+ "required": true,
+ "helpMarkDown": "Encryption cypher to use. See [cypher suite names](https://go.microsoft.com/fwlink/?LinkID=627129) for a complete list of possible values."
+ },
+ {
+ "name": "inFile",
+ "type": "filePath",
+ "label": "Encrypted file",
+ "required": true,
+ "helpMarkDown": "Relative path of file to decrypt."
+ },
+ {
+ "name": "passphrase",
+ "type": "string",
+ "label": "Passphrase",
+ "required": true,
+ "helpMarkDown": "Passphrase to use for decryption. **Use a Variable to encrypt the passphrase.**"
+ },
+ {
+ "name": "outFile",
+ "type": "filePath",
+ "label": "Decrypted file path",
+ "required": false,
+ "helpMarkDown": "Optional filename for decrypted file. Defaults to the Encrypted File with a \".out\" extension"
+ },
+ {
+ "name": "cwd",
+ "aliases": [
+ "workingDirectory"
+ ],
+ "type": "filePath",
+ "label": "Working directory",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Working directory for decryption. Defaults to the root of the repository.",
+ "groupName": "advanced"
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "decrypt.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "decrypt.js",
+ "argumentFormat": ""
+ }
},
- {
- "name": "cwd",
- "aliases": [
- "workingDirectory"
- ],
- "type": "filePath",
- "label": "Working directory",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Working directory for decryption. Defaults to the root of the repository.",
- "groupName": "advanced"
- }
- ],
- "execution": {
- "Node10": {
- "target": "decrypt.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "decrypt.js",
- "argumentFormat": ""
- }
- },
- "restrictions": {
- "commands": {
- "mode": "restricted"
+ "restrictions": {
+ "commands": {
+ "mode": "restricted"
+ },
+ "settableVariables": {
+ "allowed": []
+ }
},
- "settableVariables": {
- "allowed": []
+ "messages": {
+ "OpenSSLReturnCode": "openssl exited with return code: %d",
+ "OpenSSLFailed": "openssl failed with error: %s"
}
- },
- "messages": {
- "OpenSSLReturnCode": "openssl exited with return code: %d",
- "OpenSSLFailed": "openssl failed with error: %s"
- }
}
\ No newline at end of file
diff --git a/Tasks/DecryptFileV1/task.loc.json b/Tasks/DecryptFileV1/task.loc.json
index 273db4f365d7..f26b8386ff6a 100644
--- a/Tasks/DecryptFileV1/task.loc.json
+++ b/Tasks/DecryptFileV1/task.loc.json
@@ -17,7 +17,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"minimumAgentVersion": "2.182.1",
diff --git a/Tasks/DeleteFilesV1/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/DeleteFilesV1/Strings/resources.resjson/es-ES/resources.resjson
index ad67f59b8eef..18e144678712 100644
--- a/Tasks/DeleteFilesV1/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/DeleteFilesV1/Strings/resources.resjson/es-ES/resources.resjson
@@ -11,7 +11,7 @@
"loc.input.label.RemoveSourceFolder": "Quitar SourceFolder",
"loc.input.help.RemoveSourceFolder": "Intente quitar también la carpeta de origen.",
"loc.input.label.RemoveDotFiles": "Quitar archivos que comiencen con un punto",
- "loc.input.help.RemoveDotFiles": "Elimine los archivos que empiecen por un punto (.git,. dockerfile). Omita estos archivos si no se especifican explícitamente (por ejemplo, \"/. *\"). Para obtener más información, consulte este [vínculo] (https://github.com/isaacs/minimatch#dot)",
+ "loc.input.help.RemoveDotFiles": "Delete files starting with a dot (.git, .dockerfile). Omits these files if it's not specified explicitly (for example, '/.*'). Please see this [link](https://github.com/isaacs/minimatch#dot) for more info",
"loc.messages.CantDeleteFiles": "No se han podido eliminar uno o varios archivos",
"loc.messages.SkippingSymbolStore": "Se omitirá la eliminación del recurso compartido de archivos de símbolos: %s",
"loc.messages.NoFiles": "No hay archivos que se deban eliminar."
diff --git a/Tasks/DeleteFilesV1/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/DeleteFilesV1/Strings/resources.resjson/it-IT/resources.resjson
index 560d870fd0f0..55b7716e3d91 100644
--- a/Tasks/DeleteFilesV1/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/DeleteFilesV1/Strings/resources.resjson/it-IT/resources.resjson
@@ -11,7 +11,7 @@
"loc.input.label.RemoveSourceFolder": "Rimuovi cartella di origine",
"loc.input.help.RemoveSourceFolder": "Verrà effettuato un tentativo di rimuovere anche la cartella di origine.",
"loc.input.label.RemoveDotFiles": "Rimuovi i file che iniziano con un punto",
- "loc.input.help.RemoveDotFiles": "È possibile eliminare i file che iniziano con un punto (.git, .dockerfile). Questi file vengono omessi, se non vengono specificati in modo esplicito, ad esempio '/.*'. Vedere questo [collegamento] (https://github.com/isaacs/minimatch#dot) per altre informazioni",
+ "loc.input.help.RemoveDotFiles": "Delete files starting with a dot (.git, .dockerfile). Omits these files if it's not specified explicitly (for example, '/.*'). Please see this [link](https://github.com/isaacs/minimatch#dot) for more info",
"loc.messages.CantDeleteFiles": "Non è stato possibile eliminare uno o più file",
"loc.messages.SkippingSymbolStore": "L'eliminazione per la condivisione file dell'archivio simboli verrà ignorata: %s",
"loc.messages.NoFiles": "Non ci sono file da eliminare."
diff --git a/Tasks/DeleteFilesV1/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/DeleteFilesV1/Strings/resources.resjson/ja-JP/resources.resjson
index 8702f95ad507..9d534fcaa01f 100644
--- a/Tasks/DeleteFilesV1/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/DeleteFilesV1/Strings/resources.resjson/ja-JP/resources.resjson
@@ -11,7 +11,7 @@
"loc.input.label.RemoveSourceFolder": "SourceFolder の削除",
"loc.input.help.RemoveSourceFolder": "ソース フォルダーの削除も試行します。",
"loc.input.label.RemoveDotFiles": "ドットで始まるファイルを削除します",
- "loc.input.help.RemoveDotFiles": "ドットで始まるファイル (.git、.dockerfile) を削除します。明示的に指定されていない場合は、これらのファイルを省略します (例: '/. * ')。詳細については、この [リンク] を参照してください (https://github.com/isaacs/minimatch#dot)",
+ "loc.input.help.RemoveDotFiles": "Delete files starting with a dot (.git, .dockerfile). Omits these files if it's not specified explicitly (for example, '/.*'). Please see this [link](https://github.com/isaacs/minimatch#dot) for more info",
"loc.messages.CantDeleteFiles": "1 つ以上のファイルを削除できませんでした",
"loc.messages.SkippingSymbolStore": "シンボル ストアのファイル共有の削除をスキップしています: %s",
"loc.messages.NoFiles": "削除できるファイルはありません。"
diff --git a/Tasks/DeleteFilesV1/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/DeleteFilesV1/Strings/resources.resjson/ko-KR/resources.resjson
index 900e23e3165a..9fb44fdd915c 100644
--- a/Tasks/DeleteFilesV1/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/DeleteFilesV1/Strings/resources.resjson/ko-KR/resources.resjson
@@ -11,7 +11,7 @@
"loc.input.label.RemoveSourceFolder": "SourceFolder 제거",
"loc.input.help.RemoveSourceFolder": "소스 폴더도 제거하려고 합니다.",
"loc.input.label.RemoveDotFiles": "점으로 시작하는 파일 제거",
- "loc.input.help.RemoveDotFiles": "점(git, dockerfile)으로 시작하는 파일을 삭제합니다. 이 파일이 명시적으로 지정되지 않은 경우(예: '/.*') 이러한 파일을 생략합니다. 자세한 내용은 이 [링크] (https://github.com/isaacs/minimatch#dot)를 참조하세요",
+ "loc.input.help.RemoveDotFiles": "Delete files starting with a dot (.git, .dockerfile). Omits these files if it's not specified explicitly (for example, '/.*'). Please see this [link](https://github.com/isaacs/minimatch#dot) for more info",
"loc.messages.CantDeleteFiles": "하나 이상의 파일을 삭제할 수 없습니다.",
"loc.messages.SkippingSymbolStore": "기호 저장소 파일 공유에 대해 건너뛰면 삭제됨: %s",
"loc.messages.NoFiles": "삭제할 파일이 없습니다."
diff --git a/Tasks/DeleteFilesV1/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/DeleteFilesV1/Strings/resources.resjson/ru-RU/resources.resjson
index 7bca97bf2e9a..dc8dcfef0d9a 100644
--- a/Tasks/DeleteFilesV1/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/DeleteFilesV1/Strings/resources.resjson/ru-RU/resources.resjson
@@ -5,9 +5,9 @@
"loc.instanceNameFormat": "Удалить файлы из $(SourceFolder)",
"loc.group.displayName.advanced": "Дополнительно",
"loc.input.label.SourceFolder": "Исходная папка",
- "loc.input.help.SourceFolder": "Исходная папка, из которой будет запускаться удаление. Если значение не указано, используется корень репозитория. Если в репозитории нет файлов, используйте [переменные] (https://go.microsoft.com/fwlink/?LinkID=550988). Например, $(agent.builddirectory)",
+ "loc.input.help.SourceFolder": "The source folder that the deletion(s) will be run from. Empty is the root of the repo. Use [variables](https://go.microsoft.com/fwlink/?LinkID=550988) if files are not in the repo. Example: $(agent.builddirectory)",
"loc.input.label.Contents": "Содержимое",
- "loc.input.help.Contents": "Пути к удаляемым файлам или папкам. Поддерживает несколько строк шаблонов minimatch. [Подробнее...] (https://go.microsoft.com/fwlink/?LinkID=722333)",
+ "loc.input.help.Contents": "File/folder paths to delete. Supports multiple lines of minimatch patterns. [More Information](https://go.microsoft.com/fwlink/?LinkID=722333)",
"loc.input.label.RemoveSourceFolder": "Удалить SourceFolder",
"loc.input.help.RemoveSourceFolder": "Попробуйте удалить и исходную папку.",
"loc.input.label.RemoveDotFiles": "Удалить файлы, имена которых начинаются с точки",
diff --git a/Tasks/DeleteFilesV1/task.json b/Tasks/DeleteFilesV1/task.json
index 9b63d4e4a466..e3f01569305d 100644
--- a/Tasks/DeleteFilesV1/task.json
+++ b/Tasks/DeleteFilesV1/task.json
@@ -1,94 +1,94 @@
{
- "id": "B7E8B412-0437-4065-9371-EDC5881DE25B",
- "name": "DeleteFiles",
- "friendlyName": "Delete files",
- "description": "Delete folders, or files matching a pattern",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/delete-files",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=722333)",
- "category": "Utility",
- "visibility": [
- "Build"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 246,
- "Patch": 0
- },
- "demands": [],
- "minimumAgentVersion": "2.182.1",
- "groups": [
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": false
- }
- ],
- "inputs": [
- {
- "name": "SourceFolder",
- "type": "filePath",
- "label": "Source Folder",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "The source folder that the deletion(s) will be run from. Empty is the root of the repo. Use [variables](https://go.microsoft.com/fwlink/?LinkID=550988) if files are not in the repo. Example: $(agent.builddirectory)"
- },
- {
- "name": "Contents",
- "type": "multiLine",
- "label": "Contents",
- "defaultValue": "myFileShare",
- "required": true,
- "helpMarkDown": "File/folder paths to delete. Supports multiple lines of minimatch patterns. [More Information](https://go.microsoft.com/fwlink/?LinkID=722333)"
- },
- {
- "name": "RemoveSourceFolder",
- "type": "boolean",
- "label": "Remove SourceFolder",
- "defaultValue": false,
- "required": false,
- "helpMarkDown": "Attempt to remove the source folder as well."
+ "id": "B7E8B412-0437-4065-9371-EDC5881DE25B",
+ "name": "DeleteFiles",
+ "friendlyName": "Delete files",
+ "description": "Delete folders, or files matching a pattern",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/delete-files",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=722333)",
+ "category": "Utility",
+ "visibility": [
+ "Build"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "RemoveDotFiles",
- "type": "boolean",
- "label": "Remove files starting with a dot",
- "defaultValue": false,
- "required": false,
- "helpMarkDown": "Delete files starting with a dot (.git, .dockerfile). Omits these files if it's not specified explicitly (for example, '/.*'). Please see this [link](https://github.com/isaacs/minimatch#dot) for more info",
- "groupName": "advanced"
- }
- ],
- "instanceNameFormat": "Delete files from $(SourceFolder)",
- "execution": {
- "Node10": {
- "target": "deletefiles.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "deletefiles.js",
- "argumentFormat": ""
+ "demands": [],
+ "minimumAgentVersion": "2.182.1",
+ "groups": [
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "SourceFolder",
+ "type": "filePath",
+ "label": "Source Folder",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "The source folder that the deletion(s) will be run from. Empty is the root of the repo. Use [variables](https://go.microsoft.com/fwlink/?LinkID=550988) if files are not in the repo. Example: $(agent.builddirectory)"
+ },
+ {
+ "name": "Contents",
+ "type": "multiLine",
+ "label": "Contents",
+ "defaultValue": "myFileShare",
+ "required": true,
+ "helpMarkDown": "File/folder paths to delete. Supports multiple lines of minimatch patterns. [More Information](https://go.microsoft.com/fwlink/?LinkID=722333)"
+ },
+ {
+ "name": "RemoveSourceFolder",
+ "type": "boolean",
+ "label": "Remove SourceFolder",
+ "defaultValue": false,
+ "required": false,
+ "helpMarkDown": "Attempt to remove the source folder as well."
+ },
+ {
+ "name": "RemoveDotFiles",
+ "type": "boolean",
+ "label": "Remove files starting with a dot",
+ "defaultValue": false,
+ "required": false,
+ "helpMarkDown": "Delete files starting with a dot (.git, .dockerfile). Omits these files if it's not specified explicitly (for example, '/.*'). Please see this [link](https://github.com/isaacs/minimatch#dot) for more info",
+ "groupName": "advanced"
+ }
+ ],
+ "instanceNameFormat": "Delete files from $(SourceFolder)",
+ "execution": {
+ "Node10": {
+ "target": "deletefiles.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "deletefiles.js",
+ "argumentFormat": ""
+ },
+ "Node20_1": {
+ "target": "deletefiles.js",
+ "argumentFormat": ""
+ }
},
- "Node20_1": {
- "target": "deletefiles.js",
- "argumentFormat": ""
- }
- },
- "restrictions": {
- "commands": {
- "mode": "restricted"
+ "restrictions": {
+ "commands": {
+ "mode": "restricted"
+ },
+ "settableVariables": {
+ "allowed": []
+ }
},
- "settableVariables": {
- "allowed": []
+ "messages": {
+ "CantDeleteFiles": "Couldn't delete one or more files",
+ "SkippingSymbolStore": "Skipping delete for symbol store file share: %s",
+ "NoFiles": "No files to delete."
}
- },
- "messages": {
- "CantDeleteFiles": "Couldn't delete one or more files",
- "SkippingSymbolStore": "Skipping delete for symbol store file share: %s",
- "NoFiles": "No files to delete."
- }
}
\ No newline at end of file
diff --git a/Tasks/DeleteFilesV1/task.loc.json b/Tasks/DeleteFilesV1/task.loc.json
index e983e7a6440c..609435fb2a43 100644
--- a/Tasks/DeleteFilesV1/task.loc.json
+++ b/Tasks/DeleteFilesV1/task.loc.json
@@ -16,7 +16,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 246,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/DockerComposeV0/task.json b/Tasks/DockerComposeV0/task.json
index 534b309d74d1..d41a4d4c8f47 100644
--- a/Tasks/DockerComposeV0/task.json
+++ b/Tasks/DockerComposeV0/task.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/DockerComposeV0/task.loc.json b/Tasks/DockerComposeV0/task.loc.json
index 98be8d7230c2..5400cedced15 100644
--- a/Tasks/DockerComposeV0/task.loc.json
+++ b/Tasks/DockerComposeV0/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/DockerComposeV1/task.json b/Tasks/DockerComposeV1/task.json
index 41dddc4393b9..54ce7b9c1ee5 100644
--- a/Tasks/DockerComposeV1/task.json
+++ b/Tasks/DockerComposeV1/task.json
@@ -1,359 +1,359 @@
{
- "id": "6975E2D1-96D3-4AFC-8A41-498B5D34EA19",
- "name": "DockerCompose",
- "friendlyName": "Docker Compose",
- "description": "Build, push or run multi-container Docker applications. Task can be used with Docker or Azure Container registry.",
- "helpUrl": "https://aka.ms/azpipes-docker-compose-tsg",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=848006) or [see the Docker Compose documentation](https://docs.docker.com/)",
- "category": "Build",
- "visibility": [
- "Build",
- "Release"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 247,
- "Patch": 0
- },
- "demands": [],
- "preview": "false",
- "groups": [
- {
- "name": "advanced",
- "displayName": "Advanced Options",
- "isExpanded": false
+ "id": "6975E2D1-96D3-4AFC-8A41-498B5D34EA19",
+ "name": "DockerCompose",
+ "friendlyName": "Docker Compose",
+ "description": "Build, push or run multi-container Docker applications. Task can be used with Docker or Azure Container registry.",
+ "helpUrl": "https://aka.ms/azpipes-docker-compose-tsg",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=848006) or [see the Docker Compose documentation](https://docs.docker.com/)",
+ "category": "Build",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
+ },
+ "demands": [],
+ "preview": "false",
+ "groups": [
+ {
+ "name": "advanced",
+ "displayName": "Advanced Options",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "containerregistrytype",
+ "type": "pickList",
+ "label": "Container Registry Type",
+ "defaultValue": "Azure Container Registry",
+ "required": true,
+ "options": {
+ "Azure Container Registry": "Azure Container Registry",
+ "Container Registry": "Container Registry"
+ },
+ "helpMarkDown": "Select a Container Registry Type."
+ },
+ {
+ "name": "dockerRegistryEndpoint",
+ "type": "connectedService:dockerregistry",
+ "label": "Docker Registry Service Connection",
+ "helpMarkDown": "Select a Docker registry service connection. Required for commands that need to authenticate with a registry.",
+ "visibleRule": "containerregistrytype = Container Registry"
+ },
+ {
+ "name": "azureSubscriptionEndpoint",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure subscription",
+ "helpMarkDown": "Select an Azure subscription",
+ "visibleRule": "containerregistrytype = Azure Container Registry"
+ },
+ {
+ "name": "azureContainerRegistry",
+ "label": "Azure Container Registry",
+ "type": "pickList",
+ "helpMarkDown": "Select an Azure Container Registry",
+ "visibleRule": "containerregistrytype = Azure Container Registry",
+ "defaultValue": "",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "dockerComposeFile",
+ "type": "filePath",
+ "label": "Docker Compose File",
+ "defaultValue": "**/docker-compose.yml",
+ "required": true,
+ "helpMarkDown": "Path to the primary Docker Compose file to use."
+ },
+ {
+ "name": "additionalDockerComposeFiles",
+ "type": "multiLine",
+ "properties": {
+ "resizable": "true",
+ "rows": "2"
+ },
+ "label": "Additional Docker Compose Files",
+ "helpMarkDown": "Additional Docker Compose files to be combined with the primary Docker Compose file. Relative paths are resolved relative to the directory containing the primary Docker Compose file. If a specified file is not found, it is ignored. Specify each file path on a new line."
+ },
+ {
+ "name": "dockerComposeFileArgs",
+ "type": "multiLine",
+ "properties": {
+ "resizable": "true",
+ "rows": "2"
+ },
+ "label": "Environment Variables",
+ "helpMarkDown": "Environment variables to be set during the command. Specify each name=value pair on a new line."
+ },
+ {
+ "name": "projectName",
+ "type": "string",
+ "label": "Project Name",
+ "defaultValue": "$(Build.Repository.Name)",
+ "helpMarkDown": "Project name used for default naming of images and containers."
+ },
+ {
+ "name": "qualifyImageNames",
+ "type": "boolean",
+ "label": "Qualify Image Names",
+ "defaultValue": "true",
+ "helpMarkDown": "Qualify image names for built services with the Docker registry service connection's hostname if not otherwise specified."
+ },
+ {
+ "name": "action",
+ "type": "pickList",
+ "label": "Action",
+ "required": true,
+ "options": {
+ "Build services": "Build service images",
+ "Push services": "Push service images",
+ "Run services": "Run service images",
+ "Run a specific service": "Run a specific service image",
+ "Lock services": "Lock service images",
+ "Write service image digests": "Write service image digests",
+ "Combine configuration": "Combine configuration",
+ "Run a Docker Compose command": "Run a Docker Compose command"
+ },
+ "defaultValue": "Run a Docker Compose command",
+ "helpMarkDown": "Select a Docker Compose action."
+ },
+ {
+ "name": "additionalImageTags",
+ "type": "multiLine",
+ "properties": {
+ "resizable": "true",
+ "rows": "2"
+ },
+ "label": "Additional Image Tags",
+ "visibleRule": "action = Build services || action = Push services",
+ "helpMarkDown": "Additional tags for the Docker images being built or pushed."
+ },
+ {
+ "name": "includeSourceTags",
+ "type": "boolean",
+ "label": "Include Source Tags",
+ "defaultValue": "false",
+ "visibleRule": "action = Build services || action = Push services",
+ "helpMarkDown": "Include Git tags when building or pushing Docker images."
+ },
+ {
+ "name": "includeLatestTag",
+ "type": "boolean",
+ "label": "Include Latest Tag",
+ "defaultValue": "false",
+ "visibleRule": "action = Build services || action = Push services",
+ "helpMarkDown": "Include the 'latest' tag when building or pushing Docker images."
+ },
+ {
+ "name": "buildImages",
+ "type": "boolean",
+ "label": "Build Images",
+ "defaultValue": "true",
+ "visibleRule": "action = Run services",
+ "helpMarkDown": "Build images before starting service containers."
+ },
+ {
+ "name": "serviceName",
+ "type": "string",
+ "label": "Service Name",
+ "required": true,
+ "visibleRule": "action = Run a specific service",
+ "helpMarkDown": "Name of the specific service to run."
+ },
+ {
+ "name": "containerName",
+ "type": "string",
+ "label": "Container Name",
+ "visibleRule": "action = Run a specific service",
+ "helpMarkDown": "Name of the specific service container to run."
+ },
+ {
+ "name": "ports",
+ "type": "multiLine",
+ "properties": {
+ "resizable": "true",
+ "rows": "2"
+ },
+ "label": "Ports",
+ "visibleRule": "action = Run a specific service",
+ "helpMarkDown": "Ports in the specific service container to publish to the host. Specify each host-port:container-port binding on a new line."
+ },
+ {
+ "name": "workDir",
+ "aliases": [
+ "workingDirectory"
+ ],
+ "type": "string",
+ "label": "Working Directory",
+ "visibleRule": "action = Run a specific service",
+ "helpMarkDown": "The working directory for the specific service container."
+ },
+ {
+ "name": "entrypoint",
+ "type": "string",
+ "label": "Entry Point Override",
+ "visibleRule": "action = Run a specific service",
+ "helpMarkDown": "Override the default entry point for the specific service container."
+ },
+ {
+ "name": "containerCommand",
+ "type": "string",
+ "label": "Command",
+ "visibleRule": "action = Run a specific service",
+ "helpMarkDown": "Command to run in the specific service container. For example, if the image contains a simple Python Flask web application you can specify 'python app.py' to launch the web application."
+ },
+ {
+ "name": "detached",
+ "type": "boolean",
+ "label": "Run in Background",
+ "defaultValue": "true",
+ "visibleRule": "action = Run services || action = Run a specific service",
+ "helpMarkDown": "Run the service containers in the background."
+ },
+ {
+ "name": "abortOnContainerExit",
+ "type": "boolean",
+ "label": "Abort on Container Exit",
+ "defaultValue": "true",
+ "visibleRule": "action = Run services && detached == false",
+ "helpMarkDown": "Stop all containers when any container exits."
+ },
+ {
+ "name": "imageDigestComposeFile",
+ "type": "filePath",
+ "label": "Image Digest Compose File",
+ "defaultValue": "$(Build.StagingDirectory)/docker-compose.images.yml",
+ "required": true,
+ "visibleRule": "action = Write service image digests",
+ "helpMarkDown": "Path to a Docker Compose file that is created and populated with the full image repository digests of each service's Docker image."
+ },
+ {
+ "name": "removeBuildOptions",
+ "type": "boolean",
+ "label": "Remove Build Options",
+ "defaultValue": "false",
+ "visibleRule": "action = Lock services || action = Combine configuration",
+ "helpMarkDown": "Remove the build options from the output Docker Compose file."
+ },
+ {
+ "name": "baseResolveDirectory",
+ "type": "filePath",
+ "label": "Base Resolve Directory",
+ "visibleRule": "action = Lock services || action = Combine configuration",
+ "helpMarkDown": "The base directory from which relative paths in the output Docker Compose file should be resolved."
+ },
+ {
+ "name": "outputDockerComposeFile",
+ "type": "filePath",
+ "label": "Output Docker Compose File",
+ "defaultValue": "$(Build.StagingDirectory)/docker-compose.yml",
+ "required": true,
+ "visibleRule": "action = Lock services || action = Combine configuration",
+ "helpMarkDown": "Path to an output Docker Compose file."
+ },
+ {
+ "name": "dockerComposeCommand",
+ "type": "string",
+ "label": "Command",
+ "required": true,
+ "visibleRule": "action = Run a Docker Compose command",
+ "helpMarkDown": "Docker Compose command to execute with arguments. For example, 'rm --all' to remove all stopped service containers."
+ },
+ {
+ "name": "arguments",
+ "type": "string",
+ "visibleRule": "action != Lock services && action != Combine configuration && action != Write service image digests",
+ "label": "Arguments",
+ "helpMarkDown": "Docker Compose command options. Ex: For build command, --pull --compress --parallel"
+ },
+ {
+ "name": "dockerHostEndpoint",
+ "type": "connectedService:dockerhost",
+ "label": "Docker Host Service Connection",
+ "helpMarkDown": "Select a Docker host service connection. Defaults to the agent's host.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "nopIfNoDockerComposeFile",
+ "type": "boolean",
+ "label": "No-op if no Docker Compose File",
+ "defaultValue": "false",
+ "helpMarkDown": "If the Docker Compose file does not exist, skip this task. This is useful when the task offers optional behavior based on the existence of a Docker Compose file in the repository.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "requireAdditionalDockerComposeFiles",
+ "type": "boolean",
+ "label": "Require Additional Docker Compose Files",
+ "defaultValue": "false",
+ "helpMarkDown": "Produces an error if the additional Docker Compose files do not exist. This overrides the default behavior which is to ignore a file if it does not exist.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "cwd",
+ "aliases": [
+ "currentWorkingDirectory"
+ ],
+ "type": "filePath",
+ "label": "Working Directory",
+ "defaultValue": "$(System.DefaultWorkingDirectory)",
+ "helpMarkDown": "Working directory for the Docker Compose command.",
+ "groupName": "advanced"
+ },
+ {
+ "name": "dockerComposePath",
+ "label": "Docker Compose executable Path",
+ "type": "string",
+ "required": false,
+ "groupName": "advanced",
+ "helpMarkDown": "This docker-compose executable will be used if the path is provided",
+ "defaultValue": ""
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "azureContainerRegistry",
+ "endpointId": "$(azureSubscriptionEndpoint)",
+ "dataSourceName": "AzureRMContainerRegistries",
+ "resultTemplate": "{\"Value\":\"{\\\"loginServer\\\":\\\"{{{properties.loginServer}}}\\\", \\\"id\\\" : \\\"{{{id}}}\\\"}\",\"DisplayValue\":\"{{{name}}}\"}"
+ }
+ ],
+ "outputVariables": [
+ {
+ "name": "DockerComposeOutput",
+ "description": "The path of the file(s) which contains the output of the command. This can contain multiple file paths (separated by newline characters) in case of dockerComposeRun command (one for running and one for down), dockerPush (one for each image pushed), dockerBuild (the build itself and all the tag commands) and dockerDigest (one for each image pulled). The other commands only output one file."
+ }
+ ],
+ "instanceNameFormat": "$(action)",
+ "execution": {
+ "Node20_1": {
+ "target": "dockercompose.js",
+ "argumentFormat": ""
+ }
+ },
+ "messages": {
+ "ConnectingToDockerHost": "DOCKER_HOST variable is set. Docker will try to connect to the Docker host: %s",
+ "ContainerPatternFound": "Pattern found in docker compose filepath parameter",
+ "ContainerPatternNotFound": "No pattern found in docker compose filepath parameter",
+ "ContainerDockerFileNotFound": "No Docker file matching %s was found.",
+ "AdditionalDockerComposeFileDoesNotExists": "Additional Docker Compose File %s does not exists.",
+ "CantWriteDataToFile": "Can not write data to the file %s. Error: %s",
+ "DockerHostVariableWarning": "DOCKER_HOST variable is set. Please ensure that the Docker daemon is running on: %s",
+ "NoDataWrittenOnFile": "No data was written into the file %s",
+ "FileContentSynced": "Synced the file content to the disk. The content is %s.",
+ "ImageNameWithoutTag": "Image name not specified with tag, pushing all tags of the image specified.",
+ "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s",
+ "DeprecationMessage": "The DockerCompose@0 task is deprecated. The task uses docker-compose v1 which no longer receives update since July 2023. To use docker compose v2, use the DockerCompose@1 task.",
+ "InvalidProjectName": "The project name \"%s\" must be a valid docker compose project name. Follow the link for more details: https://aka.ms/azdo-docker-compose-v1",
+ "MigrateToDockerComposeV2": "The task is using Docker Compose V1, which is end-of-life and will be removed from Microsoft-hosted agents July 24. Pipelines running on Microsoft-hosted agents should be updated for Docker Compose v2 compatibility e.g. use compatible container names. For guidance on required updates, please refer to the official Docker Compose documentation at https://docs.docker.com/compose/migrate/"
}
- ],
- "inputs": [
- {
- "name": "containerregistrytype",
- "type": "pickList",
- "label": "Container Registry Type",
- "defaultValue": "Azure Container Registry",
- "required": true,
- "options": {
- "Azure Container Registry": "Azure Container Registry",
- "Container Registry": "Container Registry"
- },
- "helpMarkDown": "Select a Container Registry Type."
- },
- {
- "name": "dockerRegistryEndpoint",
- "type": "connectedService:dockerregistry",
- "label": "Docker Registry Service Connection",
- "helpMarkDown": "Select a Docker registry service connection. Required for commands that need to authenticate with a registry.",
- "visibleRule": "containerregistrytype = Container Registry"
- },
- {
- "name": "azureSubscriptionEndpoint",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure subscription",
- "helpMarkDown": "Select an Azure subscription",
- "visibleRule": "containerregistrytype = Azure Container Registry"
- },
- {
- "name": "azureContainerRegistry",
- "label": "Azure Container Registry",
- "type": "pickList",
- "helpMarkDown": "Select an Azure Container Registry",
- "visibleRule": "containerregistrytype = Azure Container Registry",
- "defaultValue": "",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "dockerComposeFile",
- "type": "filePath",
- "label": "Docker Compose File",
- "defaultValue": "**/docker-compose.yml",
- "required": true,
- "helpMarkDown": "Path to the primary Docker Compose file to use."
- },
- {
- "name": "additionalDockerComposeFiles",
- "type": "multiLine",
- "properties": {
- "resizable": "true",
- "rows": "2"
- },
- "label": "Additional Docker Compose Files",
- "helpMarkDown": "Additional Docker Compose files to be combined with the primary Docker Compose file. Relative paths are resolved relative to the directory containing the primary Docker Compose file. If a specified file is not found, it is ignored. Specify each file path on a new line."
- },
- {
- "name": "dockerComposeFileArgs",
- "type": "multiLine",
- "properties": {
- "resizable": "true",
- "rows": "2"
- },
- "label": "Environment Variables",
- "helpMarkDown": "Environment variables to be set during the command. Specify each name=value pair on a new line."
- },
- {
- "name": "projectName",
- "type": "string",
- "label": "Project Name",
- "defaultValue": "$(Build.Repository.Name)",
- "helpMarkDown": "Project name used for default naming of images and containers."
- },
- {
- "name": "qualifyImageNames",
- "type": "boolean",
- "label": "Qualify Image Names",
- "defaultValue": "true",
- "helpMarkDown": "Qualify image names for built services with the Docker registry service connection's hostname if not otherwise specified."
- },
- {
- "name": "action",
- "type": "pickList",
- "label": "Action",
- "required": true,
- "options": {
- "Build services": "Build service images",
- "Push services": "Push service images",
- "Run services": "Run service images",
- "Run a specific service": "Run a specific service image",
- "Lock services": "Lock service images",
- "Write service image digests": "Write service image digests",
- "Combine configuration": "Combine configuration",
- "Run a Docker Compose command": "Run a Docker Compose command"
- },
- "defaultValue": "Run a Docker Compose command",
- "helpMarkDown": "Select a Docker Compose action."
- },
- {
- "name": "additionalImageTags",
- "type": "multiLine",
- "properties": {
- "resizable": "true",
- "rows": "2"
- },
- "label": "Additional Image Tags",
- "visibleRule": "action = Build services || action = Push services",
- "helpMarkDown": "Additional tags for the Docker images being built or pushed."
- },
- {
- "name": "includeSourceTags",
- "type": "boolean",
- "label": "Include Source Tags",
- "defaultValue": "false",
- "visibleRule": "action = Build services || action = Push services",
- "helpMarkDown": "Include Git tags when building or pushing Docker images."
- },
- {
- "name": "includeLatestTag",
- "type": "boolean",
- "label": "Include Latest Tag",
- "defaultValue": "false",
- "visibleRule": "action = Build services || action = Push services",
- "helpMarkDown": "Include the 'latest' tag when building or pushing Docker images."
- },
- {
- "name": "buildImages",
- "type": "boolean",
- "label": "Build Images",
- "defaultValue": "true",
- "visibleRule": "action = Run services",
- "helpMarkDown": "Build images before starting service containers."
- },
- {
- "name": "serviceName",
- "type": "string",
- "label": "Service Name",
- "required": true,
- "visibleRule": "action = Run a specific service",
- "helpMarkDown": "Name of the specific service to run."
- },
- {
- "name": "containerName",
- "type": "string",
- "label": "Container Name",
- "visibleRule": "action = Run a specific service",
- "helpMarkDown": "Name of the specific service container to run."
- },
- {
- "name": "ports",
- "type": "multiLine",
- "properties": {
- "resizable": "true",
- "rows": "2"
- },
- "label": "Ports",
- "visibleRule": "action = Run a specific service",
- "helpMarkDown": "Ports in the specific service container to publish to the host. Specify each host-port:container-port binding on a new line."
- },
- {
- "name": "workDir",
- "aliases": [
- "workingDirectory"
- ],
- "type": "string",
- "label": "Working Directory",
- "visibleRule": "action = Run a specific service",
- "helpMarkDown": "The working directory for the specific service container."
- },
- {
- "name": "entrypoint",
- "type": "string",
- "label": "Entry Point Override",
- "visibleRule": "action = Run a specific service",
- "helpMarkDown": "Override the default entry point for the specific service container."
- },
- {
- "name": "containerCommand",
- "type": "string",
- "label": "Command",
- "visibleRule": "action = Run a specific service",
- "helpMarkDown": "Command to run in the specific service container. For example, if the image contains a simple Python Flask web application you can specify 'python app.py' to launch the web application."
- },
- {
- "name": "detached",
- "type": "boolean",
- "label": "Run in Background",
- "defaultValue": "true",
- "visibleRule": "action = Run services || action = Run a specific service",
- "helpMarkDown": "Run the service containers in the background."
- },
- {
- "name": "abortOnContainerExit",
- "type": "boolean",
- "label": "Abort on Container Exit",
- "defaultValue": "true",
- "visibleRule": "action = Run services && detached == false",
- "helpMarkDown": "Stop all containers when any container exits."
- },
- {
- "name": "imageDigestComposeFile",
- "type": "filePath",
- "label": "Image Digest Compose File",
- "defaultValue": "$(Build.StagingDirectory)/docker-compose.images.yml",
- "required": true,
- "visibleRule": "action = Write service image digests",
- "helpMarkDown": "Path to a Docker Compose file that is created and populated with the full image repository digests of each service's Docker image."
- },
- {
- "name": "removeBuildOptions",
- "type": "boolean",
- "label": "Remove Build Options",
- "defaultValue": "false",
- "visibleRule": "action = Lock services || action = Combine configuration",
- "helpMarkDown": "Remove the build options from the output Docker Compose file."
- },
- {
- "name": "baseResolveDirectory",
- "type": "filePath",
- "label": "Base Resolve Directory",
- "visibleRule": "action = Lock services || action = Combine configuration",
- "helpMarkDown": "The base directory from which relative paths in the output Docker Compose file should be resolved."
- },
- {
- "name": "outputDockerComposeFile",
- "type": "filePath",
- "label": "Output Docker Compose File",
- "defaultValue": "$(Build.StagingDirectory)/docker-compose.yml",
- "required": true,
- "visibleRule": "action = Lock services || action = Combine configuration",
- "helpMarkDown": "Path to an output Docker Compose file."
- },
- {
- "name": "dockerComposeCommand",
- "type": "string",
- "label": "Command",
- "required": true,
- "visibleRule": "action = Run a Docker Compose command",
- "helpMarkDown": "Docker Compose command to execute with arguments. For example, 'rm --all' to remove all stopped service containers."
- },
- {
- "name": "arguments",
- "type": "string",
- "visibleRule": "action != Lock services && action != Combine configuration && action != Write service image digests",
- "label": "Arguments",
- "helpMarkDown": "Docker Compose command options. Ex: For build command, --pull --compress --parallel"
- },
- {
- "name": "dockerHostEndpoint",
- "type": "connectedService:dockerhost",
- "label": "Docker Host Service Connection",
- "helpMarkDown": "Select a Docker host service connection. Defaults to the agent's host.",
- "groupName": "advanced"
- },
- {
- "name": "nopIfNoDockerComposeFile",
- "type": "boolean",
- "label": "No-op if no Docker Compose File",
- "defaultValue": "false",
- "helpMarkDown": "If the Docker Compose file does not exist, skip this task. This is useful when the task offers optional behavior based on the existence of a Docker Compose file in the repository.",
- "groupName": "advanced"
- },
- {
- "name": "requireAdditionalDockerComposeFiles",
- "type": "boolean",
- "label": "Require Additional Docker Compose Files",
- "defaultValue": "false",
- "helpMarkDown": "Produces an error if the additional Docker Compose files do not exist. This overrides the default behavior which is to ignore a file if it does not exist.",
- "groupName": "advanced"
- },
- {
- "name": "cwd",
- "aliases": [
- "currentWorkingDirectory"
- ],
- "type": "filePath",
- "label": "Working Directory",
- "defaultValue": "$(System.DefaultWorkingDirectory)",
- "helpMarkDown": "Working directory for the Docker Compose command.",
- "groupName": "advanced"
- },
- {
- "name": "dockerComposePath",
- "label": "Docker Compose executable Path",
- "type": "string",
- "required": false,
- "groupName": "advanced",
- "helpMarkDown": "This docker-compose executable will be used if the path is provided",
- "defaultValue": ""
- }
- ],
- "dataSourceBindings": [
- {
- "target": "azureContainerRegistry",
- "endpointId": "$(azureSubscriptionEndpoint)",
- "dataSourceName": "AzureRMContainerRegistries",
- "resultTemplate": "{\"Value\":\"{\\\"loginServer\\\":\\\"{{{properties.loginServer}}}\\\", \\\"id\\\" : \\\"{{{id}}}\\\"}\",\"DisplayValue\":\"{{{name}}}\"}"
- }
- ],
- "outputVariables": [
- {
- "name": "DockerComposeOutput",
- "description": "The path of the file(s) which contains the output of the command. This can contain multiple file paths (separated by newline characters) in case of dockerComposeRun command (one for running and one for down), dockerPush (one for each image pushed), dockerBuild (the build itself and all the tag commands) and dockerDigest (one for each image pulled). The other commands only output one file."
- }
- ],
- "instanceNameFormat": "$(action)",
- "execution": {
- "Node20_1": {
- "target": "dockercompose.js",
- "argumentFormat": ""
- }
- },
- "messages": {
- "ConnectingToDockerHost": "DOCKER_HOST variable is set. Docker will try to connect to the Docker host: %s",
- "ContainerPatternFound": "Pattern found in docker compose filepath parameter",
- "ContainerPatternNotFound": "No pattern found in docker compose filepath parameter",
- "ContainerDockerFileNotFound": "No Docker file matching %s was found.",
- "AdditionalDockerComposeFileDoesNotExists": "Additional Docker Compose File %s does not exists.",
- "CantWriteDataToFile": "Can not write data to the file %s. Error: %s",
- "DockerHostVariableWarning": "DOCKER_HOST variable is set. Please ensure that the Docker daemon is running on: %s",
- "NoDataWrittenOnFile": "No data was written into the file %s",
- "FileContentSynced": "Synced the file content to the disk. The content is %s.",
- "ImageNameWithoutTag": "Image name not specified with tag, pushing all tags of the image specified.",
- "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s",
- "DeprecationMessage": "The DockerCompose@0 task is deprecated. The task uses docker-compose v1 which no longer receives update since July 2023. To use docker compose v2, use the DockerCompose@1 task.",
- "InvalidProjectName": "The project name \"%s\" must be a valid docker compose project name. Follow the link for more details: https://aka.ms/azdo-docker-compose-v1",
- "MigrateToDockerComposeV2": "The task is using Docker Compose V1, which is end-of-life and will be removed from Microsoft-hosted agents July 24. Pipelines running on Microsoft-hosted agents should be updated for Docker Compose v2 compatibility e.g. use compatible container names. For guidance on required updates, please refer to the official Docker Compose documentation at https://docs.docker.com/compose/migrate/"
- }
}
\ No newline at end of file
diff --git a/Tasks/DockerComposeV1/task.loc.json b/Tasks/DockerComposeV1/task.loc.json
index b687c8ab190b..6369d68b4919 100644
--- a/Tasks/DockerComposeV1/task.loc.json
+++ b/Tasks/DockerComposeV1/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"demands": [],
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/de-DE/resources.resjson
index fee6212aa690..4d88463d5224 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/de-DE/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "Der auszuführende dotnet-Befehl. Wählen Sie \"Benutzerdefiniert\", um Argumente hinzuzufügen oder einen Befehl zu verwenden, der hier nicht aufgeführt ist.",
"loc.input.label.publishWebProjects": "Webprojekte veröffentlichen",
"loc.input.help.publishWebProjects": "Bei Festlegung auf TRUE versucht der Task, die Webprojekte im Repository zu ermitteln und für sie den Veröffentlichungsbefehl auszuführen. Webprojekte sind dadurch gekennzeichnet, dass entweder eine Datei \"web.config\" oder ein Ordner \"wwwroot\" im Verzeichnis enthalten ist.",
- "loc.input.label.projects": "Pfad zu Projekten",
- "loc.input.help.projects": "Der Pfad zu den zu verwendenden CSPROJ-Dateien. Sie können Platzhalter verwenden (z. B. \"**/*.csproj\" für alle CSPROJ-Dateien in allen Unterordnern). **Dieses Feld folgt dem Globmuster und wird unabhängig vom Arbeitsverzeichnis immer für den Stamm des Repositorys ausgeführt.**",
+ "loc.input.label.projects": "Pfad zu Projekt(en) oder Lösung(en)",
+ "loc.input.help.projects": "Der Pfad zu den zu verwendenden CSPROJ- oder SLN-Dateien. Sie können Platzhalter verwenden (z. B. \"**/*.csproj\" für alle CSPROJ-Dateien in allen Unterordnern). **Dieses Feld folgt dem Globmuster und wird unabhängig vom Arbeitsverzeichnis immer für den Stamm des Repositorys ausgeführt.**",
"loc.input.label.custom": "Benutzerdefinierter Befehl",
"loc.input.help.custom": "Der an \"dotnet.exe\" zum Ausführen zu übergebende Befehl.",
"loc.input.label.arguments": "Argumente",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "Bei Festlegung auf TRUE wird den Namen von Ordnern, die über den Veröffentlichungsbefehl erstellt wurden, der Ordnername des Projekts vorangestellt, wenn der Ausgabepfad explizit in den Argumenten angegeben wird. Dies ist nützlich, wenn Sie mehrere Projekte im selben Ordner veröffentlichen möchten.",
"loc.input.label.selectOrConfig": "Zu verwendende Feeds",
"loc.input.help.selectOrConfig": "Sie können hier entweder einen Feed aus Azure Artifacts und/oder NuGet.org auswählen oder einen Commit für eine nuget.config-Datei in Ihrem Quellcoderepository durchführen und hier den zugehörigen Pfad festlegen.",
- "loc.input.label.feedRestore": "Pakete aus diesem Azure Artifacts-Feed verwenden",
- "loc.input.help.feedRestore": "Schließen Sie den ausgewählten Feed in die generierte Datei \"NuGet.config\" ein. Azure Artifacts muss installiert und lizenziert sein, damit Sie hier einen Feed auswählen können.",
+ "loc.input.label.feedRestore": "Verwenden Sie Pakete aus diesem Azure Artifacts-Feed. Wählen Sie aus der Dropdownliste aus, oder geben Sie den [Projektnamen/]Feednamen ein.",
+ "loc.input.help.feedRestore": "Ausgewählten Feed in die erstellte Datei \"NuGet.config\" einbeziehen.\n\nFormat:\n* Für organisationsbezogene Feeds: \"FeedName\"\n* Für projektbezogene Feeds: \"ProjectName/FeedName\"",
"loc.input.label.includeNuGetOrg": "Pakete aus \"NuGet.org\" verwenden",
"loc.input.help.includeNuGetOrg": "\"NuGet.org\" in die erstellte Datei \"NuGet.config\" einbeziehen.",
"loc.input.label.nugetConfigPath": "Pfad zu \"NuGet.config\"",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 weist einige Kompatibilitätsprobleme mit älteren NuGet-Versionen (<=5.7) auf, daher können die dotnet-CLI-Befehle (z. B. dotnet build), die auf diesen wiederhergestellten Paketen basieren, möglicherweise nicht ausgeführt werden, wenn Sie eine ältere NuGet-Version (und nicht die dotnet-CLI) verwenden. Um diesen Fehler zu beheben, gibt es folgende Möglichkeiten: (1) Verwenden Sie die dotnet-CLI zur Wiederherstellung. (2) Verwenden Sie NuGet, Version 5.8, zur Wiederherstellung. (3) Verwenden Sie zur Erstellung \"global.json\" mit einer älteren SDK-Version (<=3).",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "Info: .NET Core SDK/Runtime 2.2 und 3.0 haben ihr EOL (End of Life) erreicht und wurden aus allen gehosteten Agents entfernt. Wenn Sie diese SDKs/Runtimes für gehostete Agents verwenden, führen Sie ein Upgrade auf neuere Versionen durch, die das EOL noch nicht erreicht haben, oder verwenden Sie die Aufgabe \"UseDotNet\", um die erforderliche Version zu installieren.",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg ist derzeit für diese Aufgabe aktiviert. Um diese Warnung zu beheben, bearbeiten Sie Ihre Buildaufgabe, und legen Sie \"includeNuGetOrg\" auf \"false\" fest, oder deaktivieren Sie \"Pakete aus NuGet.org verwenden\".",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "Pakete konnten nicht wiederhergestellt werden. Bearbeiten Sie Ihre Buildaufgabe, und legen Sie \"includeNuGetOrg\" auf \"false\" fest, oder deaktivieren Sie \"Pakete aus NuGet.org verwenden\"."
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "Pakete konnten nicht wiederhergestellt werden. Bearbeiten Sie Ihre Buildaufgabe, und legen Sie \"includeNuGetOrg\" auf \"false\" fest, oder deaktivieren Sie \"Pakete aus NuGet.org verwenden\".",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "Die Dienstverbindung verwendet keine unterstützte Authentifizierungsmethode. Verwenden Sie eine Dienstverbindung mit der auf persönlichen Zugriffstoken basierenden Authentifizierung."
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/es-ES/resources.resjson
index 82a2595b1511..397a806e5a37 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/es-ES/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "Comando dotnet para ejecutar. Seleccione \"Personalizado\" para agregar argumentos o usar un comando que no figure aquí.",
"loc.input.label.publishWebProjects": "Publicar proyectos web",
"loc.input.help.publishWebProjects": "Si es verdadero, la tarea intentará encontrar los proyectos web en el repositorio y ejecutará el comando de publicación en ellos. Los proyectos web se identifican por la presencia de un archivo web.config o una carpeta wwwroot en el directorio.",
- "loc.input.label.projects": "Ruta de acceso a los proyectos",
- "loc.input.help.projects": "Ruta de acceso a los archivos csproj que se van a usar. Puede usar caracteres comodín (por ejemplo, **/*.csproj para todos los archivos .csproj de todas las subcarpetas). **Este campo sigue patrones globales y se ejecuta siempre en la raíz del repositorio, independientemente del directorio de trabajo**.",
+ "loc.input.label.projects": "Ruta de acceso a proyectos o soluciones",
+ "loc.input.help.projects": "Ruta de acceso a los archivos csproj o sln que se van a usar. Puede usar caracteres comodín (por ejemplo, **/*.csproj para todos los archivos .csproj de todas las subcarpetas). **Este campo sigue patrones globales y se ejecuta siempre en la raíz del repositorio, independientemente del directorio de trabajo**.",
"loc.input.label.custom": "Comando personalizado",
"loc.input.help.custom": "Comando para pasar a dotnet.exe para ejecutarlo.",
"loc.input.label.arguments": "Argumentos",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "Si es true, las carpetas creadas con el comando publish tendrán el nombre de la carpeta del proyecto como prefijo del nombre de carpeta cuando se especifique la ruta de acceso de la salida de forma explícita en los argumentos. Esto es útil si quiere publicar varios proyectos en la misma carpeta.",
"loc.input.label.selectOrConfig": "Fuentes para usar",
"loc.input.help.selectOrConfig": "Seleccione una fuente de Azure Artifacts o NuGet.org aquí, o bien confirme un archivo nuget.config en el repositorio del código fuente y establezca aquí su ruta de acceso.",
- "loc.input.label.feedRestore": "Usar paquetes de esta fuente de Azure Artifacts",
- "loc.input.help.feedRestore": "Incluya la fuente seleccionada en el archivo NuGet.config generado. Debe tener Azure Artifacts instalado y con licencia para poder seleccionar una fuente aquí.",
+ "loc.input.label.feedRestore": "Use paquetes de esta fuente de Azure Artifacts. Seleccione en la lista desplegable o escriba el nombre de la fuente [nombre del proyecto/].",
+ "loc.input.help.feedRestore": "Incluya la fuente seleccionada en el archivo NuGet.config generado.\n\nFormato:\n* Para fuentes con ámbito de organización: \"FeedName\"\n* Para fuentes con ámbito de proyecto: \"ProjectName/FeedName\"",
"loc.input.label.includeNuGetOrg": "Usar paquetes de NuGet.org",
"loc.input.help.includeNuGetOrg": "Incluya NuGet.org en el archivo NuGet.config generado.",
"loc.input.label.nugetConfigPath": "Ruta de acceso a NuGet.config",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 tiene algunos problemas de compatibilidad con las versiones anteriores de NuGet (<=5.7) por lo que, si usa una versión anterior de NuGet (y no la CLI de DotNet) para restaurar, puede que los comandos de la CLI de DotNet (por ejemplo, dotnet build) que se basan en estos paquetes restaurados no se ejecuten correctamente. Para mitigar este error, puede: (1) - Usar la CLI de DotNet para restaurar. (2) - Usar la versión 5.8 de NuGet para restaurar. (3) - Usar global.json con una versión anterior del SDK (<=3) para compilar.",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "Información: El SDK de .NET Core o el runtime 2.2 y 3.0 han llegado al final de su duración (EOL) y se han quitado de todos los agentes hospedados. Si está usando estos SDK o entornos de ejecución en agentes hospedados, actualice a versiones más recientes que no estén al final de su duración o bien use la tarea UseDotNet para instalar la versión requerida.",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg está habilitado actualmente para esta tarea. Para resolver esta advertencia, edite la tarea de compilación y establezca \"includeNuGetOrg\" en \"false\" o anule la selección de \"Usar paquetes de NuGet.org\".",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "Error al restaurar los paquetes. Edite la tarea de compilación y establezca \"includeNuGetOrg\" en \"false\" o anule la selección de \"Usar paquetes de NuGet.org\"."
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "Error al restaurar los paquetes. Edite la tarea de compilación y establezca \"includeNuGetOrg\" en \"false\" o anule la selección de \"Usar paquetes de NuGet.org\".",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "La conexión de servicio no usa un método de autenticación compatible. Use una conexión de servicio con autenticación basada en token de acceso personal."
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/fr-FR/resources.resjson
index 11435adfd45d..d56998dfb2df 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/fr-FR/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "Commande dotnet à exécuter. Sélectionnez 'Personnalisé' pour ajouter des arguments ou utiliser une commande non listée ici.",
"loc.input.label.publishWebProjects": "Publier des projets web",
"loc.input.help.publishWebProjects": "Si true, la tâche tente de rechercher les projets web dans le dépôt et exécute la commande de publication sur ces projets. Ils sont identifiés par la présence d'un fichier web.config ou d'un dossier wwwroot dans le répertoire.",
- "loc.input.label.projects": "Chemin des projets",
- "loc.input.help.projects": "Chemin du ou des fichiers csproj à utiliser. Vous pouvez utiliser des caractères génériques (par exemple **/*.csproj pour tous les fichiers .csproj de tous les sous-dossiers). **Ce champ suit le modèle Glob et est exécuté à tout moment sur la racine du dépôt, quel que soit le répertoire de travail.**",
+ "loc.input.label.projects": "Chemin du ou des projets ou solutions",
+ "loc.input.help.projects": "Chemin du ou des fichiers csproj ou sln à utiliser. Vous pouvez utiliser des caractères génériques (par exemple **/*.csproj pour tous les fichiers .csproj de tous les sous-dossiers). **Ce champ suit le modèle Glob et est exécuté à tout moment sur la racine du référentiel, quel que soit le répertoire de travail.**",
"loc.input.label.custom": "Commande personnalisée",
"loc.input.help.custom": "Commande à passer à dotnet.exe pour exécution.",
"loc.input.label.arguments": "Arguments",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "Si la valeur est true, les dossiers créés par la commande publish ont un nom de dossier de projet placé avant le nom de dossier quand le chemin de sortie est spécifié explicitement dans les arguments. Cela vous permet de publier plusieurs projets sur le même dossier.",
"loc.input.label.selectOrConfig": "Flux à utiliser",
"loc.input.help.selectOrConfig": "Sélectionnez un flux à partir d'Azure Artifacts et/ou NuGet.org ici, ou validez un fichier nuget.config dans votre dépôt de code source, puis définissez son chemin ici.",
- "loc.input.label.feedRestore": "Utiliser les packages de ce flux Azure Artifacts",
- "loc.input.help.feedRestore": "Incluez le flux sélectionné dans le fichier NuGet.config généré. Pour pouvoir sélectionner un flux, vous devez au préalable installer Azure Artifacts et l'associer à une licence.",
+ "loc.input.label.feedRestore": "Utilisez les packages de ce flux Azure Artifacts. Sélectionnez dans la liste déroulante ou entrez [nom du projet/]nom du flux.",
+ "loc.input.help.feedRestore": "Incluez le flux sélectionné dans le NuGet.config généré.\n\nFormat :\n* Pour les flux à l'échelle de l'organisation : « FeedName »\n* Pour les flux à portée de projet : « ProjectName/FeedName »",
"loc.input.label.includeNuGetOrg": "Utiliser les packages de NuGet.org",
"loc.input.help.includeNuGetOrg": "Incluez NuGet.org dans le fichier NuGet.config généré.",
"loc.input.label.nugetConfigPath": "Chemin de NuGet.config",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 a quelques problèmes de compatibilité avec les anciennes versions de NuGet (<=5.7). Si vous utilisez une ancienne version de NuGet (et non dotnet cli) pour des opérations de restauration, les commandes dotnet cli (par exemple dotnet build) qui dépendent de ces packages restaurés risquent de ne pas fonctionner. Si vous souhaitez atténuer ce genre d'erreur, vous pouvez : (1) - Utiliser dotnet cli pour les opérations de restauration, (2) - Utiliser NuGet version 5.8 pour les opérations de restauration, (3) - Utiliser global.json avec une ancienne version du kit SDK (<=3) pour les opérations de génération",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "Information : Les kits SDK/runtimes .NET Core 2.2 et 3.0 sont en fin de vie (EOL) et ont été supprimés sur tous les agents hébergés. Si vous utilisez ces kits SDK/runtimes sur des agents hébergés, effectuez une mise à niveau vers des versions plus récentes qui ne sont pas en fin de vie (EOL), ou bien utilisez la tâche UseDotNet pour installer la version nécessaire.",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg est actuellement activé pour cette tâche. Pour résoudre cet avertissement, modifiez votre tâche de build et définissez 'includeNuGetOrg' sur 'false' ou désélectionnez 'Use packages from NuGet.org'.",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "Nous n’avons pas pu restaurer des paquets. Editez votre tâche de build et mettez 'includeNuGetOrg' à 'false' ou désélectionnez 'Use packages from NuGet.org'."
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "Nous n’avons pas pu restaurer des paquets. Editez votre tâche de build et mettez 'includeNuGetOrg' à 'false' ou désélectionnez 'Use packages from NuGet.org'.",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "La connexion de service n’utilise aucune méthode d’authentification prise en charge. Veuillez utiliser une connexion de service avec une authentification basée sur un jeton d’accès personnel."
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/it-IT/resources.resjson
index e047630e0db8..3ff18e67016e 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/it-IT/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "Comando dotnet da eseguire. Selezionare 'Personalizza' per aggiungere argomenti o usare un comando non elencato qui.",
"loc.input.label.publishWebProjects": "Pubblica progetti Web",
"loc.input.help.publishWebProjects": "Se è impostato su true, l'attività proverà a trovare i progetti Web nel repository e a eseguire su di essi il comando publish. I progetti Web sono identificabili dalla presenza di un file web.config file o della cartella wwwroot nella directory.",
- "loc.input.label.projects": "Percorso dei progetti",
- "loc.input.help.projects": "Percorso dei file csproj da usare. È possibile usare i caratteri jolly, ad esempio **/.csproj per tutti i file con estensione csproj in tutte le sottocartelle. **Questo campo è conforme al criterio GLOB e viene eseguito sulla radice del repository in tutti i casi, indipendentemente dalla directory di lavoro.**",
+ "loc.input.label.projects": "Percorso per uno o più progetti o soluzioni",
+ "loc.input.help.projects": "Percorso dei file con estensione csproj o sln da usare. È possibile usare i caratteri jolly, ad esempio **/.csproj per tutti i file con estensione csproj in tutte le sottocartelle. **Questo campo è conforme al criterio GLOB e viene eseguito sulla radice del repository in tutti i casi, indipendentemente dalla directory di lavoro.**",
"loc.input.label.custom": "Comando personalizzato",
"loc.input.help.custom": "Comando da passare a dotnet.exe per l'esecuzione.",
"loc.input.label.arguments": "Argomenti",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "Se è true, i nomi delle cartelle create dal comando di pubblicazione saranno preceduti dal nome della cartella del progetto quando negli argomenti viene specificato esplicitamente il percorso di output. È utile se si vogliono pubblicare più progetti nella stessa cartella.",
"loc.input.label.selectOrConfig": "Feed da usare",
"loc.input.help.selectOrConfig": "È possibile selezionare un feed da Azure Artifacts e/o NuGet.org oppure eseguire il commit di un file nuget.config nel repository del codice sorgente e impostarne qui il percorso.",
- "loc.input.label.feedRestore": "Usa pacchetti da questo feed Azure Artifacts",
- "loc.input.help.feedRestore": "Includere il feed selezionato nel file NuGet.config generato. Per selezionare un feed qui, è necessario aver installato Azure Artifacts e disporre della relativa licenza.",
+ "loc.input.label.feedRestore": "Usare pacchetti da questo feed Azure Artifacts. Selezionare una voce dall'elenco a discesa o immettere [nome progetto/]nome feed.",
+ "loc.input.help.feedRestore": "Include il feed selezionato nel file NuGet.config generato.\n\nFormato:\n* Per feed con ambito organizzazione: `FeedName`\n* Per feed con ambito progetto: `ProjectName/FeedName`",
"loc.input.label.includeNuGetOrg": "Usa pacchetti da NuGet.org",
"loc.input.help.includeNuGetOrg": "Include NuGet.org nel file NuGet.config generato.",
"loc.input.label.nugetConfigPath": "Percorso di NuGet.config",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 presenta alcuni problemi di compatibilità con le versioni precedenti di Nuget (<=5.7), quindi se per il ripristino si usa una versione precedente di Nuget (e non dotnet cli), i comandi di dotnet cli (ad esempio dotnet build) che si basano su tali pacchetti ripristinati potrebbero non riuscire. Per mitigare tale errore, è possibile: (1) usare dotnet cli per il ripristino, (2) usare Nuget versione 5.8 per il ripristino, (3) usare Global.json con una versione precedente dell'SDK (<=3) per compilare",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "Informazioni: .NET Core SDK/Runtime 2.2 e 3.0 stanno per passare alla fase EOL (End of Life) e sono stati rimossi da tutti gli agenti ospitati. Se si usano questi SDK/Runtime in agenti ospitati, eseguire l'aggiornamento a versioni più recenti per cui non è previsto il passaggio alla fase EOL oppure usare l'attività Usa dotnet per installare la versione richiesta.",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg è attualmente abilitato per questa attività. Per risolvere questo avviso, modificare l'attività di compilazione e impostare 'includeNuGetOrg' su 'false' o deselezionare 'Usa pacchetti da NuGet.org'.",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "Impossibile ripristinare i pacchetti. Modificare l'attività di compilazione e impostare 'includeNuGetOrg' su 'false' o deselezionare 'Usa pacchetti da NuGet.org'."
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "Impossibile ripristinare i pacchetti. Modificare l'attività di compilazione e impostare 'includeNuGetOrg' su 'false' o deselezionare 'Usa pacchetti da NuGet.org'.",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "La connessione al servizio non utilizza un metodo di autenticazione supportato. Usare una connessione al servizio con autenticazione basata su token di accesso personale."
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ja-JP/resources.resjson
index e34fd36d40a7..7a1736ad2a7b 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ja-JP/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "実行する dotnet コマンド。引数を追加したり、この一覧にないコマンドを使用したりするには、[カスタム] を選択します。",
"loc.input.label.publishWebProjects": "Web プロジェクトの公開",
"loc.input.help.publishWebProjects": "true の場合、タスクはリポジトリ内の Web プロジェクトを検索し、発行コマンドを実行しようとします。Web プロジェクトは web.config ファイルまたは wwwroot フォルダーがディレクトリ内にあるかどうかによって識別されます。",
- "loc.input.label.projects": "プロジェクトへのパス",
- "loc.input.help.projects": "使用する csproj ファイルへのパス。ワイルドカードを使用できます (例: すべてのサブフォルダーにあるすべての .csproj ファイルの場合は **/*.csproj)。**このフィールドは glob パターンに従っており、作業ディレクトリに関係なく、常にリポジトリのルートから相対指定されます。**",
+ "loc.input.label.projects": "プロジェクトまたはソリューションへのパス",
+ "loc.input.help.projects": "使用する csproj または sln ファイルへのパス。ワイルドカードを使用できます (例: すべてのサブフォルダーにあるすべての .csproj ファイルの場合は **/*.csproj)。**このフィールドは glob パターンに従っており、作業ディレクトリに関係なく、常にリポジトリのルートに対して実行されます。**",
"loc.input.label.custom": "カスタム コマンド",
"loc.input.help.custom": "実行のために dotnet.exe に渡すコマンド。",
"loc.input.label.arguments": "引数",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "true にすると、出力パスを明示的に引数で指定している場合に、発行コマンドによって作成されるフォルダーのフォルダー名の前にプロジェクトのフォルダー名が付きます。これは、複数のプロジェクトを同じフォルダーに発行する場合に便利です。",
"loc.input.label.selectOrConfig": "使用するフィード",
"loc.input.help.selectOrConfig": "Azure Artifacts や NuGet.org からフィードをここで選択するか、ソース コード リポジトリに nuGet.config ファイルをコミットしてそのパスをここで設定します。",
- "loc.input.label.feedRestore": "この Azure Artifacts フィードからのパッケージを使用する",
- "loc.input.help.feedRestore": "生成する NuGet.config に、選択したフィードを含めます。ここでフィードを選択するには、Azure Artifacts をインストールしてライセンスを取得している必要があります。",
+ "loc.input.label.feedRestore": "この Azure Artifacts フィードからのパッケージを使用してください。ドロップダウンから選択するか、[プロジェクト名/] フィード名を入力してください。",
+ "loc.input.help.feedRestore": "生成される NuGet.config に選択したフィードを組み込みます。\n\n形式:\n* 組織スコープのフィードの場合: 'FeedName'\n* プロジェクトスコープのフィードの場合: 'ProjectName/FeedName'",
"loc.input.label.includeNuGetOrg": "NuGet.org からのパッケージを使用する",
"loc.input.help.includeNuGetOrg": "生成される NuGet.config に NuGet.org を含めます。",
"loc.input.label.nugetConfigPath": "NuGet.config へのパス",
@@ -72,11 +72,11 @@
"loc.input.label.versionEnvVar": "環境変数",
"loc.input.help.versionEnvVar": "$、$env、または % を使用せずに変数名を入力します。",
"loc.input.label.requestedMajorVersion": "メジャー",
- "loc.input.help.requestedMajorVersion": "バージョン [X.Y.Z] の 'X' (http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedMajorVersion": "The 'X' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.requestedMinorVersion": "マイナー",
- "loc.input.help.requestedMinorVersion": "バージョン [X.Y.Z] の 'Y' (http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedMinorVersion": "The 'Y' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.requestedPatchVersion": "パッチ",
- "loc.input.help.requestedPatchVersion": "バージョン [X.Y.Z] の 'Z' (http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedPatchVersion": "The 'Z' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.buildProperties": "追加のビルド プロパティ",
"loc.input.help.buildProperties": "token = value のペアをセミコロンで区切って並べたリストを指定します。.nuspec ファイル内に出現する $token$ がそれぞれ指定された値で置き換えられます。引用符で囲んだ文字列を値として指定することもできます。",
"loc.input.label.verbosityPack": "詳細",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 には、旧バージョンの Nuget (5.7 以下) と互換性の問題があるため、復元に (dotnet CLI ではなく) 旧バージョンの Nuget を使用している場合、このような復元されたパッケージに依存する dotnet CLI コマンド (例: dotnet build) が失敗するおそれがあります。このようなエラーを軽減するには、次のいずれかを実行します: (1) - dotnet CLI を使用して復元する。(2) - Nuget バージョン 5.8 を使用して復元する。(3) - 旧バージョンの SDK (3 以下) が使用されている global.json を使ってビルドする。",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "情報: .NET Core SDK またはランタイム 2.2 および 3.0 の有効期間は終了しており (EOL)、ホストされているすべてのエージェントから削除されました。ホストされているエージェントでこれらの SDK またはランタイムを使用している場合は EOL を迎えていない新しいバージョンにアップグレードし、それ以外の場合は UseDotNet タスクを使用して必要なバージョンをインストールしてください。",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg は現在、このタスクに対して有効になっています。この警告を解決するには、ビルド タスクを編集し、'includeNuGetOrg' を 'false' に設定するか、'NuGet.org からパッケージを使用する' の選択を解除します。",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "パッケージを復元できませんでした。ビルド タスクを編集し、'includeNuGetOrg' を 'false' に設定するか、'NuGet.org からパッケージを使用する' の選択を解除します。"
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "パッケージを復元できませんでした。ビルド タスクを編集し、'includeNuGetOrg' を 'false' に設定するか、'NuGet.org からパッケージを使用する' の選択を解除します。",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "サービス接続では、サポートされている認証方法が使用されていません。個人用アクセス トークン ベースの認証でサービス接続を使用してください。"
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ko-KR/resources.resjson
index c5b75490fa43..73ffc03128dd 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ko-KR/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "실행할 dotnet 명령입니다. 인수를 추가하거나 여기에 나열되지 않은 명령을 사용하려면 '사용자 지정'을 선택합니다.",
"loc.input.label.publishWebProjects": "웹 프로젝트 게시",
"loc.input.help.publishWebProjects": "True이면 작업에서 리포지토리의 웹 프로젝트를 찾고 해당 프로젝트에서 게시 명령을 실행합니다. 디렉터리에 web.config 파일이나 wwwroot 폴더가 있으면 웹 프로젝트가 있는 것입니다.",
- "loc.input.label.projects": "프로젝트 경로",
- "loc.input.help.projects": "사용할 csproj 파일의 경로입니다. 와일드카드(예: 모든 하위 폴더의 모든 .csproj 파일의 경우 **/*.csproj)를 사용할 수 있습니다. **이 필드는 GLOB 패턴을 따르며, 작업 디렉터리와 상관없이 항상 리포지토리의 루트에 대해 실행됩니다.**",
+ "loc.input.label.projects": "프로젝트 또는 솔루션 경로",
+ "loc.input.help.projects": "사용할 csproj 또는 sln 파일의 경로입니다. 와일드카드를 사용할 수 있습니다(예: 모든 하위 폴더의 모든 .csproj 파일에 대해 **/*.csproj). **이 필드는 글로브 패턴을 따르며, 작업 디렉터리에 관계없이 항상 리포지토리의 루트에 대해 실행됩니다.",
"loc.input.label.custom": "사용자 지정 명령",
"loc.input.help.custom": "실행을 위해 dotnet.exe에 전달할 명령입니다.",
"loc.input.label.arguments": "인수",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "true이면 인수에 명시적으로 출력 경로가 지정된 경우 게시 명령을 통해 만든 폴더의 폴더 이름 앞에 프로젝트 폴더 이름이 추가됩니다. 이 기능은 동일한 폴더에 여러 프로젝트를 게시하려는 경우에 유용합니다.",
"loc.input.label.selectOrConfig": "사용할 피드",
"loc.input.help.selectOrConfig": "여기서 Azure Artifacts 및/또는 NuGet.org의 피드를 선택하거나, nuget.config 파일을 소스 코드 리포지토리에 커밋하고 여기에 해당 경로를 설정할 수 있습니다.",
- "loc.input.label.feedRestore": "이 Azure Artifacts 피드의 패키지 사용",
- "loc.input.help.feedRestore": "선택한 피드를 생성된 NuGet.config에 포함합니다. 여기서 피드를 선택하려면 Azure Artifacts가 설치되고 사용이 허가된 상태여야 합니다.",
+ "loc.input.label.feedRestore": "이 Azure Artifacts 피드의 패키지를 사용합니다. 드롭다운에서 선택하거나 [프로젝트 이름/]피드 이름을 입력합니다.",
+ "loc.input.help.feedRestore": "생성된 NuGet.config에 선택한 피드를 포함합니다.\n\n형식:\n* 조직 범위 피드의 경우: 'FeedName'\n* 프로젝트 범위 피드의 경우: 'ProjectName/FeedName'",
"loc.input.label.includeNuGetOrg": "NuGet.org의 패키지 사용",
"loc.input.help.includeNuGetOrg": "생성된 NuGet.config에 NuGet.org를 포함합니다.",
"loc.input.label.nugetConfigPath": "NuGet.config 경로",
@@ -72,11 +72,11 @@
"loc.input.label.versionEnvVar": "환경 변수",
"loc.input.help.versionEnvVar": "변수 이름을 $, $env 또는 % 없이 입력하세요.",
"loc.input.label.requestedMajorVersion": "주 버전",
- "loc.input.help.requestedMajorVersion": "버전 [X.Y.Z]의 'X'(http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedMajorVersion": "The 'X' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.requestedMinorVersion": "부 버전",
- "loc.input.help.requestedMinorVersion": "버전 [X.Y.Z]의 'Y'(http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedMinorVersion": "The 'Y' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.requestedPatchVersion": "패치",
- "loc.input.help.requestedPatchVersion": "버전 [X.Y.Z]의 'Z'(http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedPatchVersion": "The 'Z' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.buildProperties": "추가 빌드 속성",
"loc.input.help.buildProperties": "세미콜론으로 구분된 토큰 = 값 쌍의 목록을 지정합니다. 여기서 .nuspec 파일의 각 $token$ 항목은 지정된 값으로 바뀝니다. 값은 따옴표로 묶인 문자열일 수 있습니다.",
"loc.input.label.verbosityPack": "자세한 정도",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5에는 이전 NuGet 버전(5.7 이하)과 몇 가지 호환성 문제가 있으므로 이전 NuGet 버전(dotnet cli 아님)을 사용하여 복원하는 경우 이러한 복원된 패키지를 사용하는 dotnet cli 명령(예: dotnet build)이 실패할 수 있습니다. 이러한 오류를 완화하려면 다음 중 하나를 수행할 수 있습니다. (1) - dotnet cli를 사용하여 복원합니다. (2) - NuGet 버전 5.8을 사용하여 복원합니다. (3) - 이전 SDK 버전(3 이하)을 사용하는 global.json을 사용하여 빌드합니다.",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "정보: .NET Core SDK/런타임 2.2 및 3.0이 현재 EOL(만료)되었으며 모든 호스트된 에이전트에서 제거되었습니다. 호스트된 에이전트에서 이러한 SDK/런타임을 사용하는 경우 EOL(만료)되지 않은 최신 버전으로 업그레이드하거나 UseDotNet 작업을 사용하여 필요한 버전을 설치하세요.",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg는 현재 이 작업에 대해 활성화되어 있습니다. 이 경고를 해결하려면 빌드 작업을 편집하고 'includeNuGetOrg'를 'false'로 설정하거나 'NuGet.org의 패키지 사용'을 선택 취소하세요.",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "패키지를 복원하지 못했습니다. 빌드 작업을 편집하고 'includeNuGetOrg'를 'false'로 설정하거나 'NuGet.org에서 패키지 사용'을 선택 취소합니다."
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "패키지를 복원하지 못했습니다. 빌드 작업을 편집하고 'includeNuGetOrg'를 'false'로 설정하거나 'NuGet.org에서 패키지 사용'을 선택 취소합니다.",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "서비스 연결에서 지원되는 인증 방법을 사용하지 않습니다. 개인용 액세스 토큰 기반 인증이 포함된 서비스 연결을 사용하세요."
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ru-RU/resources.resjson
index fe93399de1a6..2b7de31d5bb7 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/ru-RU/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "Команда dotnet, которую необходимо выполнить. Выберите \"Пользовательская\", чтобы добавить аргументы или использовать команду, отсутствующую в списке.",
"loc.input.label.publishWebProjects": "Опубликовать веб-проекты",
"loc.input.help.publishWebProjects": "Если параметр имеет значение true, задача будет искать веб-проекты в репозитории и запустит для них команду публикации. Веб-проекты определяются по наличию в каталоге файла web.config или папки wwwroot.",
- "loc.input.label.projects": "Путь к проектам",
- "loc.input.help.projects": "Путь к используемым CSPROJ-файлам. Можно использовать подстановочные знаки (например, **/*.csproj соответствует всем CSPROJ-файлам во всех вложенных папках). **Это поле соответствует стандартной маске, и его значение всегда определяется относительно корня репозитория, независимо от рабочего каталога.**",
+ "loc.input.label.projects": "Путь к проектам или решениям",
+ "loc.input.help.projects": "Путь к файлам CSPROJ или SLN, которые будут использоваться. Вы можете использовать подстановочные знаки (например, **/*.CSPROJ для всех файлов .CSPROJ во всех подпапках). **Это поле соответствует шаблону GLOB и всегда запускается в корне репозитория, независимо от рабочего каталога.**",
"loc.input.label.custom": "Настраиваемая команда",
"loc.input.help.custom": "Команда, передаваемая в dotnet.exe для выполнения.",
"loc.input.label.arguments": "Аргументы",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "Если задано значение true и выходной путь явно задан в аргументах, перед именами папок, создаваемых командой публикации, будет указываться имя папки проекта. Это полезно в том случае, если необходимо опубликовать несколько проектов в одной папке.",
"loc.input.label.selectOrConfig": "Используемые веб-каналы",
"loc.input.help.selectOrConfig": "Здесь можно выбрать веб-канал из Azure Artifacts или NuGet.org либо сохранить файл nuget.config в репозитории исходного кода и указать здесь путь к нему.",
- "loc.input.label.feedRestore": "Использовать пакеты из этого веб-канала Azure Artifacts",
- "loc.input.help.feedRestore": "Включите выбранный веб-канал в создаваемый файл NuGet.config. Для выбора веб-канала должен быть установлен и лицензирован компонент Azure Artifacts.",
+ "loc.input.label.feedRestore": "Использовать пакеты из этого канала Azure Artifacts. Выберите в раскрывающемся списке или введите [имя проекта/]имя канала.",
+ "loc.input.help.feedRestore": "Включить выбранный канал в созданный файл NuGet.config.\n\nФормат:\n* Для каналов, областью которых является организация: \"Имя канала\"\n* Для каналов, областью которых является проект: \"Имя проекта/имя канала\"",
"loc.input.label.includeNuGetOrg": "Использовать пакеты с сайта NuGet.org",
"loc.input.help.includeNuGetOrg": "Включить NuGet.org в созданный файл NuGet.config.",
"loc.input.label.nugetConfigPath": "Путь к файлу NuGet.config",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": "В .NET 5 существуют некоторые проблемы совместимости с более старыми версиями NuGet (5.7 и ниже), поэтому если для восстановления используется старая версия NuGet (а не dotnet cli), команды dotnet cli (например, dotnet build), использующие такие восстановленные пакеты, могут завершиться сбоем. Чтобы устранить эту ошибку, можно выбрать один из следующих вариантов действий: (1) — использовать для восстановления dotnet cli; (2) — использовать для восстановления NuGet версии 5.8; (3) — использовать для сборки global.json с более старой версией пакета SDK (3 и ниже).",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "Информация: пакет SDK и среда выполнения .NET Core версий 2.2 и 3.0 достигли срока окончания поддержки (EOL) и были удалены со всех размещенных агентов. Если вы используете эти пакеты SDK или среды выполнения на размещенных агентах, обновите их до более поздних версий, которые не достигли срока окончания поддержки, или воспользуйтесь задачей UseDotNet, чтобы установить требуемую версию.",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg сейчас включен для этой задачи. Чтобы устранить это предупреждение, измените задачу сборки и установите для \"includeNuGetOrg\" \"ЛОЖЬ\" или отключите \"Использовать пакеты из NuGet.org\".",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "Не удалось восстановить пакеты. Отредактируете задачу сборки и установите для \"includeNuGetOrg\" \"ЛОЖЬ\" или отключите \"Использовать пакеты из NuGet.org\"."
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "Не удалось восстановить пакеты. Отредактируете задачу сборки и установите для \"includeNuGetOrg\" \"ЛОЖЬ\" или отключите \"Использовать пакеты из NuGet.org\".",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "Подключение к службе не использует поддерживаемый метод проверки подлинности. Используйте сервисное соединение с проверкой подлинности на основе токена личного доступа."
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-CN/resources.resjson
index a7b1bceec1c1..7b3ef5797c43 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-CN/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "要运行的 dotnet 命令。选择“自定义”以添加参数或使用此处未列出的命令。",
"loc.input.label.publishWebProjects": "发布 Web 项目",
"loc.input.help.publishWebProjects": "如果为 true,任务将尝试查找存储库中的 Web 项目,并对其运行发布命令。可通过目录中的 web.config 文件或 wwwroot 文件夹来识别 Web 项目。",
- "loc.input.label.projects": "项目路径",
- "loc.input.help.projects": "要使用的 csproj 文件的路径。可使用通配符(例如,对所有子文件夹中的所有 .csproj 文件使用 **/*.csproj)。**此字段遵循 glob 模式,且无论工作目录如何,都始终针对存储库的根目录运行。**",
+ "loc.input.label.projects": "项目或解决方案的路径",
+ "loc.input.help.projects": "要使用的 csproj 或 sln 文件的路径。你可以使用通配符(例如,对所有子文件夹中的所有 .csproj 文件使用 **/*.csproj)。**此字段遵循 glob 模式,且无论工作目录如何,都始终针对存储库的根目录运行。**",
"loc.input.label.custom": "自定义命令",
"loc.input.help.custom": "传递到 dotnet.exe 进行执行的命令。",
"loc.input.label.arguments": "参数",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "如果为 true,则在参数中显式指定输出路径时,通过发布命令创建的文件夹将在其文件夹名称前加上项目文件名。如果希望将多个项目发布到同一文件夹,这将很有用。",
"loc.input.label.selectOrConfig": "要使用的源",
"loc.input.help.selectOrConfig": "可以在此处选择 Azure Artifacts 和/或 NuGet.org 中的源,也可以将 nuget.config 文件提交到源代码存储库,并在此处设置其路径。",
- "loc.input.label.feedRestore": "使用此 Azure Artifacts 源中的包",
- "loc.input.help.feedRestore": "将所选源包含在生成的 NuGet.config 中。必须安装 Azure Artifacts 并授权才能在此处选择源。",
+ "loc.input.label.feedRestore": "使用此 Azure Artifacts 源中的包。从下拉列表中选择或输入 [project name/]feed 名称。",
+ "loc.input.help.feedRestore": "在生成的 NuGet.config 中包含选择的源。\n\n形式:\n* 对于组织范围的源:“FeedName”\n* 对于项目范围的源:“ProjectName/FeedName”",
"loc.input.label.includeNuGetOrg": "从 NuGet.org 使用包",
"loc.input.help.includeNuGetOrg": "在生成的 NuGet.config 中包含 NuGet.org。",
"loc.input.label.nugetConfigPath": "NuGet.config 的路径",
@@ -72,11 +72,11 @@
"loc.input.label.versionEnvVar": "环境变量",
"loc.input.help.versionEnvVar": "输入变量名称,其中不含 $、$env 或 %。",
"loc.input.label.requestedMajorVersion": "主版本",
- "loc.input.help.requestedMajorVersion": "版本 [X.Y.Z] 中的 \"X\"(http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedMajorVersion": "The 'X' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.requestedMinorVersion": "次版本",
- "loc.input.help.requestedMinorVersion": "版本 [X.Y.Z] 中的 \"Y\"(http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedMinorVersion": "The 'Y' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.requestedPatchVersion": "修补",
- "loc.input.help.requestedPatchVersion": "版本 [X.Y.Z] 中的 \"Z\"(http://semver.org/spec/v1.0.0.html)",
+ "loc.input.help.requestedPatchVersion": "The 'Z' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
"loc.input.label.buildProperties": "其他生成属性",
"loc.input.help.buildProperties": "指定令牌 = 值对列表,用分号分隔,其中 .nuspec 文件中 $token$ 的每个匹配项都将替换为给定的值。值可以是用引号引起来的字符串。",
"loc.input.label.verbosityPack": "详细信息",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 与更低版本的 Nuget (版本不超过 5.7)存在一些兼容性问题,因此如果你在使用更低版本的 Nuget (且未使用 dotnet cli)进行还原,则依赖已还原的这类包的 dotnet cli 命令(例如 dotnet build)可能会失败。若要解决这种错误,可: (1) - 使用 dotnet cli 进行还原,(2) - 使用 Nuget 5.8 版本进行还原,(3) - 通过更低版本的 sdk (版本不超过 3)使用 global.json 来进行生成",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "信息: .NET Core SDK/运行时 2.2 和 3.0 现已到达生命周期结束(EOL)日期,已从所有托管的代理中将它们删除。如果你正在托管的代理上使用这些 SDK/运行时,请升级到尚未到达 EOL 的更新的版本,或者执行 UseDotNet 任务来安装所需的版本。",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "当前已为此任务启用 IncludeNugetOrg。若要解决此警告,请编辑生成任务并将 \"includeNuGetOrg\" 设置为 \"false\" 或取消选择“使用来自 NuGet.org 的包”。",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "包无法还原。请编辑生成任务并将 \"includeNuGetOrg\" 设置为 \"false\",或取消选择“使用来自 NuGet.org 的包”。"
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "包无法还原。请编辑生成任务并将 \"includeNuGetOrg\" 设置为 \"false\",或取消选择“使用来自 NuGet.org 的包”。",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "服务连接未使用受支持的身份验证方法。请配合使用服务连接与基于个人访问令牌的身份验证。"
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-TW/resources.resjson
index 1325c2adcedf..c40d2b0b9a79 100644
--- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/zh-TW/resources.resjson
@@ -14,8 +14,8 @@
"loc.input.help.command": "要執行的 dotnet 命令。選取 [自訂] 可新增引數或使用此處未列出的命令。",
"loc.input.label.publishWebProjects": "發佈 Web 專案",
"loc.input.help.publishWebProjects": "若為 true,工作會嘗試在存放庫中尋找 Web 專案,並對其執行 publish 命令。目錄中有 web.config 檔案或 wwwroot 資料夾,即表示有 Web 專案。",
- "loc.input.label.projects": "專案的路徑",
- "loc.input.help.projects": "要使用的 csproj 檔案路徑。您可以使用萬用字元 (例如 **/*.csproj 表示所有子資料夾中的所有 .csproj 檔案)。**此欄位會遵循 Glob 模式,並在所有時間針對存放庫的根目錄執行,不論工作目錄為何。**",
+ "loc.input.label.projects": "到專案或解決方案的路徑",
+ "loc.input.help.projects": "要使用之 csproj 或 sln 檔案的路徑。您可以使用萬用字元 (例如 **/*.csproj 表示所有子資料夾中的所有 .csproj 檔案)。**此欄位會遵循 Glob 模式,並在所有時間針對存放庫的根目錄執行,不論工作目錄為何。**",
"loc.input.label.custom": "自訂命令",
"loc.input.help.custom": "要傳遞至 dotnet.exe 以加以執行的命令。",
"loc.input.label.arguments": "引數",
@@ -32,8 +32,8 @@
"loc.input.help.modifyOutputPath": "若為 true,則在引數中明確指定輸出路徑時,publish 命令所建立的資料夾會在名稱開頭使用專案的資料夾名稱。如果您想要將多個專案發行到同一個資料夾,此設定非常實用。",
"loc.input.label.selectOrConfig": "要使用的摘要",
"loc.input.help.selectOrConfig": "您可以在這裡從 Azure Artifacts 和 (或) NuGet.org 選取摘要,也可以將 nuget.config 檔案認可至您的原始程式碼存放庫,並在這裡設定其路徑。",
- "loc.input.label.feedRestore": "使用此 Azure 成品摘要中的套件",
- "loc.input.help.feedRestore": "在產生的 NuGet.config 中包含選取的摘要。您必須安裝 Azure Artifacts 且經過授權,才能於此處選取摘要。",
+ "loc.input.label.feedRestore": "使用此 Azure 成品摘要中的套件。從下拉式清單中選取,或輸入 [專案名稱/]摘要名稱。",
+ "loc.input.help.feedRestore": "在產生的 NuGet.config 中包含選取的摘要。\n\n格式:\n* 針對組織範圍的摘要: 'FeedName'\n* 針對專案範圍的摘要: 'ProjectName/FeedName'",
"loc.input.label.includeNuGetOrg": "使用 NuGet.org 中的套件",
"loc.input.help.includeNuGetOrg": "在產生的 NuGet.config 中包含 NuGet.org。",
"loc.input.label.nugetConfigPath": "NuGet.config 的路徑",
@@ -138,5 +138,6 @@
"loc.messages.Net5NugetVersionCompat": ".NET 5 和一些舊版 Nuget (<=5.7) 有相容性問題,所以如果使用較舊的 Nuget 版本 (不是 dotnet cli) 還原,則依賴這些還原套件的 dotnet cli 命令 (例如 dotnet build) 可能會失敗。為減少此類錯誤,您可以使用以下任一方法: (1) – 使用 dotnet cli 還原,(2) – 使用 Nuget 5.8 版還原,(3) – 使用使用舊版 sdk (<=3) 的 global.json 建置",
"loc.messages.DeprecatedDotnet2_2_And_3_0": "資訊: .NET Core SDK/執行階段 2.2 及 3.0 目前已停產 (EOL),並自所有裝載的代理程式中移除。如果您在裝載的代理程式上使用這些 SDK/執行階段,請升級至未停產的較新版本,或使用 UseDotNet 工作安裝必要的版本。",
"loc.messages.Warning_IncludeNuGetOrgEnabled": "目前已為此工作啟用 IncludeNugetOrg。若要解决此警告,請編輯建置工作並將 'includeNuGetOrg' 設定為 'false' 或取消選取 'Use packages from NuGet.org'。",
- "loc.messages.Error_IncludeNuGetOrgEnabled": "無法還原封裝。編輯您的建置工作並將 'includeNuGetOrg' 設定為 'false' 或取消選取 'Use packages from NuGet.org'。"
+ "loc.messages.Error_IncludeNuGetOrgEnabled": "無法還原封裝。編輯您的建置工作並將 'includeNuGetOrg' 設定為 'false' 或取消選取 'Use packages from NuGet.org'。",
+ "loc.messages.Warning_UnsupportedServiceConnectionAuth": "服務連線並非使用支援的驗證方法。請使用個人存取權杖型驗證的服務連線。"
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/task.json b/Tasks/DotNetCoreCLIV2/task.json
index 027ca8c8440e..3b10b7252894 100644
--- a/Tasks/DotNetCoreCLIV2/task.json
+++ b/Tasks/DotNetCoreCLIV2/task.json
@@ -1,603 +1,603 @@
{
- "id": "5541a522-603c-47ad-91fc-a4b1d163081b",
- "name": "DotNetCoreCLI",
- "friendlyName": ".NET Core",
- "description": "Build, test, package, or publish a dotnet application, or run a custom dotnet command",
- "author": "Microsoft Corporation",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=832194) or [see the .NET Core documentation](https://docs.microsoft.com/dotnet/core/)",
- "category": "Build",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent"
- ],
- "demands": [],
- "version": {
- "Major": 2,
- "Minor": 247,
- "Patch": 2
- },
- "minimumAgentVersion": "2.144.0",
- "instanceNameFormat": "dotnet $(command)",
- "groups": [
- {
- "name": "restoreAuth",
- "displayName": "Feeds and authentication",
- "isExpanded": true,
- "visibleRule": "command = restore"
- },
- {
- "name": "restoreAdvanced",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "command = restore"
- },
- {
- "name": "pushAuth",
- "displayName": "Destination feed and authentication",
- "isExpanded": true,
- "visibleRule": "command = push"
- },
- {
- "name": "pushAdvanced",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "command = push"
- },
- {
- "name": "packOptions",
- "displayName": "Pack options",
- "isExpanded": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "packAdvanced",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "generalAdvanced",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "command != pack && command != push && command != restore"
- }
- ],
- "inputs": [
- {
- "name": "ConnectedServiceName",
- "aliases": [
- "azureSubscription"
- ],
- "type": "connectedService:AzureRM",
- "label": "Azure Resource Manager connection",
- "defaultValue": "",
- "helpMarkDown": "Select an Azure Resource Manager service connection"
- },
- {
- "name": "command",
- "type": "pickList",
- "label": "Command",
- "defaultValue": "build",
- "required": true,
- "helpMarkDown": "The dotnet command to run. Select 'Custom' to add arguments or use a command not listed here.",
- "options": {
- "build": "build",
- "push": "nuget push",
- "pack": "pack",
- "publish": "publish",
- "restore": "restore",
- "run": "run",
- "test": "test",
- "custom": "custom"
- },
- "properties": {
- "EditableOptions": "False"
- }
- },
- {
- "name": "publishWebProjects",
- "type": "boolean",
- "visibleRule": "command = publish",
- "label": "Publish web projects",
- "defaultValue": "true",
- "required": true,
- "helpMarkDown": "If true, the task will try to find the web projects in the repository and run the publish command on them. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory."
- },
- {
- "name": "projects",
- "type": "multiLine",
- "label": "Path to project(s) or solution(s)",
- "defaultValue": "",
- "visibleRule": "command = build || command = restore || command = run || command = test || command = custom || publishWebProjects = false",
- "required": false,
- "helpMarkDown": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**"
- },
- {
- "name": "custom",
- "type": "string",
- "label": "Custom command",
- "defaultValue": "",
- "helpMarkDown": "The command to pass to dotnet.exe for execution.",
- "required": true,
- "visibleRule": "command = custom"
- },
- {
- "name": "arguments",
- "type": "string",
- "label": "Arguments",
- "defaultValue": "",
- "visibleRule": "command = build || command = publish || command = run || command = test || command = custom",
- "required": false,
- "helpMarkDown": "Arguments to the selected command. For example, build configuration, output folder, runtime. The arguments depend on the command selected."
- },
- {
- "name": "restoreArguments",
- "type": "string",
- "label": "Arguments",
- "defaultValue": "",
- "visibleRule": "command = restore",
- "required": false,
- "helpMarkDown": "Write the additional arguments to be passed to **restore** command."
- },
- {
- "name": "publishTestResults",
- "type": "boolean",
- "label": "Publish test results and code coverage",
- "defaultValue": "true",
- "visibleRule": "command = test",
- "required": false,
- "helpMarkDown": "Enabling this option will generate a test results TRX file in `$(Agent.TempDirectory)` and results will be published to the server. This option appends `--logger trx --results-directory $(Agent.TempDirectory)` to the command line arguments.
Code coverage can be collected by adding `--collect \"Code coverage\"` option to the command line arguments. This is currently only available on the Windows platform."
- },
- {
- "name": "testRunTitle",
- "type": "string",
- "label": "Test run title",
- "defaultValue": "",
- "visibleRule": "command = test",
- "required": false,
- "helpMarkDown": "Provide a name for the test run."
- },
- {
- "name": "zipAfterPublish",
- "type": "boolean",
- "visibleRule": "command = publish",
- "label": "Zip published projects",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If true, folder created by the publish command will be zipped."
- },
- {
- "name": "modifyOutputPath",
- "type": "boolean",
- "visibleRule": "command = publish",
- "label": "Add project's folder name to publish path",
- "defaultValue": "true",
- "required": false,
- "helpMarkDown": "If true, folders created by the publish command will have project's folder name prefixed to their folder names when output path is specified explicitly in arguments. This is useful if you want to publish multiple projects to the same folder."
- },
- {
- "name": "selectOrConfig",
- "aliases": [
- "feedsToUse"
- ],
- "type": "radio",
- "label": "Feeds to use",
- "defaultValue": "select",
- "helpMarkDown": "You can either select a feed from Azure Artifacts and/or NuGet.org here, or commit a nuget.config file to your source code repository and set its path here.",
- "required": "true",
- "options": {
- "select": "Feed(s) I select here",
- "config": "Feeds in my NuGet.config"
- },
- "groupName": "restoreAuth"
- },
- {
- "name": "feedRestore",
- "aliases": [
- "vstsFeed"
- ],
- "type": "pickList",
- "label": "Use packages from this Azure Artifacts feed. Select from the dropdown or enter [project name/]feed name.",
- "defaultValue": "",
- "helpMarkDown": "Include the selected feed in the generated NuGet.config.\n\nFormat:\n* For organization-scoped feeds: `FeedName`\n* For project-scoped feeds: `ProjectName/FeedName`",
- "required": "false",
- "groupName": "restoreAuth",
- "visibleRule": "selectOrConfig = select",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "includeNuGetOrg",
- "type": "boolean",
- "label": "Use packages from NuGet.org",
- "defaultValue": "true",
- "helpMarkDown": "Include NuGet.org in the generated NuGet.config.",
- "required": "false",
- "groupName": "restoreAuth",
- "visibleRule": "selectOrConfig = select"
- },
- {
- "name": "nugetConfigPath",
- "type": "filePath",
- "label": "Path to NuGet.config",
- "defaultValue": "",
- "helpMarkDown": "The NuGet.config in your repository that specifies the feeds from which to restore packages.",
- "required": "false",
- "groupName": "restoreAuth",
- "visibleRule": "selectOrConfig = config"
- },
- {
- "name": "externalEndpoints",
- "aliases": [
- "externalFeedCredentials"
- ],
- "type": "connectedService:ExternalNuGetFeed",
- "label": "Credentials for feeds outside this organization/collection",
- "required": false,
- "helpMarkDown": "Credentials to use for external registries located in the selected NuGet.config. For feeds in this organization/collection, leave this blank; the build’s credentials are used automatically.",
- "properties": {
- "EditableOptions": "False",
- "MultiSelectFlatList": "True"
- },
- "groupName": "restoreAuth",
- "visibleRule": "selectOrConfig = config"
- },
- {
- "name": "noCache",
- "type": "boolean",
- "label": "Disable local cache",
- "defaultValue": "false",
- "helpMarkDown": "Prevents NuGet from using packages from local machine caches.",
- "required": "false",
- "groupName": "restoreAdvanced"
- },
- {
- "name": "packagesDirectory",
- "aliases": [
- "restoreDirectory"
- ],
- "type": "string",
- "label": "Destination directory",
- "defaultValue": "",
- "helpMarkDown": "Specifies the folder in which packages are installed. If no folder is specified, packages are restored into the default NuGet package cache.",
- "required": "false",
- "groupName": "restoreAdvanced"
- },
- {
- "name": "verbosityRestore",
- "type": "pickList",
- "label": "Verbosity",
- "defaultValue": "Normal",
- "helpMarkDown": "Specifies the amount of detail displayed in the output.",
- "required": "false",
- "groupName": "restoreAdvanced",
- "options": {
- "-": "-",
- "Quiet": "Quiet",
- "Minimal": "Minimal",
- "Normal": "Normal",
- "Detailed": "Detailed",
- "Diagnostic": "Diagnostic"
- }
- },
- {
- "name": "searchPatternPush",
- "aliases": [
- "packagesToPush"
- ],
- "type": "filePath",
- "label": "Path to NuGet package(s) to publish",
- "defaultValue": "$(Build.ArtifactStagingDirectory)/*.nupkg",
- "helpMarkDown": "The pattern to match or path to nupkg files to be uploaded. Multiple patterns can be separated by a semicolon.",
- "required": true,
- "visibleRule": "command = push"
- },
- {
- "name": "nuGetFeedType",
- "type": "radio",
- "label": "Target feed location",
- "required": true,
- "defaultValue": "internal",
- "options": {
- "internal": "This organization/collection",
- "external": "External NuGet server (including other organizations/collections)"
- },
- "visibleRule": "command = push"
- },
- {
- "name": "feedPublish",
- "aliases": [
- "publishVstsFeed"
- ],
- "type": "pickList",
- "label": "Target feed",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "Select a feed hosted in this organization. You must have Azure Artifacts installed and licensed to select a feed here.",
- "visibleRule": "command = push && nuGetFeedType = internal",
- "properties": {
- "EditableOptions": "True"
- }
- },
- {
- "name": "publishPackageMetadata",
- "groupName": "pushAdvanced",
- "type": "boolean",
- "label": "Publish pipeline metadata",
- "defaultValue": true,
- "helpMarkDown": "Associate this build/release pipeline’s metadata (run #, source code information) with the package",
- "visibleRule": "command = push && nuGetFeedType = internal"
- },
- {
- "name": "externalEndpoint",
- "aliases": [
- "publishFeedCredentials"
- ],
- "type": "connectedService:ExternalNuGetFeed",
- "label": "NuGet server",
- "required": true,
- "helpMarkDown": "The NuGet service connection that contains the external NuGet server’s credentials.",
- "visibleRule": "command = push && nuGetFeedType = external"
- },
- {
- "name": "searchPatternPack",
- "aliases": [
- "packagesToPack"
- ],
- "type": "filePath",
- "label": "Path to csproj or nuspec file(s) to pack",
- "defaultValue": "**/*.csproj",
- "helpMarkDown": "Pattern to search for csproj or nuspec files to pack.\n\nYou can separate multiple patterns with a semicolon, and you can make a pattern negative by prefixing it with '!'. Example: `**/*.csproj;!**/*.Tests.csproj`",
- "required": true,
- "visibleRule": "command = pack"
- },
- {
- "name": "configurationToPack",
- "aliases": [
- "configuration"
- ],
- "type": "string",
- "label": "Configuration to Package",
- "defaultValue": "$(BuildConfiguration)",
- "helpMarkDown": "When using a csproj file this specifies the configuration to package",
- "required": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "outputDir",
- "aliases": [
- "packDirectory"
- ],
- "type": "filePath",
- "label": "Package Folder",
- "defaultValue": "$(Build.ArtifactStagingDirectory)",
- "helpMarkDown": "Folder where packages will be created. If empty, packages will be created alongside the csproj file.",
- "required": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "nobuild",
- "type": "boolean",
- "label": "Do not build",
- "defaultValue": "false",
- "helpMarkDown": "Don't build the project before packing. Corresponds to the --no-build command line parameter.",
- "required": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "includesymbols",
- "type": "boolean",
- "label": "Include Symbols",
- "defaultValue": "false",
- "helpMarkDown": "Additionally creates symbol NuGet packages. Corresponds to the --include-symbols command line parameter.",
- "required": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "includesource",
- "type": "boolean",
- "label": "Include Source",
- "defaultValue": "false",
- "helpMarkDown": "Includes source code in the package. Corresponds to the --include-source command line parameter.",
- "required": false,
- "visibleRule": "command = pack"
- },
- {
- "name": "versioningScheme",
- "type": "pickList",
- "label": "Automatic package versioning",
- "defaultValue": "off",
- "helpMarkDown": "Cannot be used with include referenced projects. If you choose 'Use the date and time', this will generate a [SemVer](http://semver.org/spec/v1.0.0.html)-compliant version formatted as `X.Y.Z-ci-datetime` where you choose X, Y, and Z.\n\nIf you choose 'Use an environment variable', you must select an environment variable and ensure it contains the version number you want to use.\n\nIf you choose 'Use the build number', this will use the build number to version your package. **Note:** Under Options set the build number format to be '[$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)](https://go.microsoft.com/fwlink/?LinkID=627416)'.",
- "required": true,
- "groupName": "packOptions",
- "options": {
- "off": "Off",
- "byPrereleaseNumber": "Use the date and time",
- "byEnvVar": "Use an environment variable",
- "byBuildNumber": "Use the build number"
- }
- },
- {
- "name": "versionEnvVar",
- "type": "string",
- "label": "Environment variable",
- "defaultValue": "",
- "helpMarkDown": "Enter the variable name without $, $env, or %.",
- "required": true,
- "groupName": "packOptions",
- "visibleRule": "versioningScheme = byEnvVar"
- },
- {
- "name": "requestedMajorVersion",
- "aliases": [
- "majorVersion"
- ],
- "type": "string",
- "label": "Major",
- "defaultValue": "1",
- "helpMarkDown": "The 'X' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
- "required": true,
- "groupName": "packOptions",
- "visibleRule": "versioningScheme = byPrereleaseNumber"
- },
- {
- "name": "requestedMinorVersion",
- "aliases": [
- "minorVersion"
- ],
- "type": "string",
- "label": "Minor",
- "defaultValue": "0",
- "helpMarkDown": "The 'Y' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
- "required": true,
- "groupName": "packOptions",
- "visibleRule": "versioningScheme = byPrereleaseNumber"
- },
- {
- "name": "requestedPatchVersion",
- "aliases": [
- "patchVersion"
- ],
- "type": "string",
- "label": "Patch",
- "defaultValue": "0",
- "helpMarkDown": "The 'Z' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
- "required": true,
- "groupName": "packOptions",
- "visibleRule": "versioningScheme = byPrereleaseNumber"
- },
- {
- "name": "buildProperties",
- "type": "string",
- "label": "Additional build properties",
- "defaultValue": "",
- "required": false,
- "helpMarkDown": "Specifies a list of token = value pairs, separated by semicolons, where each occurrence of $token$ in the .nuspec file will be replaced with the given value. Values can be strings in quotation marks.",
- "groupName": "packAdvanced"
- },
- {
- "name": "verbosityPack",
- "type": "pickList",
- "label": "Verbosity",
- "defaultValue": "Normal",
- "helpMarkDown": "Specifies the amount of detail displayed in the output.",
- "required": "false",
- "groupName": "packAdvanced",
- "options": {
- "-": "-",
- "Quiet": "Quiet",
- "Minimal": "Minimal",
- "Normal": "Normal",
- "Detailed": "Detailed",
- "Diagnostic": "Diagnostic"
- }
- },
- {
- "name": "workingDirectory",
- "type": "filePath",
- "label": "Working directory",
- "helpMarkDown": "Current working directory where the script is run. Empty is the root of the repo (build) or artifacts (release), which is $(System.DefaultWorkingDirectory). The project search pattern is **NOT** relative to working directory.",
- "required": "false",
- "groupName": "generalAdvanced",
- "visibleRule": "command != restore && command != push && command != pack"
- },
- {
- "name": "requestTimeout",
- "type": "int",
- "label": "Set timeout for package download request",
- "defaultValue": 300000,
- "required": false,
- "helpMarkDown": "Provide a timeout value for HTTP requests that the task makes to obtain the .NET package. The value is in milliseconds. Default is 300000 milliseconds (5 minutes). Cannot be more than 600000 milliseconds (10 minutes)."
- }
- ],
- "dataSourceBindings": [
- {
- "target": "feedRestore",
- "endpointId": "tfs:feed",
- "endpointUrl": "{{endpoint.url}}/_apis/packaging/feeds?includeUrls=False",
- "resultSelector": "jsonpath:$.value[*]",
- "resultTemplate": "{ \"Value\" : \"{{#if project}}{{{project.id}}}\\/{{/if}}{{{id}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
- },
- {
- "target": "feedPublish",
- "endpointId": "tfs:feed",
- "endpointUrl": "{{endpoint.url}}/_apis/packaging/feeds?includeUrls=False",
- "resultSelector": "jsonpath:$.value[*]",
- "resultTemplate": "{ \"Value\" : \"{{#if project}}{{{project.id}}}\\/{{/if}}{{{id}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
- }
- ],
- "execution": {
- "Node10": {
- "target": "dotnetcore.js",
- "argumentFormat": ""
- },
- "Node16": {
- "target": "dotnetcore.js",
- "argumentFormat": ""
+ "id": "5541a522-603c-47ad-91fc-a4b1d163081b",
+ "name": "DotNetCoreCLI",
+ "friendlyName": ".NET Core",
+ "description": "Build, test, package, or publish a dotnet application, or run a custom dotnet command",
+ "author": "Microsoft Corporation",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=832194) or [see the .NET Core documentation](https://docs.microsoft.com/dotnet/core/)",
+ "category": "Build",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent"
+ ],
+ "demands": [],
+ "version": {
+ "Major": 2,
+ "Minor": 250,
+ "Patch": 0
+ },
+ "minimumAgentVersion": "2.144.0",
+ "instanceNameFormat": "dotnet $(command)",
+ "groups": [
+ {
+ "name": "restoreAuth",
+ "displayName": "Feeds and authentication",
+ "isExpanded": true,
+ "visibleRule": "command = restore"
+ },
+ {
+ "name": "restoreAdvanced",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "command = restore"
+ },
+ {
+ "name": "pushAuth",
+ "displayName": "Destination feed and authentication",
+ "isExpanded": true,
+ "visibleRule": "command = push"
+ },
+ {
+ "name": "pushAdvanced",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "command = push"
+ },
+ {
+ "name": "packOptions",
+ "displayName": "Pack options",
+ "isExpanded": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "packAdvanced",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "generalAdvanced",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "command != pack && command != push && command != restore"
+ }
+ ],
+ "inputs": [
+ {
+ "name": "ConnectedServiceName",
+ "aliases": [
+ "azureSubscription"
+ ],
+ "type": "connectedService:AzureRM",
+ "label": "Azure Resource Manager connection",
+ "defaultValue": "",
+ "helpMarkDown": "Select an Azure Resource Manager service connection"
+ },
+ {
+ "name": "command",
+ "type": "pickList",
+ "label": "Command",
+ "defaultValue": "build",
+ "required": true,
+ "helpMarkDown": "The dotnet command to run. Select 'Custom' to add arguments or use a command not listed here.",
+ "options": {
+ "build": "build",
+ "push": "nuget push",
+ "pack": "pack",
+ "publish": "publish",
+ "restore": "restore",
+ "run": "run",
+ "test": "test",
+ "custom": "custom"
+ },
+ "properties": {
+ "EditableOptions": "False"
+ }
+ },
+ {
+ "name": "publishWebProjects",
+ "type": "boolean",
+ "visibleRule": "command = publish",
+ "label": "Publish web projects",
+ "defaultValue": "true",
+ "required": true,
+ "helpMarkDown": "If true, the task will try to find the web projects in the repository and run the publish command on them. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory."
+ },
+ {
+ "name": "projects",
+ "type": "multiLine",
+ "label": "Path to project(s) or solution(s)",
+ "defaultValue": "",
+ "visibleRule": "command = build || command = restore || command = run || command = test || command = custom || publishWebProjects = false",
+ "required": false,
+ "helpMarkDown": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**"
+ },
+ {
+ "name": "custom",
+ "type": "string",
+ "label": "Custom command",
+ "defaultValue": "",
+ "helpMarkDown": "The command to pass to dotnet.exe for execution.",
+ "required": true,
+ "visibleRule": "command = custom"
+ },
+ {
+ "name": "arguments",
+ "type": "string",
+ "label": "Arguments",
+ "defaultValue": "",
+ "visibleRule": "command = build || command = publish || command = run || command = test || command = custom",
+ "required": false,
+ "helpMarkDown": "Arguments to the selected command. For example, build configuration, output folder, runtime. The arguments depend on the command selected."
+ },
+ {
+ "name": "restoreArguments",
+ "type": "string",
+ "label": "Arguments",
+ "defaultValue": "",
+ "visibleRule": "command = restore",
+ "required": false,
+ "helpMarkDown": "Write the additional arguments to be passed to **restore** command."
+ },
+ {
+ "name": "publishTestResults",
+ "type": "boolean",
+ "label": "Publish test results and code coverage",
+ "defaultValue": "true",
+ "visibleRule": "command = test",
+ "required": false,
+ "helpMarkDown": "Enabling this option will generate a test results TRX file in `$(Agent.TempDirectory)` and results will be published to the server. This option appends `--logger trx --results-directory $(Agent.TempDirectory)` to the command line arguments.
Code coverage can be collected by adding `--collect \"Code coverage\"` option to the command line arguments. This is currently only available on the Windows platform."
+ },
+ {
+ "name": "testRunTitle",
+ "type": "string",
+ "label": "Test run title",
+ "defaultValue": "",
+ "visibleRule": "command = test",
+ "required": false,
+ "helpMarkDown": "Provide a name for the test run."
+ },
+ {
+ "name": "zipAfterPublish",
+ "type": "boolean",
+ "visibleRule": "command = publish",
+ "label": "Zip published projects",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If true, folder created by the publish command will be zipped."
+ },
+ {
+ "name": "modifyOutputPath",
+ "type": "boolean",
+ "visibleRule": "command = publish",
+ "label": "Add project's folder name to publish path",
+ "defaultValue": "true",
+ "required": false,
+ "helpMarkDown": "If true, folders created by the publish command will have project's folder name prefixed to their folder names when output path is specified explicitly in arguments. This is useful if you want to publish multiple projects to the same folder."
+ },
+ {
+ "name": "selectOrConfig",
+ "aliases": [
+ "feedsToUse"
+ ],
+ "type": "radio",
+ "label": "Feeds to use",
+ "defaultValue": "select",
+ "helpMarkDown": "You can either select a feed from Azure Artifacts and/or NuGet.org here, or commit a nuget.config file to your source code repository and set its path here.",
+ "required": "true",
+ "options": {
+ "select": "Feed(s) I select here",
+ "config": "Feeds in my NuGet.config"
+ },
+ "groupName": "restoreAuth"
+ },
+ {
+ "name": "feedRestore",
+ "aliases": [
+ "vstsFeed"
+ ],
+ "type": "pickList",
+ "label": "Use packages from this Azure Artifacts feed. Select from the dropdown or enter [project name/]feed name.",
+ "defaultValue": "",
+ "helpMarkDown": "Include the selected feed in the generated NuGet.config.\n\nFormat:\n* For organization-scoped feeds: `FeedName`\n* For project-scoped feeds: `ProjectName/FeedName`",
+ "required": "false",
+ "groupName": "restoreAuth",
+ "visibleRule": "selectOrConfig = select",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "includeNuGetOrg",
+ "type": "boolean",
+ "label": "Use packages from NuGet.org",
+ "defaultValue": "true",
+ "helpMarkDown": "Include NuGet.org in the generated NuGet.config.",
+ "required": "false",
+ "groupName": "restoreAuth",
+ "visibleRule": "selectOrConfig = select"
+ },
+ {
+ "name": "nugetConfigPath",
+ "type": "filePath",
+ "label": "Path to NuGet.config",
+ "defaultValue": "",
+ "helpMarkDown": "The NuGet.config in your repository that specifies the feeds from which to restore packages.",
+ "required": "false",
+ "groupName": "restoreAuth",
+ "visibleRule": "selectOrConfig = config"
+ },
+ {
+ "name": "externalEndpoints",
+ "aliases": [
+ "externalFeedCredentials"
+ ],
+ "type": "connectedService:ExternalNuGetFeed",
+ "label": "Credentials for feeds outside this organization/collection",
+ "required": false,
+ "helpMarkDown": "Credentials to use for external registries located in the selected NuGet.config. For feeds in this organization/collection, leave this blank; the build’s credentials are used automatically.",
+ "properties": {
+ "EditableOptions": "False",
+ "MultiSelectFlatList": "True"
+ },
+ "groupName": "restoreAuth",
+ "visibleRule": "selectOrConfig = config"
+ },
+ {
+ "name": "noCache",
+ "type": "boolean",
+ "label": "Disable local cache",
+ "defaultValue": "false",
+ "helpMarkDown": "Prevents NuGet from using packages from local machine caches.",
+ "required": "false",
+ "groupName": "restoreAdvanced"
+ },
+ {
+ "name": "packagesDirectory",
+ "aliases": [
+ "restoreDirectory"
+ ],
+ "type": "string",
+ "label": "Destination directory",
+ "defaultValue": "",
+ "helpMarkDown": "Specifies the folder in which packages are installed. If no folder is specified, packages are restored into the default NuGet package cache.",
+ "required": "false",
+ "groupName": "restoreAdvanced"
+ },
+ {
+ "name": "verbosityRestore",
+ "type": "pickList",
+ "label": "Verbosity",
+ "defaultValue": "Normal",
+ "helpMarkDown": "Specifies the amount of detail displayed in the output.",
+ "required": "false",
+ "groupName": "restoreAdvanced",
+ "options": {
+ "-": "-",
+ "Quiet": "Quiet",
+ "Minimal": "Minimal",
+ "Normal": "Normal",
+ "Detailed": "Detailed",
+ "Diagnostic": "Diagnostic"
+ }
+ },
+ {
+ "name": "searchPatternPush",
+ "aliases": [
+ "packagesToPush"
+ ],
+ "type": "filePath",
+ "label": "Path to NuGet package(s) to publish",
+ "defaultValue": "$(Build.ArtifactStagingDirectory)/*.nupkg",
+ "helpMarkDown": "The pattern to match or path to nupkg files to be uploaded. Multiple patterns can be separated by a semicolon.",
+ "required": true,
+ "visibleRule": "command = push"
+ },
+ {
+ "name": "nuGetFeedType",
+ "type": "radio",
+ "label": "Target feed location",
+ "required": true,
+ "defaultValue": "internal",
+ "options": {
+ "internal": "This organization/collection",
+ "external": "External NuGet server (including other organizations/collections)"
+ },
+ "visibleRule": "command = push"
+ },
+ {
+ "name": "feedPublish",
+ "aliases": [
+ "publishVstsFeed"
+ ],
+ "type": "pickList",
+ "label": "Target feed",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Select a feed hosted in this organization. You must have Azure Artifacts installed and licensed to select a feed here.",
+ "visibleRule": "command = push && nuGetFeedType = internal",
+ "properties": {
+ "EditableOptions": "True"
+ }
+ },
+ {
+ "name": "publishPackageMetadata",
+ "groupName": "pushAdvanced",
+ "type": "boolean",
+ "label": "Publish pipeline metadata",
+ "defaultValue": true,
+ "helpMarkDown": "Associate this build/release pipeline’s metadata (run #, source code information) with the package",
+ "visibleRule": "command = push && nuGetFeedType = internal"
+ },
+ {
+ "name": "externalEndpoint",
+ "aliases": [
+ "publishFeedCredentials"
+ ],
+ "type": "connectedService:ExternalNuGetFeed",
+ "label": "NuGet server",
+ "required": true,
+ "helpMarkDown": "The NuGet service connection that contains the external NuGet server’s credentials.",
+ "visibleRule": "command = push && nuGetFeedType = external"
+ },
+ {
+ "name": "searchPatternPack",
+ "aliases": [
+ "packagesToPack"
+ ],
+ "type": "filePath",
+ "label": "Path to csproj or nuspec file(s) to pack",
+ "defaultValue": "**/*.csproj",
+ "helpMarkDown": "Pattern to search for csproj or nuspec files to pack.\n\nYou can separate multiple patterns with a semicolon, and you can make a pattern negative by prefixing it with '!'. Example: `**/*.csproj;!**/*.Tests.csproj`",
+ "required": true,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "configurationToPack",
+ "aliases": [
+ "configuration"
+ ],
+ "type": "string",
+ "label": "Configuration to Package",
+ "defaultValue": "$(BuildConfiguration)",
+ "helpMarkDown": "When using a csproj file this specifies the configuration to package",
+ "required": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "outputDir",
+ "aliases": [
+ "packDirectory"
+ ],
+ "type": "filePath",
+ "label": "Package Folder",
+ "defaultValue": "$(Build.ArtifactStagingDirectory)",
+ "helpMarkDown": "Folder where packages will be created. If empty, packages will be created alongside the csproj file.",
+ "required": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "nobuild",
+ "type": "boolean",
+ "label": "Do not build",
+ "defaultValue": "false",
+ "helpMarkDown": "Don't build the project before packing. Corresponds to the --no-build command line parameter.",
+ "required": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "includesymbols",
+ "type": "boolean",
+ "label": "Include Symbols",
+ "defaultValue": "false",
+ "helpMarkDown": "Additionally creates symbol NuGet packages. Corresponds to the --include-symbols command line parameter.",
+ "required": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "includesource",
+ "type": "boolean",
+ "label": "Include Source",
+ "defaultValue": "false",
+ "helpMarkDown": "Includes source code in the package. Corresponds to the --include-source command line parameter.",
+ "required": false,
+ "visibleRule": "command = pack"
+ },
+ {
+ "name": "versioningScheme",
+ "type": "pickList",
+ "label": "Automatic package versioning",
+ "defaultValue": "off",
+ "helpMarkDown": "Cannot be used with include referenced projects. If you choose 'Use the date and time', this will generate a [SemVer](http://semver.org/spec/v1.0.0.html)-compliant version formatted as `X.Y.Z-ci-datetime` where you choose X, Y, and Z.\n\nIf you choose 'Use an environment variable', you must select an environment variable and ensure it contains the version number you want to use.\n\nIf you choose 'Use the build number', this will use the build number to version your package. **Note:** Under Options set the build number format to be '[$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)](https://go.microsoft.com/fwlink/?LinkID=627416)'.",
+ "required": true,
+ "groupName": "packOptions",
+ "options": {
+ "off": "Off",
+ "byPrereleaseNumber": "Use the date and time",
+ "byEnvVar": "Use an environment variable",
+ "byBuildNumber": "Use the build number"
+ }
+ },
+ {
+ "name": "versionEnvVar",
+ "type": "string",
+ "label": "Environment variable",
+ "defaultValue": "",
+ "helpMarkDown": "Enter the variable name without $, $env, or %.",
+ "required": true,
+ "groupName": "packOptions",
+ "visibleRule": "versioningScheme = byEnvVar"
+ },
+ {
+ "name": "requestedMajorVersion",
+ "aliases": [
+ "majorVersion"
+ ],
+ "type": "string",
+ "label": "Major",
+ "defaultValue": "1",
+ "helpMarkDown": "The 'X' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
+ "required": true,
+ "groupName": "packOptions",
+ "visibleRule": "versioningScheme = byPrereleaseNumber"
+ },
+ {
+ "name": "requestedMinorVersion",
+ "aliases": [
+ "minorVersion"
+ ],
+ "type": "string",
+ "label": "Minor",
+ "defaultValue": "0",
+ "helpMarkDown": "The 'Y' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
+ "required": true,
+ "groupName": "packOptions",
+ "visibleRule": "versioningScheme = byPrereleaseNumber"
+ },
+ {
+ "name": "requestedPatchVersion",
+ "aliases": [
+ "patchVersion"
+ ],
+ "type": "string",
+ "label": "Patch",
+ "defaultValue": "0",
+ "helpMarkDown": "The 'Z' in version [X.Y.Z](http://semver.org/spec/v1.0.0.html)",
+ "required": true,
+ "groupName": "packOptions",
+ "visibleRule": "versioningScheme = byPrereleaseNumber"
+ },
+ {
+ "name": "buildProperties",
+ "type": "string",
+ "label": "Additional build properties",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Specifies a list of token = value pairs, separated by semicolons, where each occurrence of $token$ in the .nuspec file will be replaced with the given value. Values can be strings in quotation marks.",
+ "groupName": "packAdvanced"
+ },
+ {
+ "name": "verbosityPack",
+ "type": "pickList",
+ "label": "Verbosity",
+ "defaultValue": "Normal",
+ "helpMarkDown": "Specifies the amount of detail displayed in the output.",
+ "required": "false",
+ "groupName": "packAdvanced",
+ "options": {
+ "-": "-",
+ "Quiet": "Quiet",
+ "Minimal": "Minimal",
+ "Normal": "Normal",
+ "Detailed": "Detailed",
+ "Diagnostic": "Diagnostic"
+ }
+ },
+ {
+ "name": "workingDirectory",
+ "type": "filePath",
+ "label": "Working directory",
+ "helpMarkDown": "Current working directory where the script is run. Empty is the root of the repo (build) or artifacts (release), which is $(System.DefaultWorkingDirectory). The project search pattern is **NOT** relative to working directory.",
+ "required": "false",
+ "groupName": "generalAdvanced",
+ "visibleRule": "command != restore && command != push && command != pack"
+ },
+ {
+ "name": "requestTimeout",
+ "type": "int",
+ "label": "Set timeout for package download request",
+ "defaultValue": 300000,
+ "required": false,
+ "helpMarkDown": "Provide a timeout value for HTTP requests that the task makes to obtain the .NET package. The value is in milliseconds. Default is 300000 milliseconds (5 minutes). Cannot be more than 600000 milliseconds (10 minutes)."
+ }
+ ],
+ "dataSourceBindings": [
+ {
+ "target": "feedRestore",
+ "endpointId": "tfs:feed",
+ "endpointUrl": "{{endpoint.url}}/_apis/packaging/feeds?includeUrls=False",
+ "resultSelector": "jsonpath:$.value[*]",
+ "resultTemplate": "{ \"Value\" : \"{{#if project}}{{{project.id}}}\\/{{/if}}{{{id}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
+ },
+ {
+ "target": "feedPublish",
+ "endpointId": "tfs:feed",
+ "endpointUrl": "{{endpoint.url}}/_apis/packaging/feeds?includeUrls=False",
+ "resultSelector": "jsonpath:$.value[*]",
+ "resultTemplate": "{ \"Value\" : \"{{#if project}}{{{project.id}}}\\/{{/if}}{{{id}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "dotnetcore.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "dotnetcore.js",
+ "argumentFormat": ""
+ }
+ },
+ "messages": {
+ "BuildIdentityPermissionsHint": "For internal feeds, make sure the build service identity '%s' [%s] has access to the feed.",
+ "CouldNotSetCodePaging": "Could not set the code paging of due to following error: %s",
+ "Error_AutomaticallyVersionReleases": "Autoversion: Getting version number from build option is not supported in releases",
+ "Error_CommandNotRecognized": "The command %s was not recognized.",
+ "Error_NoSourceSpecifiedForPush": "No source was specified for push",
+ "Error_NoValueFoundForEnvVar": "No value was found for the provided environment variable.",
+ "Error_NoVersionFoundInBuildNumber": "Could not find version number data in the following environment variable: BUILD_BUILDNUMBER. The value of the variable should contain a substring with the following formats: X.Y.Z or X.Y.Z.A where A, X, Y, and Z are positive integers.",
+ "Error_PackageFailure": "An error occurred while trying to pack the files.",
+ "Error_PushNotARegularFile": "%s is not a file. Check the 'Path/Pattern to nupkg' property of the task.",
+ "Info_AttemptingToPackFile": "Attempting to pack file: ",
+ "Info_NoPackagesMatchedTheSearchPattern": "No packages matched the search pattern.",
+ "Info_NoFilesMatchedTheSearchPattern": "No files matched the search pattern.",
+ "PackagesFailedToInstall": "Packages failed to restore",
+ "PackagesFailedToPublish": "Packages failed to publish",
+ "PackagesInstalledSuccessfully": "Packages were restored successfully",
+ "PackagesPublishedSuccessfully": "Packages were published successfully",
+ "UnknownFeedType": "Unknown feed type '%s'",
+ "Warning_AutomaticallyVersionReferencedProjects": "The automatic package versioning and include referenced projects options do not work together. Referenced projects will not inherit the custom version provided by the automatic versioning settings.",
+ "Warning_MoreThanOneVersionInBuildNumber": "Found more than one instance of version data in BUILD_BUILDNUMBER.Assuming first instance is version.",
+ "dotnetCommandFailed": "Dotnet command failed with non-zero exit code on the following projects : %s",
+ "noProjectFilesFound": "Project file(s) matching the specified pattern were not found.",
+ "noPublishFolderFoundToZip": "A publish folder could not be found to zip for project file: %s.",
+ "noWebProjectFound": "No web project was found in the repository. Web projects are identified by presence of either a web.config file, wwwroot folder in the directory, or by the usage of Microsoft.Net.Web.Sdk in your project file. You can set Publish web projects property to false (publishWebProjects: false in yml) if your project doesn't follow this convention or if you want to publish projects other than web projects.",
+ "zipFailed": "Zip failed with error: %s",
+ "Error_ApiKeyNotSupported": "DotNetCore currently does not support using an encrypted Api Key.",
+ "Error_ExpectedConfigurationElement": "Invalid xml. Expected element named 'configuration'.",
+ "Error_NoMatchingFilesFoundForPattern": "No matching files were found with search pattern: %s",
+ "Error_NoUrlWasFoundWhichMatches": "No download URL was found for %s",
+ "Error_NoVersionWasFoundWhichMatches": "No version was found which matches the input %s",
+ "Error_NuGetToolInstallerFailer": "Tool install failed: %s",
+ "Info_AvailableVersions": "The available versions are: %s",
+ "Info_ExpectBehaviorChangeWhenUsingVersionQuery": "You are using a query match on the version string. Behavior changes or breaking changes might occur as NuGet updates to a new version.",
+ "Info_MatchingUrlWasFoundSettingAuth": "Using authentication information for the following URI: ",
+ "Info_ResolvedToolFromCache": "Resolved from tool cache: %s",
+ "Info_SavingTempConfig": "Saving NuGet.config to a temporary config file.",
+ "Info_UsingToolPath": "Using tool path: %s",
+ "Info_UsingVersion": "Using version: %s",
+ "NGCommon_AddingSources": "Setting credentials in NuGet.config",
+ "NGCommon_AreaNotFoundInSps": "Unable to locate the '%s' [%s] area. The service containing that area may not be available in your region.",
+ "NGCommon_DetectedNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable): %s",
+ "NGCommon_DetectedNuGetVersion": "Detected NuGet version %s / %s",
+ "NGCommon_IgnoringNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable). Extensions are ignored when using the built-in NuGet client",
+ "NGCommon_NoSourcesFoundInConfig": "No package sources were found in the NuGet.config file at %s",
+ "NGCommon_NuGetConfigIsInvalid": "The NuGet.config at %s is invalid.",
+ "NGCommon_NuGetConfigIsPackagesConfig": "Expected a NuGet.config file at %s, but its contents appear to be a packages.config. Check the settings for the %s task and confirm you selected NuGet.config rather than packages.config.",
+ "NGCommon_RemovingSources": "Preparing to set credentials in NuGet.config",
+ "NGCommon_SpsNotFound": "Unable to find the '%s' [%s] area. There may be a problem with your Team Foundation Server installation.",
+ "NGCommon_UnabletoDetectNuGetVersion": "Unknown NuGet version selected.",
+ "NGCommon_UnableToFindTool": "Unable to find tool %s",
+ "Warning_SessionCreationFailed": "Could not create provenance session: %s",
+ "Warning_UpdatingNuGetVersion": "Updating version of NuGet.exe to %s from %s. Behavior changes or breaking changes might occur as NuGet updates to a new version. If this is not desired, deselect the 'Check for Latest Version' option in the task.",
+ "Net5Update": "Info: Azure Pipelines hosted agents have been updated and now contain .Net 5.x SDK/Runtime along with the older .Net Core version which are currently lts. Unless you have locked down a SDK version for your project(s), 5.x SDK might be picked up which might have breaking behavior as compared to previous versions. You can learn more about the breaking changes here: https://docs.microsoft.com/en-us/dotnet/core/tools/ and https://docs.microsoft.com/en-us/dotnet/core/compatibility/ . To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting",
+ "Net5NugetVersionCompat": ".NET 5 has some compatibility issues with older Nuget versions(<=5.7), so if you are using an older Nuget version(and not dotnet cli) to restore, then the dotnet cli commands (e.g. dotnet build) which rely on such restored packages might fail. To mitigate such error, you can either: (1) - Use dotnet cli to restore, (2) - Use Nuget version 5.8 to restore, (3) - Use global.json using an older sdk version(<=3) to build",
+ "DeprecatedDotnet2_2_And_3_0": "Info: .NET Core SDK/runtime 2.2 and 3.0 are now End of Life(EOL) and have been removed from all hosted agents. If you're using these SDK/runtimes on hosted agents, kindly upgrade to newer versions which are not EOL, or else use UseDotNet task to install the required version.",
+ "Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg is currently enabled for this task. To resolve this warning, edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'.",
+ "Error_IncludeNuGetOrgEnabled": "Packages failed to restore. Edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'.",
+ "Warning_UnsupportedServiceConnectionAuth": "The service connection does not use a supported authentication method. Please use a service connection with personal access token based auth."
}
- },
- "messages": {
- "BuildIdentityPermissionsHint": "For internal feeds, make sure the build service identity '%s' [%s] has access to the feed.",
- "CouldNotSetCodePaging": "Could not set the code paging of due to following error: %s",
- "Error_AutomaticallyVersionReleases": "Autoversion: Getting version number from build option is not supported in releases",
- "Error_CommandNotRecognized": "The command %s was not recognized.",
- "Error_NoSourceSpecifiedForPush": "No source was specified for push",
- "Error_NoValueFoundForEnvVar": "No value was found for the provided environment variable.",
- "Error_NoVersionFoundInBuildNumber": "Could not find version number data in the following environment variable: BUILD_BUILDNUMBER. The value of the variable should contain a substring with the following formats: X.Y.Z or X.Y.Z.A where A, X, Y, and Z are positive integers.",
- "Error_PackageFailure": "An error occurred while trying to pack the files.",
- "Error_PushNotARegularFile": "%s is not a file. Check the 'Path/Pattern to nupkg' property of the task.",
- "Info_AttemptingToPackFile": "Attempting to pack file: ",
- "Info_NoPackagesMatchedTheSearchPattern": "No packages matched the search pattern.",
- "Info_NoFilesMatchedTheSearchPattern": "No files matched the search pattern.",
- "PackagesFailedToInstall": "Packages failed to restore",
- "PackagesFailedToPublish": "Packages failed to publish",
- "PackagesInstalledSuccessfully": "Packages were restored successfully",
- "PackagesPublishedSuccessfully": "Packages were published successfully",
- "UnknownFeedType": "Unknown feed type '%s'",
- "Warning_AutomaticallyVersionReferencedProjects": "The automatic package versioning and include referenced projects options do not work together. Referenced projects will not inherit the custom version provided by the automatic versioning settings.",
- "Warning_MoreThanOneVersionInBuildNumber": "Found more than one instance of version data in BUILD_BUILDNUMBER.Assuming first instance is version.",
- "dotnetCommandFailed": "Dotnet command failed with non-zero exit code on the following projects : %s",
- "noProjectFilesFound": "Project file(s) matching the specified pattern were not found.",
- "noPublishFolderFoundToZip": "A publish folder could not be found to zip for project file: %s.",
- "noWebProjectFound": "No web project was found in the repository. Web projects are identified by presence of either a web.config file, wwwroot folder in the directory, or by the usage of Microsoft.Net.Web.Sdk in your project file. You can set Publish web projects property to false (publishWebProjects: false in yml) if your project doesn't follow this convention or if you want to publish projects other than web projects.",
- "zipFailed": "Zip failed with error: %s",
- "Error_ApiKeyNotSupported": "DotNetCore currently does not support using an encrypted Api Key.",
- "Error_ExpectedConfigurationElement": "Invalid xml. Expected element named 'configuration'.",
- "Error_NoMatchingFilesFoundForPattern": "No matching files were found with search pattern: %s",
- "Error_NoUrlWasFoundWhichMatches": "No download URL was found for %s",
- "Error_NoVersionWasFoundWhichMatches": "No version was found which matches the input %s",
- "Error_NuGetToolInstallerFailer": "Tool install failed: %s",
- "Info_AvailableVersions": "The available versions are: %s",
- "Info_ExpectBehaviorChangeWhenUsingVersionQuery": "You are using a query match on the version string. Behavior changes or breaking changes might occur as NuGet updates to a new version.",
- "Info_MatchingUrlWasFoundSettingAuth": "Using authentication information for the following URI: ",
- "Info_ResolvedToolFromCache": "Resolved from tool cache: %s",
- "Info_SavingTempConfig": "Saving NuGet.config to a temporary config file.",
- "Info_UsingToolPath": "Using tool path: %s",
- "Info_UsingVersion": "Using version: %s",
- "NGCommon_AddingSources": "Setting credentials in NuGet.config",
- "NGCommon_AreaNotFoundInSps": "Unable to locate the '%s' [%s] area. The service containing that area may not be available in your region.",
- "NGCommon_DetectedNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable): %s",
- "NGCommon_DetectedNuGetVersion": "Detected NuGet version %s / %s",
- "NGCommon_IgnoringNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable). Extensions are ignored when using the built-in NuGet client",
- "NGCommon_NoSourcesFoundInConfig": "No package sources were found in the NuGet.config file at %s",
- "NGCommon_NuGetConfigIsInvalid": "The NuGet.config at %s is invalid.",
- "NGCommon_NuGetConfigIsPackagesConfig": "Expected a NuGet.config file at %s, but its contents appear to be a packages.config. Check the settings for the %s task and confirm you selected NuGet.config rather than packages.config.",
- "NGCommon_RemovingSources": "Preparing to set credentials in NuGet.config",
- "NGCommon_SpsNotFound": "Unable to find the '%s' [%s] area. There may be a problem with your Team Foundation Server installation.",
- "NGCommon_UnabletoDetectNuGetVersion": "Unknown NuGet version selected.",
- "NGCommon_UnableToFindTool": "Unable to find tool %s",
- "Warning_SessionCreationFailed": "Could not create provenance session: %s",
- "Warning_UpdatingNuGetVersion": "Updating version of NuGet.exe to %s from %s. Behavior changes or breaking changes might occur as NuGet updates to a new version. If this is not desired, deselect the 'Check for Latest Version' option in the task.",
- "Net5Update": "Info: Azure Pipelines hosted agents have been updated and now contain .Net 5.x SDK/Runtime along with the older .Net Core version which are currently lts. Unless you have locked down a SDK version for your project(s), 5.x SDK might be picked up which might have breaking behavior as compared to previous versions. You can learn more about the breaking changes here: https://docs.microsoft.com/en-us/dotnet/core/tools/ and https://docs.microsoft.com/en-us/dotnet/core/compatibility/ . To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting",
- "Net5NugetVersionCompat": ".NET 5 has some compatibility issues with older Nuget versions(<=5.7), so if you are using an older Nuget version(and not dotnet cli) to restore, then the dotnet cli commands (e.g. dotnet build) which rely on such restored packages might fail. To mitigate such error, you can either: (1) - Use dotnet cli to restore, (2) - Use Nuget version 5.8 to restore, (3) - Use global.json using an older sdk version(<=3) to build",
- "DeprecatedDotnet2_2_And_3_0": "Info: .NET Core SDK/runtime 2.2 and 3.0 are now End of Life(EOL) and have been removed from all hosted agents. If you're using these SDK/runtimes on hosted agents, kindly upgrade to newer versions which are not EOL, or else use UseDotNet task to install the required version.",
- "Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg is currently enabled for this task. To resolve this warning, edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'.",
- "Error_IncludeNuGetOrgEnabled": "Packages failed to restore. Edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'.",
- "Warning_UnsupportedServiceConnectionAuth": "The service connection does not use a supported authentication method. Please use a service connection with personal access token based auth."
- }
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreCLIV2/task.loc.json b/Tasks/DotNetCoreCLIV2/task.loc.json
index 6b5f166c36e3..74e70079192c 100644
--- a/Tasks/DotNetCoreCLIV2/task.loc.json
+++ b/Tasks/DotNetCoreCLIV2/task.loc.json
@@ -17,8 +17,8 @@
"demands": [],
"version": {
"Major": 2,
- "Minor": 247,
- "Patch": 2
+ "Minor": 250,
+ "Patch": 0
},
"minimumAgentVersion": "2.144.0",
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",
diff --git a/Tasks/DotNetCoreInstallerV0/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/DotNetCoreInstallerV0/Strings/resources.resjson/es-ES/resources.resjson
index 1debf610b566..f2026dbbf529 100644
--- a/Tasks/DotNetCoreInstallerV0/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/DotNetCoreInstallerV0/Strings/resources.resjson/es-ES/resources.resjson
@@ -6,7 +6,7 @@
"loc.input.label.packageType": "Paquete para instalar",
"loc.input.help.packageType": "Seleccione si debe instalarse solo el entorno de ejecución o el SDK completo.",
"loc.input.label.version": "Versión",
- "loc.input.help.version": "Especifique la versión exacta del entorno de ejecución o el SDK de .NET Core que se va a instalar. Busque el valor de \"version-sdk\" para instalar el SDK o de \"version-runtime\" para instalar el entorno de ejecución de cualquier versión [aquí] (https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DotNetCoreInstallerV0/externals/releases.json).\n **NOTA: La tarea no funcionará con las nuevas versiones de .NET Core. Actualice a la versión 2.\\* de la tarea para descargar las últimas versiones de .NET Core.**",
+ "loc.input.help.version": "Specify exact version of .NET Core SDK or runtime to install. Find the value of `version-sdk` for installing SDK, or `version-runtime` for installing Runtime from any releases [here](https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DotNetCoreInstallerV0/externals/releases.json).\n **NOTE: the task will not work with new versions of .NET Core. Kindly upgrade to 2.\\* version of the task to download latest versions od .NET Core.**",
"loc.messages.ToolFailed": "No se pudo instalar la herramienta: %s",
"loc.messages.ImplicitVersionNotSupported": "La versión debe ser válida y explícita: %s",
"loc.messages.getMachinePlatformFailed": "Error al obtener los detalles de la plataforma de máquina. Error: %s.",
diff --git a/Tasks/DotNetCoreInstallerV0/task.json b/Tasks/DotNetCoreInstallerV0/task.json
index 046e3a5f895f..dac46c8291f5 100644
--- a/Tasks/DotNetCoreInstallerV0/task.json
+++ b/Tasks/DotNetCoreInstallerV0/task.json
@@ -1,82 +1,82 @@
{
- "id": "B0CE7256-7898-45D3-9CB5-176B752BFEA6",
- "name": "DotNetCoreInstaller",
- "friendlyName": ".NET Core SDK/runtime installer",
- "description": "Acquire a specific version of the .NET Core SDK from the internet or local cache and add it to the PATH",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer",
- "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=853651)",
- "category": "Tool",
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "author": "Microsoft Corporation",
- "version": {
- "Major": 0,
- "Minor": 247,
- "Patch": 0
- },
- "satisfies": [
- "DotNetCore"
- ],
- "demands": [],
- "instanceNameFormat": "Use .NET Core $(packageType) $(version)",
- "deprecated": true,
- "deprecationMessage": "The DotNetCoreInstaller@0 task is deprecated, please use the UseDotNet task",
- "inputs": [
- {
- "name": "packageType",
- "type": "pickList",
- "label": "Package to install",
- "defaultValue": "sdk",
- "required": true,
- "helpMarkDown": "Please select whether to install only runtime or full SDK.",
- "options": {
- "runtime": "Runtime",
- "sdk": "SDK (contains runtime)"
- }
+ "id": "B0CE7256-7898-45D3-9CB5-176B752BFEA6",
+ "name": "DotNetCoreInstaller",
+ "friendlyName": ".NET Core SDK/runtime installer",
+ "description": "Acquire a specific version of the .NET Core SDK from the internet or local cache and add it to the PATH",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer",
+ "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=853651)",
+ "category": "Tool",
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 0,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "version",
- "type": "string",
- "label": "Version",
- "defaultValue": "1.0.4",
- "required": true,
- "helpMarkDown": "Specify exact version of .NET Core SDK or runtime to install. Find the value of `version-sdk` for installing SDK, or `version-runtime` for installing Runtime from any releases [here](https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DotNetCoreInstallerV0/externals/releases.json).\n **NOTE: the task will not work with new versions of .NET Core. Kindly upgrade to 2.\\* version of the task to download latest versions od .NET Core.**"
- }
- ],
- "execution": {
- "Node10": {
- "target": "dotnetcoreinstaller.js"
+ "satisfies": [
+ "DotNetCore"
+ ],
+ "demands": [],
+ "instanceNameFormat": "Use .NET Core $(packageType) $(version)",
+ "deprecated": true,
+ "deprecationMessage": "The DotNetCoreInstaller@0 task is deprecated, please use the UseDotNet task",
+ "inputs": [
+ {
+ "name": "packageType",
+ "type": "pickList",
+ "label": "Package to install",
+ "defaultValue": "sdk",
+ "required": true,
+ "helpMarkDown": "Please select whether to install only runtime or full SDK.",
+ "options": {
+ "runtime": "Runtime",
+ "sdk": "SDK (contains runtime)"
+ }
+ },
+ {
+ "name": "version",
+ "type": "string",
+ "label": "Version",
+ "defaultValue": "1.0.4",
+ "required": true,
+ "helpMarkDown": "Specify exact version of .NET Core SDK or runtime to install. Find the value of `version-sdk` for installing SDK, or `version-runtime` for installing Runtime from any releases [here](https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DotNetCoreInstallerV0/externals/releases.json).\n **NOTE: the task will not work with new versions of .NET Core. Kindly upgrade to 2.\\* version of the task to download latest versions od .NET Core.**"
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "dotnetcoreinstaller.js"
+ },
+ "Node16": {
+ "target": "dotnetcoreinstaller.js",
+ "argumentFormat": ""
+ }
},
- "Node16": {
- "target": "dotnetcoreinstaller.js",
- "argumentFormat": ""
+ "messages": {
+ "ToolFailed": "Tool install failed: %s",
+ "ImplicitVersionNotSupported": "Version should be a valid and explicit version: %s",
+ "getMachinePlatformFailed": "Failed to get machine platform details. Error: %s.",
+ "getDownloadUrlsFailed": "Failed to get download urls. Error: %s.",
+ "UsingCachedTool": "Cached copy of .NET Core exists. No need to install afresh. Cached tool location: %s.",
+ "CheckingToolCache": "Checking if a cached copy exists for this version...",
+ "InstallingAfresh": "The cache does not contain the requested version of .NET Core. Downloading and installing it now.",
+ "GettingDownloadUrl": "Getting URL to download .NET Core %s version: %s.",
+ "CouldNotDetectPlatform": "Could not detect the machine's OS",
+ "NullDownloadUrls": "Could not construct download URL. Please ensure that specified version %s is valid.",
+ "DownloadingUrl": "Downloading .NET Core package from URL: %s",
+ "ExtractingPackage": "Extracting downloaded package %s.",
+ "CachingTool": "Caching this installed tool.",
+ "SuccessfullyInstalled": "Successfully installed .NET Core %s version %s.",
+ "ToolToInstall": "Tool to install: .NET Core %s version %s.",
+ "PrimaryPlatform": "Detected platform (Primary): %s",
+ "LegacyPlatform": "Detected platform (Legacy): %s",
+ "WarningVersionNotFound": "Could not fetch download information for version %s. Please check if the version specified is correct. You can refer the link for supported versions => https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DotNetCoreInstallerV0/externals/releases.json. Falling back to creating convention based URL.",
+ "CouldNotDownload": "Could not download installation package from this URL: %s Error: %s",
+ "FailedToDownloadPackage": "Failed to download package for installation",
+ "PrependGlobalToolPath": "Creating global tool path and pre-prending to PATH.",
+ "VersionsFileMalformed": "The specified version's download links are not correctly formed in the supported versions document => %s/",
+ "UpdateToNewerVersion": "Kindly upgrade to new major version of this task 'Use .NET Core (2.*)' for installing newer versions of .NET Core. '0.*' task version might not be able to download newer .NET core versions. To know more about 'Use Dot Net (2.*)', refer https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops."
}
- },
- "messages": {
- "ToolFailed": "Tool install failed: %s",
- "ImplicitVersionNotSupported": "Version should be a valid and explicit version: %s",
- "getMachinePlatformFailed": "Failed to get machine platform details. Error: %s.",
- "getDownloadUrlsFailed": "Failed to get download urls. Error: %s.",
- "UsingCachedTool": "Cached copy of .NET Core exists. No need to install afresh. Cached tool location: %s.",
- "CheckingToolCache": "Checking if a cached copy exists for this version...",
- "InstallingAfresh": "The cache does not contain the requested version of .NET Core. Downloading and installing it now.",
- "GettingDownloadUrl": "Getting URL to download .NET Core %s version: %s.",
- "CouldNotDetectPlatform": "Could not detect the machine's OS",
- "NullDownloadUrls": "Could not construct download URL. Please ensure that specified version %s is valid.",
- "DownloadingUrl": "Downloading .NET Core package from URL: %s",
- "ExtractingPackage": "Extracting downloaded package %s.",
- "CachingTool": "Caching this installed tool.",
- "SuccessfullyInstalled": "Successfully installed .NET Core %s version %s.",
- "ToolToInstall": "Tool to install: .NET Core %s version %s.",
- "PrimaryPlatform": "Detected platform (Primary): %s",
- "LegacyPlatform": "Detected platform (Legacy): %s",
- "WarningVersionNotFound": "Could not fetch download information for version %s. Please check if the version specified is correct. You can refer the link for supported versions => https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DotNetCoreInstallerV0/externals/releases.json. Falling back to creating convention based URL.",
- "CouldNotDownload": "Could not download installation package from this URL: %s Error: %s",
- "FailedToDownloadPackage": "Failed to download package for installation",
- "PrependGlobalToolPath": "Creating global tool path and pre-prending to PATH.",
- "VersionsFileMalformed": "The specified version's download links are not correctly formed in the supported versions document => %s/",
- "UpdateToNewerVersion": "Kindly upgrade to new major version of this task 'Use .NET Core (2.*)' for installing newer versions of .NET Core. '0.*' task version might not be able to download newer .NET core versions. To know more about 'Use Dot Net (2.*)', refer https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops."
- }
}
\ No newline at end of file
diff --git a/Tasks/DotNetCoreInstallerV0/task.loc.json b/Tasks/DotNetCoreInstallerV0/task.loc.json
index 3816182557f4..5e4b8b03541d 100644
--- a/Tasks/DotNetCoreInstallerV0/task.loc.json
+++ b/Tasks/DotNetCoreInstallerV0/task.loc.json
@@ -13,7 +13,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 0,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"satisfies": [
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/de-DE/resources.resjson
index fb14fc8757fc..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/de-DE/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/de-DE/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "Artefakte aus Dateifreigabe herunterladen",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "Hiermit werden Artefakte aus einer Dateifreigabe wie z. B. \"\\\\Freigabe\\Drop\" heruntergeladen.",
- "loc.instanceNameFormat": "Artefakte aus einer Dateifreigabe herunterladen",
- "loc.group.displayName.advanced": "Erweitert",
- "loc.input.label.filesharePath": "Pfad zur Dateifreigabe",
- "loc.input.help.filesharePath": "Pfad der Dateifreigabe, z. B. \"\\\\Server\\Ordner\"",
- "loc.input.label.artifactName": "Artefaktname",
- "loc.input.help.artifactName": "Der Name des Artefakts, das heruntergeladen werden soll, z. B. \"drop\".",
- "loc.input.label.itemPattern": "Muster für Abgleich",
- "loc.input.help.itemPattern": "Geben Sie die Dateien, die heruntergeladen werden sollen, als mehrzeiliges Minimatch-Muster an. [Weitere Informationen](https://aka.ms/minimatchexamples)
Mit dem Standardmuster (\\*\\*) werden alle Dateien im Artefakt heruntergeladen.
",
- "loc.input.label.downloadPath": "Downloadpfad",
- "loc.input.help.downloadPath": "Der Pfad auf dem Agent-Computer, in den die Artefakte heruntergeladen werden",
- "loc.input.label.parallelizationLimit": "Parallelisierungslimit",
- "loc.input.help.parallelizationLimit": "Anzahl von Dateien, die gleichzeitig heruntergeladen werden sollen",
- "loc.messages.DownloadArtifacts": "Artefakt \"%s\" wird von %s heruntergeladen.",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "Erfolgreich in \"%s\" heruntergeladene Artefakte",
- "loc.messages.ArtifactNameDirectoryNotFound": "Das Verzeichnis \"%s\" ist nicht vorhanden. Fallback auf das übergeordnete Verzeichnis: %s"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/es-ES/resources.resjson
index 439f5e27cb9c..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/es-ES/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/es-ES/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "Descargar artefactos de un recurso compartido de archivo",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "Descarga los artefactos de un recurso compartido de archivo, como \\\\share\\drop",
- "loc.instanceNameFormat": "Descargar artefactos de un recurso compartido de archivo",
- "loc.group.displayName.advanced": "Avanzado",
- "loc.input.label.filesharePath": "Ruta de acceso del recurso compartido de archivos",
- "loc.input.help.filesharePath": "Ruta de acceso del recurso compartido de archivos; por ejemplo, \\\\server\\folder",
- "loc.input.label.artifactName": "Nombre del artefacto",
- "loc.input.help.artifactName": "El nombre del artefacto para descargar; p. ej., drop",
- "loc.input.label.itemPattern": "Patrón de coincidencia",
- "loc.input.help.itemPattern": "Especifique los archivos que se van a descargar como patrón de minimatch multilínea. [Más información](https://aka.ms/minimatchexamples)
El patrón predeterminado (\\*\\*) descargará todos los archivos del artefacto.
",
- "loc.input.label.downloadPath": "Ruta de acceso de descarga",
- "loc.input.help.downloadPath": "Ruta de acceso en la máquina del agente donde se descargarán los artefactos",
- "loc.input.label.parallelizationLimit": "Límite de paralelización",
- "loc.input.help.parallelizationLimit": "Número de archivos para descargar simultáneamente",
- "loc.messages.DownloadArtifacts": "Descargando el artefacto %s desde: %s",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "Los artefactos se han descargado correctamente en %s",
- "loc.messages.ArtifactNameDirectoryNotFound": "El directorio \"%s\" no existe. Se usa el directorio primario: %s"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/fr-FR/resources.resjson
index e9f383a68d97..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/fr-FR/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/fr-FR/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "Télécharger les artefacts à partir du partage de fichiers",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "Télécharger les artefacts à partir d'un partage de fichiers, par exemple \\\\partage\\dépôt",
- "loc.instanceNameFormat": "Télécharger les artefacts à partir d'un partage de fichiers",
- "loc.group.displayName.advanced": "Avancé",
- "loc.input.label.filesharePath": "Chemin du partage de fichiers",
- "loc.input.help.filesharePath": "Chemin du partage de fichiers, par exemple \\\\serveur\\dossier",
- "loc.input.label.artifactName": "Nom de l'artefact",
- "loc.input.help.artifactName": "Nom de l'artefact à télécharger, par exemple dépôt",
- "loc.input.label.itemPattern": "Modèle correspondant",
- "loc.input.help.itemPattern": "Spécifiez les fichiers à télécharger sous forme de modèle minimatch multiligne. [Plus d'informations](https://aka.ms/minimatchexamples)
Le modèle par défaut (\\*\\*) télécharge tous les fichiers contenus dans l'artefact.
",
- "loc.input.label.downloadPath": "Chemin de téléchargement",
- "loc.input.help.downloadPath": "Chemin de l'emplacement de téléchargement des artefacts sur la machine agent",
- "loc.input.label.parallelizationLimit": "Limite de parallélisation",
- "loc.input.help.parallelizationLimit": "Nombre de fichiers à télécharger simultanément",
- "loc.messages.DownloadArtifacts": "Téléchargement de l'artefact %s à partir de %s",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "Téléchargement réussi des artefacts sur %s",
- "loc.messages.ArtifactNameDirectoryNotFound": "Le répertoire '%s' n'existe pas. Retour au répertoire parent : %s"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/it-IT/resources.resjson
index de268fde958d..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/it-IT/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "Scarica artefatti dalla condivisione file",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "Consente di scaricare gli artefatti da una condivisione file, ad esempio \\\\condivisione\\drop",
- "loc.instanceNameFormat": "Scarica gli artefatti da una condivisione file",
- "loc.group.displayName.advanced": "Avanzate",
- "loc.input.label.filesharePath": "Percorso della condivisione file",
- "loc.input.help.filesharePath": "Percorso della condivisione file, ad esempio \\\\server\\cartella",
- "loc.input.label.artifactName": "Nome dell'artefatto",
- "loc.input.help.artifactName": "Nome dell'artefatto da scaricare, ad esempio drop",
- "loc.input.label.itemPattern": "Criterio di corrispondenza",
- "loc.input.help.itemPattern": "Consente di specificare i file da scaricare come criterio di corrispondenza minima a più righe. [Altre informazioni](https://aka.ms/minimatchexamples)
Con il criterio predefinito (\\*\\*) verranno scaricati tutti i file presenti nell'artefatto.
",
- "loc.input.label.downloadPath": "Percorso di download",
- "loc.input.help.downloadPath": "Percorso nel computer agente in cui verranno scaricati gli artefatti",
- "loc.input.label.parallelizationLimit": "Limite di parallelizzazione",
- "loc.input.help.parallelizationLimit": "Numero di file da scaricare contemporaneamente",
- "loc.messages.DownloadArtifacts": "Download dell'artefatto %s da %s",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "Gli artefatti sono stati scaricati in %s",
- "loc.messages.ArtifactNameDirectoryNotFound": "La directory '%s' non esiste. Verrà eseguito il fallback alla directory padre: '%s'"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ja-JP/resources.resjson
index 882620110911..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ja-JP/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ja-JP/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "ファイル共有からの成果物のダウンロード",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "ファイル共有 (例: \\\\share\\drop) から成果物をダウンロードします",
- "loc.instanceNameFormat": "ファイル共有から成果物をダウンロードする",
- "loc.group.displayName.advanced": "詳細設定",
- "loc.input.label.filesharePath": "ファイル共有パス",
- "loc.input.help.filesharePath": "ファイル共有パス (例: \\\\server\\folder)",
- "loc.input.label.artifactName": "成果物名",
- "loc.input.help.artifactName": "ダウンロードする成果物の名前です。例:ドロップ",
- "loc.input.label.itemPattern": "一致パターン",
- "loc.input.help.itemPattern": "複数行の minimatch パターンとしてダウンロードするファイルを指定します。[詳細情報](https://aka.ms/minimatchexamples)
既定のパターン (\\*\\*) は、成果物内のすべてのファイルをダウンロードします。
",
- "loc.input.label.downloadPath": "ダウンロード パス",
- "loc.input.help.downloadPath": "成果物のダウンロード先になるエージェント マシン上のパス",
- "loc.input.label.parallelizationLimit": "並列処理の制限",
- "loc.input.help.parallelizationLimit": "同時にダウンロードするファイルの数",
- "loc.messages.DownloadArtifacts": "成果物 %s を %s からダウンロードしています",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "成果物が %s に正常にダウンロードされました",
- "loc.messages.ArtifactNameDirectoryNotFound": "ディレクトリ '%s' が存在しません。親ディレクトリ: %s に戻ります"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ko-KR/resources.resjson
index 7429f92c6975..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ko-KR/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ko-KR/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "파일 공유에서 아티팩트 다운로드",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "파일 공유(예: \\\\share\\drop)에서 아티팩트를 다운로드합니다.",
- "loc.instanceNameFormat": "파일 공유에서 아티팩트 다운로드",
- "loc.group.displayName.advanced": "고급",
- "loc.input.label.filesharePath": "파일 공유 경로",
- "loc.input.help.filesharePath": "파일 공유 경로(예: \\\\server\\folder)입니다.",
- "loc.input.label.artifactName": "아티팩트 이름",
- "loc.input.help.artifactName": "다운로드할 아티팩트의 이름(예: 드롭)",
- "loc.input.label.itemPattern": "일치 패턴",
- "loc.input.help.itemPattern": "여러 줄 minimatch 패턴으로 다운로드할 파일을 지정합니다. [자세한 정보](https://aka.ms/minimatchexamples)
기본 패턴(\\* \\*)은 아티팩트의 내의 모든 파일을 다운로드합니다.
",
- "loc.input.label.downloadPath": "다운로드 경로",
- "loc.input.help.downloadPath": "아티팩트를 다운로드할 에이전트 컴퓨터의 경로",
- "loc.input.label.parallelizationLimit": "병렬 처리 제한",
- "loc.input.help.parallelizationLimit": "동시에 다운로드할 파일 수",
- "loc.messages.DownloadArtifacts": "%s 아티팩트를 %s에서 다운로드 중",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "%s에 아티팩트를 다운로드했습니다.",
- "loc.messages.ArtifactNameDirectoryNotFound": "디렉터리 '%s'이(가) 없습니다. 부모 디렉터리 %s(으)로 대체됩니다."
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ru-RU/resources.resjson
index aa4358c4a382..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ru-RU/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/ru-RU/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "Скачать артефакты из общей папки",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "Скачать артефакты из общей папки, например \\\\share\\drop",
- "loc.instanceNameFormat": "Скачать артефакты из общей папки",
- "loc.group.displayName.advanced": "Дополнительно",
- "loc.input.label.filesharePath": "Путь к общей папке",
- "loc.input.help.filesharePath": "Путь к общей папке, например \\\\сервер\\папка",
- "loc.input.label.artifactName": "Имя артефакта",
- "loc.input.help.artifactName": "Имя артефакта для скачивания, например drop",
- "loc.input.label.itemPattern": "Шаблон соответствия",
- "loc.input.help.itemPattern": "Укажите файлы, которые необходимо скачать, в виде многострочного шаблона minimatch. [Дополнительные сведения](https://aka.ms/minimatchexamples)
Шаблон по умолчанию (\\*\\*) приводит к скачиванию всех файлов в артефакте.
",
- "loc.input.label.downloadPath": "Путь скачивания",
- "loc.input.help.downloadPath": "Путь для скачивания артефактов на компьютере агента",
- "loc.input.label.parallelizationLimit": "Предел параллелизма",
- "loc.input.help.parallelizationLimit": "Число одновременно скачиваемых файлов",
- "loc.messages.DownloadArtifacts": "Скачивается артефакт %s из: %s",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "Артефакты успешно скачаны в %s",
- "loc.messages.ArtifactNameDirectoryNotFound": "Каталог \"%s\" не существует. Будет использоваться родительский каталог: %s"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-CN/resources.resjson
index 8f562d974cd5..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-CN/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-CN/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "从文件共享下载项目",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "从文件共享下载项目,例如 \\\\share\\drop",
- "loc.instanceNameFormat": "从文件共享下载项目",
- "loc.group.displayName.advanced": "高级",
- "loc.input.label.filesharePath": "文件共享路径",
- "loc.input.help.filesharePath": "文件共享路径,例如 \\\\server\\folder",
- "loc.input.label.artifactName": "项目名称",
- "loc.input.help.artifactName": "要下载的项目名称,例如 drop",
- "loc.input.label.itemPattern": "匹配模式",
- "loc.input.help.itemPattern": "指定要以多行 minimatch 模式下载的文件。[详细信息](https://aka.ms/minimatchexamples)
默认模式(\\*\\*)将下载项目中的所有文件。
",
- "loc.input.label.downloadPath": "下载路径",
- "loc.input.help.downloadPath": "代理计算机上用于下载项目的路径",
- "loc.input.label.parallelizationLimit": "并行化限制",
- "loc.input.help.parallelizationLimit": "要同时下载的文件数",
- "loc.messages.DownloadArtifacts": "正在从后列位置下载项目 %s: %s",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "已成功将项目下载到 %s",
- "loc.messages.ArtifactNameDirectoryNotFound": "目录“%s”不存在。请回退到父级目录: %s"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-TW/resources.resjson
index 6581f9a1ac1c..730d28c795fe 100644
--- a/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-TW/resources.resjson
+++ b/Tasks/DownloadFileshareArtifactsV1/Strings/resources.resjson/zh-TW/resources.resjson
@@ -1,20 +1,20 @@
{
- "loc.friendlyName": "從檔案共用下載成品",
+ "loc.friendlyName": "Download artifacts from file share",
"loc.helpMarkDown": "",
- "loc.description": "從檔案共用下載成品,例如 \\\\share\\drop",
- "loc.instanceNameFormat": "從檔案共用下載成品",
- "loc.group.displayName.advanced": "進階",
- "loc.input.label.filesharePath": "檔案共用路徑",
- "loc.input.help.filesharePath": "檔案共用路徑,例如 \\\\伺服器\\資料夾",
- "loc.input.label.artifactName": "成品名稱",
- "loc.input.help.artifactName": "要下載的成品名稱,例如 drop",
- "loc.input.label.itemPattern": "比對模式",
- "loc.input.help.itemPattern": "請指定要以多行 minimatch 模式下載的檔案。[詳細資訊](https://aka.ms/minimatchexamples)
預設模式 (\\*\\*) 會下載誠品中的所有檔案。
",
- "loc.input.label.downloadPath": "下載路徑",
- "loc.input.help.downloadPath": "代理程式機器上,成品下載位置的路徑",
- "loc.input.label.parallelizationLimit": "平行處理的限制",
- "loc.input.help.parallelizationLimit": "要同時下載的檔案數目",
- "loc.messages.DownloadArtifacts": "正在從 %s 下載成品 %s",
- "loc.messages.ArtifactsSuccessfullyDownloaded": "已成功將成品下載到 %s",
- "loc.messages.ArtifactNameDirectoryNotFound": "目錄 '%s' 不存在。正在回復到父目錄: %s"
+ "loc.description": "Download artifacts from a file share, like \\\\share\\drop",
+ "loc.instanceNameFormat": "Download artifacts from a file share",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.filesharePath": "File share path",
+ "loc.input.help.filesharePath": "File share path e.g \\\\server\\folder",
+ "loc.input.label.artifactName": "Artifact name",
+ "loc.input.help.artifactName": "The name of the artifact to download e.g drop",
+ "loc.input.label.itemPattern": "Matching pattern",
+ "loc.input.help.itemPattern": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
",
+ "loc.input.label.downloadPath": "Download path",
+ "loc.input.help.downloadPath": "Path on the agent machine where the artifacts will be downloaded",
+ "loc.input.label.parallelizationLimit": "Parallelization limit",
+ "loc.input.help.parallelizationLimit": "Number of files to download simultaneously",
+ "loc.messages.DownloadArtifacts": "Downloading artifact %s from: %s",
+ "loc.messages.ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "loc.messages.ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/task.json b/Tasks/DownloadFileshareArtifactsV1/task.json
index e134e2839aaf..57dc08541832 100644
--- a/Tasks/DownloadFileshareArtifactsV1/task.json
+++ b/Tasks/DownloadFileshareArtifactsV1/task.json
@@ -1,86 +1,86 @@
{
- "id": "E3CF3806-AD30-4EC4-8F1E-8ECD98771AA0",
- "name": "DownloadFileshareArtifacts",
- "friendlyName": "Download artifacts from file share",
- "description": "Download artifacts from a file share, like \\\\share\\drop",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/download-fileshare-artifacts",
- "helpMarkDown": "",
- "category": "Utility",
- "minimumAgentVersion": "2.144.0",
- "author": "Microsoft Corporation",
- "version": {
- "Major": 1,
- "Minor": 247,
- "Patch": 0
- },
- "groups": [
- {
- "name": "advanced",
- "displayName": "Advanced",
- "isExpanded": true
- }
- ],
- "demands": [],
- "inputs": [
- {
- "name": "filesharePath",
- "type": "string",
- "label": "File share path",
- "required": true,
- "helpMarkDown": "File share path e.g \\\\server\\folder"
- },
- {
- "name": "artifactName",
- "type": "string",
- "label": "Artifact name",
- "defaultValue": "",
- "required": true,
- "helpMarkDown": "The name of the artifact to download e.g drop"
- },
- {
- "name": "itemPattern",
- "type": "multiLine",
- "label": "Matching pattern",
- "defaultValue": "**",
- "required": false,
- "properties": {
- "rows": "3",
- "resizable": "true"
- },
- "helpMarkDown": "Specify files to be downloaded as multi line minimatch pattern. [More Information](https://aka.ms/minimatchexamples)
The default pattern (\\*\\*) will download all files within the artifact.
The default pattern (\\*\\*) will download all files within the artifact.
"
+ },
+ {
+ "name": "downloadPath",
+ "type": "string",
+ "label": "Download path",
+ "defaultValue": "$(System.ArtifactsDirectory)",
+ "required": true,
+ "helpMarkDown": "Path on the agent machine where the artifacts will be downloaded"
+ },
+ {
+ "name": "parallelizationLimit",
+ "type": "string",
+ "label": "Parallelization limit",
+ "defaultValue": "8",
+ "groupName": "advanced",
+ "required": false,
+ "helpMarkDown": "Number of files to download simultaneously"
+ }
+ ],
+ "instanceNameFormat": "Download artifacts from a file share",
+ "execution": {
+ "Node10": {
+ "target": "main.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "main.js",
+ "argumentFormat": ""
+ }
},
- "Node16": {
- "target": "main.js",
- "argumentFormat": ""
+ "messages": {
+ "DownloadArtifacts": "Downloading artifact %s from: %s",
+ "ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
+ "ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
}
- },
- "messages": {
- "DownloadArtifacts": "Downloading artifact %s from: %s",
- "ArtifactsSuccessfullyDownloaded": "Successfully downloaded artifacts to %s",
- "ArtifactNameDirectoryNotFound": "Directory '%s' does not exist. Falling back to parent directory: %s"
- }
}
\ No newline at end of file
diff --git a/Tasks/DownloadFileshareArtifactsV1/task.loc.json b/Tasks/DownloadFileshareArtifactsV1/task.loc.json
index c6dcdd4048a8..e8d527dd6c04 100644
--- a/Tasks/DownloadFileshareArtifactsV1/task.loc.json
+++ b/Tasks/DownloadFileshareArtifactsV1/task.loc.json
@@ -10,7 +10,7 @@
"author": "Microsoft Corporation",
"version": {
"Major": 1,
- "Minor": 247,
+ "Minor": 250,
"Patch": 0
},
"groups": [
diff --git a/Tasks/DownloadGitHubNugetPackageV1/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/DownloadGitHubNugetPackageV1/Strings/resources.resjson/it-IT/resources.resjson
index df75603b119f..5ad43a7114a4 100644
--- a/Tasks/DownloadGitHubNugetPackageV1/Strings/resources.resjson/it-IT/resources.resjson
+++ b/Tasks/DownloadGitHubNugetPackageV1/Strings/resources.resjson/it-IT/resources.resjson
@@ -1,6 +1,6 @@
{
"loc.friendlyName": "Scarica pacchetti NuGet di GitHub",
- "loc.helpMarkDown": "[Vedere la documentazione di .NET Core] (https://docs.microsoft.com/dotnet/core/)",
+ "loc.helpMarkDown": "[See the .NET Core documentation](https://docs.microsoft.com/dotnet/core/)",
"loc.description": "Ripristina i pacchetti NuGet con l'interfaccia della riga di comando di dotnet",
"loc.instanceNameFormat": "dotnet restore",
"loc.group.displayName.restoreAuth": "Feed e autenticazione",
diff --git a/Tasks/DownloadGitHubNugetPackageV1/task.json b/Tasks/DownloadGitHubNugetPackageV1/task.json
index cc9fcbf16872..8b132f245817 100644
--- a/Tasks/DownloadGitHubNugetPackageV1/task.json
+++ b/Tasks/DownloadGitHubNugetPackageV1/task.json
@@ -1,148 +1,148 @@
{
- "id": "9fac244b-8d7c-4d8e-a003-2097daa3270f",
- "name": "DownloadGitHubNugetPackage",
- "friendlyName": "Download GitHub Nuget Packages",
- "description": "Restore your nuget packages using dotnet CLI",
- "author": "Microsoft Corporation",
- "helpUrl": "https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/?view=azure-devops",
- "helpMarkDown": "[See the .NET Core documentation](https://docs.microsoft.com/dotnet/core/)",
- "category": "Build",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent"
- ],
- "demands": [],
- "version": {
- "Major": 1,
- "Minor": 246,
- "Patch": 2
- },
- "minimumAgentVersion": "2.144.0",
- "instanceNameFormat": "dotnet restore",
- "groups": [
- {
- "name": "restoreAuth",
- "displayName": "Feeds and authentication",
- "isExpanded": true,
- "visibleRule": "command = restore"
+ "id": "9fac244b-8d7c-4d8e-a003-2097daa3270f",
+ "name": "DownloadGitHubNugetPackage",
+ "friendlyName": "Download GitHub Nuget Packages",
+ "description": "Restore your nuget packages using dotnet CLI",
+ "author": "Microsoft Corporation",
+ "helpUrl": "https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/?view=azure-devops",
+ "helpMarkDown": "[See the .NET Core documentation](https://docs.microsoft.com/dotnet/core/)",
+ "category": "Build",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent"
+ ],
+ "demands": [],
+ "version": {
+ "Major": 1,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "restoreAdvanced",
- "displayName": "Advanced",
- "isExpanded": false,
- "visibleRule": "command = restore"
- }
- ],
- "inputs": [
- {
- "name": "packageName",
- "type": "string",
- "label": "Package Name",
- "required": true,
- "helpMarkDown": "Name of the package to download from github"
- },
- {
- "name": "version",
- "type": "string",
- "label": "Package Version",
- "required": true,
- "helpMarkDown": "Version of the package to download from github"
- },
- {
- "name": "externalEndpoints",
- "aliases": [
- "externalFeedCredentials"
- ],
- "type": "connectedService:github:PersonalAccessToken,Token",
- "label": "Credentials for feed from GitHub",
- "required": true,
- "helpMarkDown": "Credentials to use for external registry from GitHub",
- "properties": {
- "EditableOptions": "False",
- "MultiSelectFlatList": "False"
- },
- "groupName": "restoreAuth",
- "visibleRule": "selectOrConfig = config"
- },
- {
- "name": "packagesDirectory",
- "aliases": [
- "restoreDirectory"
- ],
- "type": "string",
- "label": "Destination directory",
- "defaultValue": "",
- "helpMarkDown": "Specifies the folder in which packages are installed. If no folder is specified, packages are restored into the default system working directory.",
- "required": "false",
- "groupName": "restoreAdvanced"
- }
- ],
- "execution": {
- "Node10": {
- "target": "dotnetrestore.js",
- "argumentFormat": ""
+ "minimumAgentVersion": "2.144.0",
+ "instanceNameFormat": "dotnet restore",
+ "groups": [
+ {
+ "name": "restoreAuth",
+ "displayName": "Feeds and authentication",
+ "isExpanded": true,
+ "visibleRule": "command = restore"
+ },
+ {
+ "name": "restoreAdvanced",
+ "displayName": "Advanced",
+ "isExpanded": false,
+ "visibleRule": "command = restore"
+ }
+ ],
+ "inputs": [
+ {
+ "name": "packageName",
+ "type": "string",
+ "label": "Package Name",
+ "required": true,
+ "helpMarkDown": "Name of the package to download from github"
+ },
+ {
+ "name": "version",
+ "type": "string",
+ "label": "Package Version",
+ "required": true,
+ "helpMarkDown": "Version of the package to download from github"
+ },
+ {
+ "name": "externalEndpoints",
+ "aliases": [
+ "externalFeedCredentials"
+ ],
+ "type": "connectedService:github:PersonalAccessToken,Token",
+ "label": "Credentials for feed from GitHub",
+ "required": true,
+ "helpMarkDown": "Credentials to use for external registry from GitHub",
+ "properties": {
+ "EditableOptions": "False",
+ "MultiSelectFlatList": "False"
+ },
+ "groupName": "restoreAuth",
+ "visibleRule": "selectOrConfig = config"
+ },
+ {
+ "name": "packagesDirectory",
+ "aliases": [
+ "restoreDirectory"
+ ],
+ "type": "string",
+ "label": "Destination directory",
+ "defaultValue": "",
+ "helpMarkDown": "Specifies the folder in which packages are installed. If no folder is specified, packages are restored into the default system working directory.",
+ "required": "false",
+ "groupName": "restoreAdvanced"
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "dotnetrestore.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "dotnetrestore.js",
+ "argumentFormat": ""
+ }
},
- "Node16": {
- "target": "dotnetrestore.js",
- "argumentFormat": ""
+ "messages": {
+ "BuildIdentityPermissionsHint": "For internal feeds, make sure the build service identity '%s' [%s] has access to the feed.",
+ "CouldNotSetCodePaging": "Could not set the code paging of due to following error: %s",
+ "Error_AutomaticallyVersionReleases": "Autoversion: Getting version number from build option is not supported in releases",
+ "Error_CommandNotRecognized": "The command %s was not recognized.",
+ "Error_InvalidPackageName": "Package name is invalid.",
+ "Error_NoSourceSpecifiedForPush": "No source was specified for push",
+ "Error_NoValueFoundForEnvVar": "No value was found for the provided environment variable.",
+ "Error_NoVersionFoundInBuildNumber": "Could not find version number data in the following environment variable: BUILD_BUILDNUMBER. The value of the variable should contain a substring with the following formats: X.Y.Z or X.Y.Z.A where A, X, Y, and Z are positive integers.",
+ "Error_PackageFailure": "An error occurred while trying to pack the files.",
+ "Error_PushNotARegularFile": "%s is not a file. Check the 'Path/Pattern to nupkg' property of the task.",
+ "Info_AttemptingToPackFile": "Attempting to pack file: ",
+ "Info_NoPackagesMatchedTheSearchPattern": "No packages matched the search pattern.",
+ "Info_NoFilesMatchedTheSearchPattern": "No files matched the search pattern.",
+ "PackageFailedToInstall": "Package failed to restore",
+ "PackagesFailedToPublish": "Packages failed to publish",
+ "PackagesInstalledSuccessfully": "Packages were restored successfully",
+ "PackagesPublishedSuccessfully": "Packages were published successfully",
+ "UnknownFeedType": "Unknown feed type '%s'",
+ "Warning_AutomaticallyVersionReferencedProjects": "The automatic package versioning and include referenced projects options do not work together. Referenced projects will not inherit the custom version provided by the automatic versioning settings.",
+ "Warning_MoreThanOneVersionInBuildNumber": "Found more than one instance of version data in BUILD_BUILDNUMBER.Assuming first instance is version.",
+ "dotnetCommandFailed": "Dotnet command failed with non-zero exit code on the following projects : %s",
+ "noProjectFilesFound": "Project file(s) matching the specified pattern were not found.",
+ "noPublishFolderFoundToZip": "A publish folder could not be found to zip for project file: %s.",
+ "noWebProjectFound": "No web project was found in the repository. Web projects are identified by presence of either a web.config file, wwwroot folder in the directory, or by the usage of Microsoft.Net.Web.Sdk in your project file. You can set Publish Web Projects property to false (publishWebProjects: false in yml) if your project doesn't follow this convention or if you want to publish projects other than web projects.",
+ "zipFailed": "Zip failed with error: %s",
+ "Error_ApiKeyNotSupported": "DotNetCore currently does not support using an encrypted Api Key.",
+ "Error_ExpectedConfigurationElement": "Invalid xml. Expected element named 'configuration'.",
+ "Error_NoMatchingFilesFoundForPattern": "No matching files were found with search pattern: %s",
+ "Error_NoUrlWasFoundWhichMatches": "No download URL was found for %s",
+ "Error_NoVersionWasFoundWhichMatches": "No version was found which matches the input %s",
+ "Error_NuGetToolInstallerFailer": "Tool install failed: %s",
+ "Info_AvailableVersions": "The available versions are: %s",
+ "Info_ExpectBehaviorChangeWhenUsingVersionQuery": "You are using a query match on the version string. Behavior changes or breaking changes might occur as NuGet updates to a new version.",
+ "Info_MatchingUrlWasFoundSettingAuth": "Using authentication information for the following URI: ",
+ "Info_ResolvedToolFromCache": "Resolved from tool cache: %s",
+ "Info_SavingTempConfig": "Saving NuGet.config to a temporary config file.",
+ "Info_UsingToolPath": "Using tool path: %s",
+ "Info_UsingVersion": "Using version: %s",
+ "NGCommon_AddingSources": "Setting credentials in NuGet.config",
+ "NGCommon_AreaNotFoundInSps": "Unable to locate the '%s' [%s] area. The service containing that area may not be available in your region.",
+ "NGCommon_DetectedNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable): %s",
+ "NGCommon_DetectedNuGetVersion": "Detected NuGet version %s / %s",
+ "NGCommon_IgnoringNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable). Extensions are ignored when using the built-in NuGet client",
+ "NGCommon_NoSourcesFoundInConfig": "No package sources were found in the NuGet.config file at %s",
+ "NGCommon_NuGetConfigIsInvalid": "The NuGet.config at %s is invalid.",
+ "NGCommon_NuGetConfigIsPackagesConfig": "Expected a NuGet.config file at %s, but its contents appear to be a packages.config. Check the settings for the %s task and confirm you selected NuGet.config rather than packages.config.",
+ "NGCommon_RemovingSources": "Preparing to set credentials in NuGet.config",
+ "NGCommon_SpsNotFound": "Unable to find the '%s' [%s] area. There may be a problem with your Team Foundation Server installation.",
+ "NGCommon_UnabletoDetectNuGetVersion": "Unknown NuGet version selected.",
+ "NGCommon_UnableToFindTool": "Unable to find tool %s",
+ "Warning_SessionCreationFailed": "Could not create provenance session: %s",
+ "Warning_UpdatingNuGetVersion": "Updating version of NuGet.exe to %s from %s. Behavior changes or breaking changes might occur as NuGet updates to a new version. If this is not desired, deselect the 'Check for Latest Version' option in the task.",
+ "NetCore3Update": "Info: Azure Pipelines hosted agents have been updated to contain .Net Core 3.x SDK/Runtime along with 2.2 & 2.1. Unless you have locked down a SDK version for your project(s), 3.x SDK might be picked up which might have breaking behavior as compared to previous versions. \nSome commonly encountered changes are: \nIf you're using `Publish` command with -o or --Output argument, you will see that the output folder is now being created at root directory rather than Project File's directory. To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting"
}
- },
- "messages": {
- "BuildIdentityPermissionsHint": "For internal feeds, make sure the build service identity '%s' [%s] has access to the feed.",
- "CouldNotSetCodePaging": "Could not set the code paging of due to following error: %s",
- "Error_AutomaticallyVersionReleases": "Autoversion: Getting version number from build option is not supported in releases",
- "Error_CommandNotRecognized": "The command %s was not recognized.",
- "Error_InvalidPackageName": "Package name is invalid.",
- "Error_NoSourceSpecifiedForPush": "No source was specified for push",
- "Error_NoValueFoundForEnvVar": "No value was found for the provided environment variable.",
- "Error_NoVersionFoundInBuildNumber": "Could not find version number data in the following environment variable: BUILD_BUILDNUMBER. The value of the variable should contain a substring with the following formats: X.Y.Z or X.Y.Z.A where A, X, Y, and Z are positive integers.",
- "Error_PackageFailure": "An error occurred while trying to pack the files.",
- "Error_PushNotARegularFile": "%s is not a file. Check the 'Path/Pattern to nupkg' property of the task.",
- "Info_AttemptingToPackFile": "Attempting to pack file: ",
- "Info_NoPackagesMatchedTheSearchPattern": "No packages matched the search pattern.",
- "Info_NoFilesMatchedTheSearchPattern": "No files matched the search pattern.",
- "PackageFailedToInstall": "Package failed to restore",
- "PackagesFailedToPublish": "Packages failed to publish",
- "PackagesInstalledSuccessfully": "Packages were restored successfully",
- "PackagesPublishedSuccessfully": "Packages were published successfully",
- "UnknownFeedType": "Unknown feed type '%s'",
- "Warning_AutomaticallyVersionReferencedProjects": "The automatic package versioning and include referenced projects options do not work together. Referenced projects will not inherit the custom version provided by the automatic versioning settings.",
- "Warning_MoreThanOneVersionInBuildNumber": "Found more than one instance of version data in BUILD_BUILDNUMBER.Assuming first instance is version.",
- "dotnetCommandFailed": "Dotnet command failed with non-zero exit code on the following projects : %s",
- "noProjectFilesFound": "Project file(s) matching the specified pattern were not found.",
- "noPublishFolderFoundToZip": "A publish folder could not be found to zip for project file: %s.",
- "noWebProjectFound": "No web project was found in the repository. Web projects are identified by presence of either a web.config file, wwwroot folder in the directory, or by the usage of Microsoft.Net.Web.Sdk in your project file. You can set Publish Web Projects property to false (publishWebProjects: false in yml) if your project doesn't follow this convention or if you want to publish projects other than web projects.",
- "zipFailed": "Zip failed with error: %s",
- "Error_ApiKeyNotSupported": "DotNetCore currently does not support using an encrypted Api Key.",
- "Error_ExpectedConfigurationElement": "Invalid xml. Expected element named 'configuration'.",
- "Error_NoMatchingFilesFoundForPattern": "No matching files were found with search pattern: %s",
- "Error_NoUrlWasFoundWhichMatches": "No download URL was found for %s",
- "Error_NoVersionWasFoundWhichMatches": "No version was found which matches the input %s",
- "Error_NuGetToolInstallerFailer": "Tool install failed: %s",
- "Info_AvailableVersions": "The available versions are: %s",
- "Info_ExpectBehaviorChangeWhenUsingVersionQuery": "You are using a query match on the version string. Behavior changes or breaking changes might occur as NuGet updates to a new version.",
- "Info_MatchingUrlWasFoundSettingAuth": "Using authentication information for the following URI: ",
- "Info_ResolvedToolFromCache": "Resolved from tool cache: %s",
- "Info_SavingTempConfig": "Saving NuGet.config to a temporary config file.",
- "Info_UsingToolPath": "Using tool path: %s",
- "Info_UsingVersion": "Using version: %s",
- "NGCommon_AddingSources": "Setting credentials in NuGet.config",
- "NGCommon_AreaNotFoundInSps": "Unable to locate the '%s' [%s] area. The service containing that area may not be available in your region.",
- "NGCommon_DetectedNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable): %s",
- "NGCommon_DetectedNuGetVersion": "Detected NuGet version %s / %s",
- "NGCommon_IgnoringNuGetExtensionsPath": "Detected NuGet extensions loader path (NUGET_EXTENSIONS_PATH environment variable). Extensions are ignored when using the built-in NuGet client",
- "NGCommon_NoSourcesFoundInConfig": "No package sources were found in the NuGet.config file at %s",
- "NGCommon_NuGetConfigIsInvalid": "The NuGet.config at %s is invalid.",
- "NGCommon_NuGetConfigIsPackagesConfig": "Expected a NuGet.config file at %s, but its contents appear to be a packages.config. Check the settings for the %s task and confirm you selected NuGet.config rather than packages.config.",
- "NGCommon_RemovingSources": "Preparing to set credentials in NuGet.config",
- "NGCommon_SpsNotFound": "Unable to find the '%s' [%s] area. There may be a problem with your Team Foundation Server installation.",
- "NGCommon_UnabletoDetectNuGetVersion": "Unknown NuGet version selected.",
- "NGCommon_UnableToFindTool": "Unable to find tool %s",
- "Warning_SessionCreationFailed": "Could not create provenance session: %s",
- "Warning_UpdatingNuGetVersion": "Updating version of NuGet.exe to %s from %s. Behavior changes or breaking changes might occur as NuGet updates to a new version. If this is not desired, deselect the 'Check for Latest Version' option in the task.",
- "NetCore3Update": "Info: Azure Pipelines hosted agents have been updated to contain .Net Core 3.x SDK/Runtime along with 2.2 & 2.1. Unless you have locked down a SDK version for your project(s), 3.x SDK might be picked up which might have breaking behavior as compared to previous versions. \nSome commonly encountered changes are: \nIf you're using `Publish` command with -o or --Output argument, you will see that the output folder is now being created at root directory rather than Project File's directory. To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting"
- }
}
\ No newline at end of file
diff --git a/Tasks/DownloadGitHubNugetPackageV1/task.loc.json b/Tasks/DownloadGitHubNugetPackageV1/task.loc.json
index a522b2f15e06..18b31e4105ac 100644
--- a/Tasks/DownloadGitHubNugetPackageV1/task.loc.json
+++ b/Tasks/DownloadGitHubNugetPackageV1/task.loc.json
@@ -17,8 +17,8 @@
"demands": [],
"version": {
"Major": 1,
- "Minor": 246,
- "Patch": 2
+ "Minor": 250,
+ "Patch": 0
},
"minimumAgentVersion": "2.144.0",
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",
diff --git a/Tasks/FileTransformV2/task.json b/Tasks/FileTransformV2/task.json
index 052ce1937470..1602eb2c4516 100644
--- a/Tasks/FileTransformV2/task.json
+++ b/Tasks/FileTransformV2/task.json
@@ -1,120 +1,120 @@
{
- "id": "8ce97e91-56cc-4743-bfab-9a9315be5f27",
- "name": "FileTransform",
- "friendlyName": "File transform",
- "description": "Replace tokens with variable values in XML or JSON configuration files",
- "author": "Microsoft Corporation",
- "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/file-transform",
- "helpMarkDown": "File transformation and variable substitution task: Update tokens in your XML based configuration files and then replaces those tokens with variable values. Currently only XML, JSON file formats are supported for variable substitution. [Learn more about this task](https://aka.ms/AA5xp1v)",
- "category": "Utility",
- "visibility": [
- "Build",
- "Release"
- ],
- "runsOn": [
- "Agent",
- "DeploymentGroup"
- ],
- "version": {
- "Major": 2,
- "Minor": 248,
- "Patch": 0
- },
- "releaseNotes": "More optimized task fields that allow users to enable any/all of the transformation (XML), variable substitution (JSON and XML) features in a single task instance.Task fails when any of the configured transformation/substitution is NOT applied or when the task is no-op.",
- "instanceNameFormat": "File Transform: $(Package)",
- "groups": [
- {
- "name": "VariableSubstitution",
- "displayName": "Variable Substitution",
- "isExpanded": true
- }
- ],
- "inputs": [
- {
- "name": "folderPath",
- "type": "filePath",
- "label": "Package or folder",
- "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
- "required": true,
- "helpMarkDown": "File path to the package or a folder. Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip."
- },
- {
- "name": "enableXmlTransform",
- "type": "boolean",
- "label": "XML transformation",
- "required": false,
- "defaultValue": true,
- "helpMarkDown": "Config transforms will be run prior to the Variable Substitution. XML transformations are supported only for Windows platform."
- },
- {
- "name": "xmlTransformationRules",
- "type": "multiLine",
- "label": "XML Transformation rules",
- "defaultValue": "-transform **\\*.Release.config -xml **\\*.config",
- "required": false,
- "helpMarkDown": "Provide new line separated list of transformation file rules using the syntax: -transform -xml ",
- "visibleRule": "enableXmlTransform == true"
+ "id": "8ce97e91-56cc-4743-bfab-9a9315be5f27",
+ "name": "FileTransform",
+ "friendlyName": "File transform",
+ "description": "Replace tokens with variable values in XML or JSON configuration files",
+ "author": "Microsoft Corporation",
+ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/file-transform",
+ "helpMarkDown": "File transformation and variable substitution task: Update tokens in your XML based configuration files and then replaces those tokens with variable values. Currently only XML, JSON file formats are supported for variable substitution. [Learn more about this task](https://aka.ms/AA5xp1v)",
+ "category": "Utility",
+ "visibility": [
+ "Build",
+ "Release"
+ ],
+ "runsOn": [
+ "Agent",
+ "DeploymentGroup"
+ ],
+ "version": {
+ "Major": 2,
+ "Minor": 250,
+ "Patch": 0
},
- {
- "name": "jsonTargetFiles",
- "type": "multiLine",
- "label": "JSON target files",
- "required": false,
- "defaultValue": "",
- "groupName": "VariableSubstitution",
- "helpMarkDown": "Provide new line separated list of files to substitute the variable values. Files names are to be provided relative to the root folder.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build or release pipeline (or release pipeline's environment). { \"Data\": { \"DefaultConnection\": { \"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\" } } } Variable Substitution is run after configuration transforms. Note: Only custom variables defined in build/release pipelines are used in substitution. Default/system defined pipeline variables are excluded. Note: If same variables are defined in the release pipeline and in the stage, then the stage variables will supersede the release pipeline variables. "
- },
- {
- "name": "xmlTargetFiles",
- "type": "multiLine",
- "label": "XML target files",
- "required": false,
- "defaultValue": "",
- "groupName": "VariableSubstitution",
- "helpMarkDown": "Provide new line separated list of files to substitute the variable values. Files names are to be provided relative to the root folder. For XML, Variables defined in the build or release pipelines will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after configuration transforms. Note: Only custom variables defined in build/release pipelines are used in substitution. Default/system defined pipeline variables are excluded. Note: If same variables are defined in the release pipeline and in the stage, then the stage variables will supersede the release pipeline variables."
- }
- ],
- "execution": {
- "Node10": {
- "target": "filetransform.js",
- "argumentFormat": ""
+ "releaseNotes": "More optimized task fields that allow users to enable any/all of the transformation (XML), variable substitution (JSON and XML) features in a single task instance.Task fails when any of the configured transformation/substitution is NOT applied or when the task is no-op.",
+ "instanceNameFormat": "File Transform: $(Package)",
+ "groups": [
+ {
+ "name": "VariableSubstitution",
+ "displayName": "Variable Substitution",
+ "isExpanded": true
+ }
+ ],
+ "inputs": [
+ {
+ "name": "folderPath",
+ "type": "filePath",
+ "label": "Package or folder",
+ "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip",
+ "required": true,
+ "helpMarkDown": "File path to the package or a folder. Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported. For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip."
+ },
+ {
+ "name": "enableXmlTransform",
+ "type": "boolean",
+ "label": "XML transformation",
+ "required": false,
+ "defaultValue": true,
+ "helpMarkDown": "Config transforms will be run prior to the Variable Substitution. XML transformations are supported only for Windows platform."
+ },
+ {
+ "name": "xmlTransformationRules",
+ "type": "multiLine",
+ "label": "XML Transformation rules",
+ "defaultValue": "-transform **\\*.Release.config -xml **\\*.config",
+ "required": false,
+ "helpMarkDown": "Provide new line separated list of transformation file rules using the syntax: -transform -xml ",
+ "visibleRule": "enableXmlTransform == true"
+ },
+ {
+ "name": "jsonTargetFiles",
+ "type": "multiLine",
+ "label": "JSON target files",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "VariableSubstitution",
+ "helpMarkDown": "Provide new line separated list of files to substitute the variable values. Files names are to be provided relative to the root folder.
For example, to replace the value of ‘ConnectionString’ in the sample below, you need to define a variable as ‘Data.DefaultConnection.ConnectionString’ in the build or release pipeline (or release pipeline's environment). { \"Data\": { \"DefaultConnection\": { \"ConnectionString\": \"Server=(localdb)\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True\" } } } Variable Substitution is run after configuration transforms. Note: Only custom variables defined in build/release pipelines are used in substitution. Default/system defined pipeline variables are excluded. Note: If same variables are defined in the release pipeline and in the stage, then the stage variables will supersede the release pipeline variables. "
+ },
+ {
+ "name": "xmlTargetFiles",
+ "type": "multiLine",
+ "label": "XML target files",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "VariableSubstitution",
+ "helpMarkDown": "Provide new line separated list of files to substitute the variable values. Files names are to be provided relative to the root folder. For XML, Variables defined in the build or release pipelines will be matched against the 'key' or 'name' entries in the appSettings, applicationSettings, and connectionStrings sections of any config file and parameters.xml. Variable Substitution is run after configuration transforms. Note: Only custom variables defined in build/release pipelines are used in substitution. Default/system defined pipeline variables are excluded. Note: If same variables are defined in the release pipeline and in the stage, then the stage variables will supersede the release pipeline variables."
+ }
+ ],
+ "execution": {
+ "Node10": {
+ "target": "filetransform.js",
+ "argumentFormat": ""
+ },
+ "Node16": {
+ "target": "filetransform.js",
+ "argumentFormat": ""
+ }
},
- "Node16": {
- "target": "filetransform.js",
- "argumentFormat": ""
+ "messages": {
+ "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.",
+ "FailedToApplyJSONvariablesubstitution": "Failed to apply JSON variable substitution.",
+ "FailedToApplyJSONvariablesubstitutionReason1": "Failed to apply JSON variable substitution. Changes are already present in the package.",
+ "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.",
+ "FailedToApplyXMLvariablesubstitution": "Failed to apply XML variable substitution.",
+ "FailedToApplyXMLvariablesubstitutionReason1": "Failed to apply XML variable substitution. Changes are already present in the package.",
+ "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully",
+ "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.",
+ "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.",
+ "JSONParseError": "Unable to parse JSON file: %s. Error: %s",
+ "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.",
+ "FailedToApplySpecialTransformation": "Unable to apply transformation for the given package.",
+ "FailedToApplySpecialTransformationReason1": "Unable to apply transformation for the given package. Changes are already present in the package.",
+ "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.",
+ "MissingArgumentsforXMLTransformation": "Incomplete or missing arguments. Expected format -transform -xml