2016-10-13 4 views
0

Ich habe eine ASP.Net 4.5 MVC-Anwendung, die Angular 1.5 verwendet. Der JS-Code ist Typescript und eine Post-Build-Aktion erstellt den JS-Code und stellt ihn in den Ordner bereit, auf den sich meine Anwendung bezieht.Korrekte Bereitstellung Skript für Azure Git unterstützt kontinuierliche Bereitstellung

Ich habe einen Steckplatz auf meiner azurblauen Web-App, die meine gitlab Repo gesichert ist. Das Commit für den Repo löst die Bereitstellung aus, der Post-Deployment-Build scheint jedoch häufig Probleme zu haben, wenn eine bower/npm- oder typings-Bibliothek aktualisiert wird (was durch manuelles Löschen des Ordners über die Kudu-Konsole gelöst wird). Hat jemand ein Beispiel für ein deploy.cmd Skript haben, das tut das Äquivalent von

  • npm installieren
  • Typisierungen

an der richtigen Stelle in der Pipeline installiert werden, so dass die Dateien korrekt eingesetzt bekommen. Ich möchte mit einem neuen Slot scratchen, und um den vorhandenen Slot in der Vergangenheit arbeiten zu lassen, musste ich manuell Typings wie "npm install typings --global" installieren, damit der Build ohne Tippfehler funktioniert.

Fortschreibungsausgangs Below Ich vermute, dass die Fehler unter fällig sind Typoskript 1.6 Compiler über Referenzdateien Azure laufen die Typoskript brauchen> 1.6. Mein csproj hat <TypeScriptToolsVersion>2.0</TypeScriptToolsVersion> (ive meine Dateien aus dem Kompilierung Ausgang entfernt, aber die _all.d.ts Datei, die die fehlerbehaftete Dateien unter

CompileTypeScript: 
    D:\Program Files (x86)\Microsoft SDKs\TypeScript\1.6\tsc.exe --sourcemap --target ES5 --noEmitOnError "REMOVED MY TYPESCRIPTFILES" "D:\home\site\repository\mymvcproject\app\src\_all.d.ts" 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,32): error TS1110: Build: Type expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,50): error TS1005: Build: ']' expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,58): error TS1005: Build: ',' expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,59): error TS1136: Build: Property assignment expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1941,1): error TS1128: Build: Declaration or statement expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
Done Building Project "D:\home\site\repository\mymvcproject\mymvcproject.csproj" (Build;pipelinePreDeployCopyAllFilesToOneFolder target(s)) -- FAILED. 

FINAL UPDATE Nachdem das Typoskript Team erzeugt schließlich eine Version referenziert von Typoskript 2. *, die auf Azure installiert werden konnte, und dann entfaltet das Kudu-Team. es der ganze Prozess funktioniert jetzt! die Notiz von unten über

mit
"preinstall": "npm install typescript -g && npm install typings -g" 

der andere Teil der Lösung!

+0

Welche Probleme treten auf, wenn eine Bower/NPM- oder Typisierungsbibliothek aktualisiert wird? Könnten Sie bitte die Details zur fehlgeschlagenen Bereitstellung angeben? Sie können sich bei Azure Portal anmelden, Ihre Webanwendung auswählen, auf APP-BEREITSTELLUNG> Bereitstellungsoptionen klicken, auf die fehlgeschlagene Bereitstellung klicken und im Blatt mit den Bereitstellungsdetails auf den Link Protokoll anzeigen klicken. –

+0

Ich habe den Slot jetzt gelöscht und neu erstellt. Ich wollte idealerweise eine Vorlage, die mich nicht braucht, um manuell Befehle auszuführen, um sicherzustellen, dass zum Beispiel Typisierungen installiert sind. Ich werde die Nachrichten erhalten, wenn ich diese Fehler als nächstes erfahre. – Tim

+0

Vielleicht können diese Ihnen den Anfang machen? https://github.com/projectkudu/kudu/wiki/Post-Deployment-Action-Hooks https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script –

Antwort

2

Entsprechend Ihrer Anforderung können Sie die folgenden Schritte ausführen, um Ihren Zweck zu erreichen.

Erstellen eines Bereitstellungsskript

Sie zu KUDU Werkzeug melden Sie sich an konnte (https: //.scm.azurewebsites.net/), klicken Sie auf "Tool"> "Download Deployment-Skript". Außerdem könnten Sie azure-cli verwenden, um das Skript zu generieren. Weitere Informationen zum Generieren des Bereitstellungsskripts über azure-cli finden Sie unter tutorial.

die Bereitstellung von Skripts anpassen

Für NPM mit Ihren Pakete zu verwalten, können Sie die folgenden Skripts in Ihrer package.json Datei hinzufügen.

"scripts":{ 
    "preinstall": "npm install typescript -g && npm install typings -g" 
} 

Dann müssen Sie die folgenden Skripte in die deploy.cmd-Datei hinzuzufügen.

IF EXIST "%DEPLOYMENT_SOURCE%\package.json" (
    pushd "%DEPLOYMENT_SOURCE%" 
    echo installing npm package 
    call :ExecuteCmd npm install --production 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

Oder Sie könnten die folgenden Skripte installieren Typoskript und Typisierungen direkt über die Kommandozeile hinzufügen.

echo Installing typescript and typings 
call npm install typescript -g && npm install typings -g 
IF !ERRORLEVEL! NEQ 0 goto error 

Hinweis: Die .deployment müssen deploy.cmd Dateien im Stammverzeichnis Ihrer Lösung platziert werden. Sie können für Details auf dieses sample Projekt verweisen.

+0

Vielen Dank das ist wirklich hilfreich. Der Fehler, den ich zufällig erhalte, ist, dass Azure-Web-Apps zur Zeit keine Typoskript-2-Tools installiert haben. Es hört sich so an, als würde es bald etwas später kommen, https://github.com/projectkudu/kudu/issues/2156 – Tim

Verwandte Themen