Sharp

Kompilieren, Verpacken und Hochladen

Mit Hilfe folgenden PowerShell-Skriptes kann ich nun den FBK kompilieren, verpacken und auf den Webspace hochladen. Leider gibt es in PowerShell keine funktionierende ZIP-Klasse, so dass ich hier auf 7-Zip zurückgreife:

msbuild FBK.sln /property:Configuration=Release

Remove-Item Deliverable -Force -Recurse
New-Item -type directory -f Deliverable

Copy-Item -Recurse FBK/src/bin/Release/ Deliverable/

& ‘C:/Program Files/7-Zip/7z.exe’ a Deliverable/Release.zip ./Deliverable/Release/

Write-Host "Benutzername: " -NoNewline
$user = Read-Host
Write-Host "Kennwort: " -NoNewline
$password = Read-Host
$currentDirectory = (Get-Item .).ToString()
$File = "$currentDirectory/Deliverable/Release.zip"
$ftp = "ftp://depon.net/htdocs/www.depon.net/downloads/fbk.zip"
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$password)

$uri = New-Object System.Uri($ftp)
"Uploading $File…"
$webclient.UploadFile($uri, $File)

Das Skript besteht im Prinzip aus vier Teilen:

  1. Mit Hilfe von msbuild wird die VisualStudio-Solution als Release kompiliert.
  2. Danach finden ein paar Umkopieraktionen statt
  3. Über das Kommandozeilen-Interface von 7-Zip wird das Release-Verzeichnis gezippt. Im späteren Schritt werde ich vermutlich auf die Ionic-Zip-Library zurückgreifen.
  4. Nach Abfrage der Kenndaten wird mit Hilfe der WebClient-Klasse das Zip auf den FTP-Webserver hochgeladen. Hier ist es auch schade, dass es kein PowerShell-Skript für den FTP-Upload gibt.

Mit einem Server-‘Gegenskript’ werde ich in Zukunft eine bestehende FBK-Instanz beenden, das ZIP-Archiv herunterladen, entpacken, an die richtige Stelle legen und das Spiel starten. Damit lassen sich die Deployment-Zeiten auf ein minimales Reduzieren.

image

Tags: , , ,

Eine Antwort zu “Kompilieren, Verpacken und Hochladen”

  1. MrMarco sagt:

    Hattest du nicht mal für ftp was gebastelt?

    Wie wäre es, wenn du das auf die Powershell portierst? :D

Hinterlasse eine Antwort