Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AzureIoTEdgeV2] Update to Node 16 #18557

Merged
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Place files overridden for this config in this directory
660 changes: 660 additions & 0 deletions Tasks/AzureIoTEdgeV2/_buildConfigs/Node16/package-lock.json

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions Tasks/AzureIoTEdgeV2/_buildConfigs/Node16/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "azure-iot-edge-vsts-extension-task",
"version": "1.1.2",
"dependencies": {
"@types/mocha": "^5.2.7",
"@types/node": "^16.11.39",
"@types/q": "^1.5.4",
"applicationinsights": "^1.0.2",
"azure-pipelines-task-lib": "^4.4.0",
"azure-pipelines-tasks-utility-common": "^3.210.0",
"minimatch": "^3.1.2"
},
"devDependencies": {
"typescript": "4.0.2"
}
}
4 changes: 4 additions & 0 deletions Tasks/AzureIoTEdgeV2/deployimage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,11 @@ export async function run(telemetryEvent: TelemetryEvent) {
for (let path of findPaths) {
console.log(tl.loc('CheckValidJson', path));
try {
#if NODE16
aleksandrlevochkin marked this conversation as resolved.
Show resolved Hide resolved
deploymentJson = JSON.parse(fs.readFileSync(path, Constants.UTF8 as BufferEncoding));
#else
deploymentJson = JSON.parse(fs.readFileSync(path, Constants.UTF8));
#endif
} catch (e) {
console.log(tl.loc('Invalid'));
continue;
Expand Down
3 changes: 2 additions & 1 deletion Tasks/AzureIoTEdgeV2/make.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"rm": [
{
"items": [
"node_modules/azure-pipelines-tasks-utility-common/node_modules/azure-pipelines-task-lib"
"node_modules/azure-pipelines-tasks-utility-common/node_modules/azure-pipelines-task-lib",
"node_modules/azure-pipelines-tool-lib/node_modules/azure-pipelines-task-lib"
],
"options": "-Rf"
}
Expand Down
7 changes: 6 additions & 1 deletion Tasks/AzureIoTEdgeV2/pushimage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,12 @@ export async function run() {
tl.debug(`The generated deployment file can't be found in the path: ${outputDeploymentJsonPath}`);
} else {
console.log(tl.loc('DeploymentFilePath', outputDeploymentJsonPath));
let deploymentJson = JSON.parse(fs.readFileSync(outputDeploymentJsonPath, Constants.UTF8));
let deploymentJson = null;
#if NODE16
deploymentJson = JSON.parse(fs.readFileSync(outputDeploymentJsonPath, Constants.UTF8 as BufferEncoding));
#else
deploymentJson = JSON.parse(fs.readFileSync(outputDeploymentJsonPath, Constants.UTF8));
#endif
// Expand docker credentials
// Will replace the registryCredentials if the server match
if (dockerCredentials != undefined && util.getModulesContent(deploymentJson)['$edgeAgent']['properties.desired'].runtime.settings.registryCredentials != undefined) {
Expand Down
578 changes: 289 additions & 289 deletions Tasks/AzureIoTEdgeV2/task.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions Tasks/AzureIoTEdgeV2/task.loc.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
"author": "Microsoft Corporation",
"version": {
"Major": 2,
"Minor": 222,
"Patch": 0
"Minor": 225,
"Patch": 1
},
"preview": false,
"showEnvironmentVariables": true,
Expand Down
2 changes: 2 additions & 0 deletions _generated/AzureIoTEdgeV2.versionmap.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Default|2.225.1
Node16-219|2.225.0
9 changes: 9 additions & 0 deletions _generated/AzureIoTEdgeV2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Azure IoT Edge task for Azure Pipelines
## Overview
This task is used to build, push IoT Edge modules and deploy IoT Edge solutions.
## Usage
Please refer this document for detailed guide: [Continuous integration and continuous deployment to Azure IoT Edge](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-continuous-integration-continuous-deployment)
## Report an issue
Please follow the new issue template in this repository to create a new issue for this task.
## Data/Telemetry
Azure IoT Edge task for Azure Pipelines collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkID=620956) to learn more. If you don’t wish to send usage data to Microsoft, you can change your telemetry settings by setting variable DISABLE_TELEMETRY to true.
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
"loc.friendlyName": "Azure IoT Edge",
"loc.helpMarkDown": "Besuchen Sie die [Dokumentation](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-continuous-integration-continuous-deployment), um Hilfe zu erhalten.",
"loc.description": "Azure IoT Edge-Image erstellen und bereitstellen",
"loc.instanceNameFormat": "Azure IoT Edge – $(action)",
"loc.group.displayName.advanced_push": "Erweitert",
"loc.group.displayName.advanced_deploy": "Erweitert",
"loc.input.label.action": "Aktion",
"loc.input.help.action": "Wählen Sie eine Azure IoT Edge-Aktion aus.\n Über **Modulimages erstellen** werden nur Module erstellt (Sie können diese Option zum Überprüfen auf Kompilierungsfehler verwenden).\n Mit **Modulimages mithilfe von Push übertragen** werden Module mithilfe von Push in die Containerregistrierung übertragen.\n Über **Auf IoT Edge-Geräten bereitstellen** wird die generierte Bereitstellungsdatei in IoT Hub bereitgestellt. (Es wird empfohlen, die Aufgabe **Bereitstellen** in der Releasepipeline zu platzieren.)",
"loc.input.label.deploymentFilePath": "Bereitstellungsdatei",
"loc.input.help.deploymentFilePath": "Wählen Sie die JSON-Bereitstellungsdatei aus.\n Wenn diese Aufgabe in **Releasepipeline** enthalten ist, müssen Sie den Speicherort der Bereitstellungsdatei im Artefakt festlegen. (Der Standardwert funktioniert für die meisten Bedingungen).\n Wenn diese Aufgabe in **Buildpipeline** vorhanden ist, müssen Sie sie auf den Pfad in **Pfad der Ausgabebereitstellungsdatei** festlegen.",
"loc.input.label.connectedServiceNameARM": "Azure-Abonnement enthält IoT-Hub",
"loc.input.help.connectedServiceNameARM": "Wählen Sie ein **Azure-Abonnement** aus, das einen IoT-Hub enthält.",
"loc.input.label.iothubname": "Name des IoT-Hubs",
"loc.input.help.iothubname": "Wählen Sie den **IoT-Hub** aus.",
"loc.input.label.deploymentid": "ID der IoT Edge-Bereitstellung",
"loc.input.help.deploymentid": "Geben Sie die **ID der IoT Edge-Bereitstellung** ein. Ist eine ID vorhanden, wird sie überschrieben.\n Bis zu 128 Kleinbuchstaben, Ziffern und die folgenden Zeichen sind zulässig: [ -:+%_#*?!(),=@;' ].\n Erfahren Sie mehr über die [Azure IoT Edge-Bereitstellung](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment).",
"loc.input.label.priority": "Priorität für IoT Edge-Bereitstellung",
"loc.input.help.priority": "Legen Sie die **Priorität** auf eine positive Ganzzahl fest, um Bereitstellungskonflikte zu lösen: Wenn für mehrere Bereitstellungen dasselbe Gerät als Ziel konfiguriert ist, verwendet das Gerät die Bereitstellung mit der höchsten Priorität oder (im Falle von zwei Bereitstellungen mit derselben Priorität) dem späteren Erstellungszeitpunkt.\n Erfahren Sie mehr über die [Azure IoT Edge-Bereitstellung](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment).",
"loc.input.label.deviceOption": "Einzelgerät/mehrere Geräte auswählen",
"loc.input.help.deviceOption": "Wählen Sie diese Option aus, um eine Bereitstellung (nach Tags) auf einem oder mehreren Geräten durchzuführen.",
"loc.input.label.deviceId": "ID des IoT Edge-Geräts",
"loc.input.help.deviceId": "Geben Sie die **Geräte-ID** für IoT Edge ein.",
"loc.input.label.targetcondition": "Zielbedingung für IoT Edge-Gerät",
"loc.input.help.targetcondition": "Geben Sie die **Zielbedingung** für Geräte ein, die Sie bereitstellen möchten. Verwenden Sie keine doppelten Anführungszeichen. Beispiel: **tags.building=9 and tags.environment='test'**.\n Erfahren Sie mehr über die [Azure IoT Edge-Bereitstellung](https://docs.microsoft.com/azure/iot-edge/how-to-deploy-monitor#monitor-a-deployment).",
"loc.input.label.containerregistrytype": "Containerregistrierungstyp",
"loc.input.help.containerregistrytype": "Wählen Sie einen **Containerregistrierungstyp** aus.\n **Azure Container Registry** für ACR und **Generische Containerregistrierung** für generische Registrierungen einschließlich Docker Hub.",
"loc.input.label.dockerRegistryEndpoint": "Docker-Registrierungsverbindung",
"loc.input.help.dockerRegistryEndpoint": "Wählen Sie eine generische **Verbindung mit Docker-Registrierung** aus. Erforderlich für **Erstellen und mithilfe von Push übertragen**.",
"loc.input.label.azureSubscriptionEndpoint": "Azure-Abonnement",
"loc.input.help.azureSubscriptionEndpoint": "Wählen Sie ein Azure-Abonnement aus.",
"loc.input.label.azureContainerRegistry": "Azure Container Registry",
"loc.input.help.azureContainerRegistry": "Wählen Sie eine Azure Container Registry-Instanz aus.",
"loc.input.label.templateFilePath": ".template.json-Datei",
"loc.input.help.templateFilePath": "Der Pfad der Azure IoT Edge-Projektmappe **.template.json**. Diese Datei definiert die Module und Routen in der Azure IoT Edge-Projektmappe, der Dateiname muss auf **.template.json** enden.",
"loc.input.label.defaultPlatform": "Standardplattform",
"loc.input.help.defaultPlatform": "In Ihrer **.template.json** müssen Sie keine Modulplattform angeben. Für diese Module wird die **Standardplattform** verwendet.",
"loc.input.label.fillRegistryCredential": "Registrierungsanmeldeinformationen zum Bereitstellungsmanifest hinzufügen",
"loc.input.help.fillRegistryCredential": "Fügen Sie Registrierungsanmeldeinformationen hinzu, um mithilfe von Push Docker-Images in das Bereitstellungsmanifest zu übertragen.",
"loc.input.label.deploymentManifestOutputPath": "Ausgabepfad",
"loc.input.help.deploymentManifestOutputPath": "Der Ausgabepfad des generierten Bereitstellungsmanifests.",
"loc.input.label.validateGeneratedDeploymentManifest": "Schema des generierten Bereitstellungsmanifests validieren",
"loc.input.help.validateGeneratedDeploymentManifest": "Schritt als fehlerhaft markieren, wenn das generierte Bereitstellungsmanifest nicht die Schemavalidierung besteht. Sie können im [JSON Schema Store](http://schemastore.org/json/) nach \"Azure IoT Edge-Bereitstellung\" suchen, um das aktuelle Schema zu finden.",
"loc.input.label.bypassModules": "Module für Umgehung",
"loc.input.help.bypassModules": "Wählen Sie die Module aus, die Sie **NICHT** zum Erstellen (oder zur Übertragung mithilfe von Push) in der .template.json-Datei benötigen, geben Sie Modulnamen an, und trennen Sie diese durch Kommas.\n Beispiel: Wenn Sie über 2 Module **SampleModule1,SampleModule2** in Ihrer .template.json-Datei verfügen und nur **SampleModule1\" erstellen oder mithilfe von Push übertragen möchten, dann legen Sie die zu umgehenden Module auf **SampleModule2** fest. Lassen Sie diese Einstellung leer, wenn Sie alle Module in der .template.json-Datei erstellen möchten.",
"loc.messages.BuildingModules": "Modulimages werden erstellt...",
"loc.messages.BuildingModulesFinished": "Die Erstellung der Modulimages wurde abgeschlossen.",
"loc.messages.PushingModules": "Modulimages werden mithilfe von Push übertragen...",
"loc.messages.PushingModulesFinished": "Der Vorgang zum Übertragen der Modulimages mithilfe von Push wurde abgeschlossen.",
"loc.messages.StartDeploy": "Bereitstellung starten...",
"loc.messages.FinishDeploy": "Bereitstellung abgeschlossen",
"loc.messages.DeploymentFilePath": "Die generierte Bereitstellungsdatei befindet sich im Pfad \"%s\".",
"loc.messages.ExpandingRegistryCredentials": "Die Registrierungsanmeldeinformationen in der Bereitstellungsdatei werden erweitert...",
"loc.messages.ReplaceCredential": "Anmeldeinformationen ersetzen: %s",
"loc.messages.DeployTaskRunningInBuild": "Wird die Bereitstellungsaufgabe in der Buildpipeline ausgeführt? %s",
"loc.messages.CheckValidJson": "Es wird überprüft, ob die folgende Datei eine gültige JSON-Datei ist: %s",
"loc.messages.Invalid": "Ungültig",
"loc.messages.Valid": "Gültig",
"loc.messages.NomralizedDeployementId": "ID der normalisierten Bereitstellung: %s",
"loc.messages.DependencyAlreadyInstalled": "%s ist bereits mit Version %s installiert.",
"loc.messages.DependencyInstallSuccess": "%s wurde mit folgender Version erstellt: %s",
"loc.messages.DependencyInstallFail": "Fehler bei der %s-Installation, siehe ausführliche Fehlerinformationen im Debugmodus.",
"loc.messages.TemplateFileInvalid": "Der Pfad der Vorlagendatei ist ungültig: %s",
"loc.messages.InvalidContainerRegistry": "Fehler beim Abrufen des Authentifizierungstokens für die Containerregistrierung. Überprüfen Sie die Einstellung für die Containerregistrierung in der Buildaufgabe. Der Benutzername für die Containerregistrierung lautet \"%s\".",
"loc.messages.DeploymentFileNotFound": "Die Bereitstellungsdatei wurde nicht gefunden. Stellen Sie sicher, dass der Pfad der Bereitstellungsdatei ordnungsgemäß in der Aufgabe festgelegt ist.",
"loc.messages.ValidDeploymentFileNotFound": "Es wurde keine gültige Bereitstellungsdatei gefunden. Stellen Sie sicher, dass der Pfad der Bereitstellungsdatei ordnungsgemäß in der Aufgabe festgelegt ist.",
"loc.messages.AzureSdkNotFound": "Azure SDK nicht gefunden.",
"loc.messages.RootPathNotExist": "Der Stammpfad \"%s\" ist nicht vorhanden.",
"loc.messages.SkipModuleImageValidation": "SKIP_MODULE_IMAGE_VALIDATION ist auf TRUE festgelegt, die Überprüfung des Modulimages wird übersprungen.",
"loc.messages.InvalidRegistryCredentialWarning": "Fehler bei der Anmeldung von \"%s\" mit den angegebenen Anmeldeinformationen. %s",
"loc.messages.CheckModuleImageExistenceError": "\"%s\" ist nicht vorhanden, oder die Anmeldeinformationen sind nicht ordnungsgemäß festgelegt. Fehler: %s",
"loc.messages.StartGenerateDeploymentManifest": "Generieren des Bereitstellungsmanifests starten...",
"loc.messages.FinishGenerateDeploymentManifest": "Der Generierungsvorgang für das Bereitstellungsmanifest wurde abgeschlossen.",
"loc.messages.LoginRegistrySucess": "Die Anmeldung bei Registrierung \"%s\" war erfolgreich.",
"loc.messages.SkipSettingEnvironmentVariableForSecret": "Die Umgebungsvariable \"%s\" ist bereits vorhanden. Die Festlegung der Umgebungsvariable für Geheimnis wird übersprungen: %s."
}
Loading