public void PutArtifact(ArtifactInfo info, Stream stream) { string artifactDir = baseDir + "/artifacts/" + }
static WebArtifactInfo ProcessArtifactInfo(string runId, string testKey, int artifactIndex, ArtifactInfo ai) { return(new WebArtifactInfo(ai, streams.GetArtifactUrl(runId, testKey, artifactIndex))); }
private async Task ReadArtifact(IAsyncStreamReader <BuildStatusUpdate> requestStream, IServerStreamWriter <RunBuildCommand> responseStream, IJobStatusUpdatable jobStatus, ArtifactInfo artifact, CancellationToken cancellationToken) { var artifactName = artifact.Name; if (artifactName == null || !PathUtil.IsValidSubPath(artifactName) || string.IsNullOrEmpty(artifactName)) { throw new Exception("Invalid path name."); } await responseStream.WriteAsync(new RunBuildCommand { Artifact = new ArtifactRequest { Artifact = artifact, }, }); var path = Path.Combine(jobStatus.ArtifactDir, artifactName); Directory.CreateDirectory(Path.GetDirectoryName(path)); await using var fileStream = File.Create(path); await ReadArtifactContent(requestStream, fileStream, cancellationToken); }
public WebArtifactInfo(ArtifactInfo ai, string url) : base(ai) { this.DownloadUrl = url; }