Hallo Community,
ich habe einen TFS 2017, auf welchem ich gerne folgendes erreichen möchte:
Schritt 1: Download der Artefakte des letzten Build und Kopieren auf FileShare
Schritt 2: Download und kopieren der ReleaseDateien auf NetzwerkRechner
Schritt 1 klappt.
Schritt 2 nicht.
Die Konfiguration:
1 Artefakt meines Builds.
1 Umgebung für den Schritt "Publish Build Artifacts"
1 Umgebung für den Schritt "Copy Files"
Die Fehlermeldung:
2018-09-06T13:02:10.3040280Z Artifact Type: FileShare
2018-09-06T13:02:10.3097124Z ##> Fehlermeldung:
Downloading artifacts failed: System.UriFormatException: Invalid URI: The format of the URI could not be determined.
Ich bekomme es nicht hin, ein Artefakt 2 mal zu kopieren.
Hat jemand von euch soetwas schonmal gehabt?
Naja.. der Fehler sagt aus, dass die URI invalide ist.
Hat ja mit dem Kopieren selbst nichts zutun.
Wird also einfach ne ungültige URI in Deinem Schritt 2 sein.
Prinzipiell ist mir aber nicht 100% klar, was Du machen willst.
Publish Build Artifacts sollte prinzipiell immer der letzte Task sein.
Willst Du die Artifacts anschließend irgendwo zur Verfügung stellen, dann sollte das über ein Release erfolgen und nicht über den Build.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt,
das merkwürdige ist eigentlich,
das das 2 mal exact die gleiche Phase ist. Nur 2 Verschiedene Ordner auf den Fileshares.
Drehe ich die Reihenfolge um, schlägt das Publish Artifacts fehl.
Edit sagt:
Ich möchte ein Successfull Build(Compile, UnitTest etc), genauer die Releasedateien, auf 4 unterschiedliche Rechner kopieren, dabei aber 4 Umgebungen deffinieren.
Zeig ma Inhalte
Ich möchte ein Successfull Build(Compile, UnitTest etc), genauer die Releasedateien, auf 4 unterschiedliche Rechner kopieren, dabei aber 4 Umgebungen deffinieren.
Dazu würde man ein Release mit entsprechend vier Environments (jeweils ein Task) definieren.
Wenn Du nur ein Release definierst, in dem alle Environments mit vier Tasks stecken, dann hast Du das Problem, dass das nicht sauber erweiterbar ist bzw. ein Fehlschlag eines Environments alle vier in Mitleidenschaft zieht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ergänzend sei gesagt, das ich - sofern ich 2 mal hintereinander das Release triggere - auch nur auf 1 Umgebung diesen Fehler erhalte.
Fehlermeldung:
2018-09-12T06:17:58.6837939Z Download complete.
2018-09-12T06:17:58.6838207Z 355 placed file(s): 353 downloaded, 2 empty
2018-09-12T06:17:58.6838550Z 82 MB downloaded at 8295 KB/sec. Download time: 00:00:10.0129106.
2018-09-12T06:17:58.6838707Z Preparing to download artifact: SequenceGenerator
2018-09-12T06:17:58.6838817Z Artifact Type: FileShare
2018-09-12T06:17:58.6858805Z An error occurred during download: System.UriFormatException: Invalid URI: The format of the URI could not be determined.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString)
at Microsoft.VisualStudio.Services.Agent.Worker.Release.Artifacts.BuildArtifact.<DownloadArtifactAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.Worker.Release.Artifacts.BuildArtifact.<DownloadAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.<>c__DisplayClass39_2.<<DownloadArtifacts>b__2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.Worker.Release.RetryExecutor.<ExecuteAsync>d__20.MoveNext()
Habe die (Für mich ausreichende Lösung) nun gefunden.
Für jede Umgebung habe ich ein eigenes Artifact erstellt.
Nun funktioniert das MultiRelease.
Danke Abt für deine zeit und Mühe.
was bedeutet, dass Du alles neu bauen musst, wenn Du eine andere Umgebung hast.
Das ist nicht Sinn der Sache.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Stimmt. Aber anders habe ich es nicht gelöst bekommen.
Vielleicht nutze ich auch die falschen Module?
Ich erklär es Dir gerne nochmal:
Artifacts sollten stets Teil des Buildresultates sein.
Warum Du an dieser Stelle hier bereits ein Upload auf ein File Share Packen willst: no idea.
Korrekt würde es folgendermaßen aussehen:
Der Task Publish Build Artifact sollte nicht für nen Datei-Copy missbraucht werden.
Dazu ist er nicht da.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code