{"id":15409275,"url":"https://github.com/pascalberger/cake.buns.reportportal","last_synced_at":"2026-01-26T18:52:10.299Z","repository":{"id":87857442,"uuid":"321778975","full_name":"pascalberger/Cake.Buns.ReportPortal","owner":"pascalberger","description":"Library for cleaning and merging ReportPortal launches in cake build script.","archived":false,"fork":false,"pushed_at":"2020-12-15T20:17:46.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T08:26:45.566Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pascalberger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-15T20:16:19.000Z","updated_at":"2021-04-06T16:09:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"0782eb30-0535-4abb-b261-a38302c4ad76","html_url":"https://github.com/pascalberger/Cake.Buns.ReportPortal","commit_stats":{"total_commits":7,"total_committers":3,"mean_commits":"2.3333333333333335","dds":0.4285714285714286,"last_synced_commit":"8777d41c2ddb0928a5748620f23507f40522b7c9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalberger%2FCake.Buns.ReportPortal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalberger%2FCake.Buns.ReportPortal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalberger%2FCake.Buns.ReportPortal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalberger%2FCake.Buns.ReportPortal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pascalberger","download_url":"https://codeload.github.com/pascalberger/Cake.Buns.ReportPortal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239964553,"owners_count":19725952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T16:38:57.616Z","updated_at":"2026-01-26T18:52:05.265Z","avatar_url":"https://github.com/pascalberger.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Installation\n[![NuGet version](https://badge.fury.io/nu/Cake.Buns.ReportPortal.svg)](https://badge.fury.io/nu/Cake.Buns.ReportPortal)\n\nImport **Cake.Buns.ReportPortal** NuGet package into your script for cleaning or/and merging ReportPortal launches.\n\n# Usage example\n\n```cake\n#tool nuget:?package=NUnit.ConsoleRunner\u0026version=3.9.0\n\n//for using JSON in script\n#addin nuget:?package=Cake.Json\n#addin nuget:?package=Newtonsoft.Json\u0026version=9.0.1\n\n//for running NUnit tests in script\n#addin nuget:?package=Cake.SoftNUnit3\n\n//for cleaning and merging ReportPortal launches\n#addin nuget:?package=Cake.Buns.ReportPortal\n#addin nuget:?package=Buns.ReportPortal\u0026loaddependencies=true\n\n//////////////////////////////////////////////////////////////////////\n// ARGUMENTS\n//////////////////////////////////////////////////////////////////////\n\nvar target = Argument(\"target\", \"Default\");\nvar configuration = Argument(\"configuration\", \"Release\");\n\nvar launchName = Argument(\"launch\", \"Daily\");\nvar launchDescription = Argument\u003cstring\u003e(\"description\", \"Daily run\");\n\nvar rerunCount = Argument\u003cint\u003e(\"rerunCount\", 1);\n\nvar filter = Argument\u003cstring\u003e(\"filter\", null);\nvar workers = Argument\u003cint\u003e(\"workers\", 12);\n\nvar landscape = Argument\u003cstring\u003e(\"landscape\", null);\n\nlong startedAt = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds;\nNUnit3Settings nunitSettings = new NUnit3Settings { NoResults = false, Workers = workers, Where = filter };\n\nService service = null;\nFilterOption filterOption = null;\n\nCleanOptions cleanOptions = new CleanOptions(removeSkipped:true);\nMergeOptions mergeOptions = MergeOptions.Default;\n\nbool debugMode = false;\n//////////////////////////////////////////////////////////////////////\n// PREPARATION\n//////////////////////////////////////////////////////////////////////\n\n// Define directories.\nvar buildDir = Directory(\"./pathToBinFolder\") + Directory(configuration);\n\n//////////////////////////////////////////////////////////////////////\n// TASKS\n//////////////////////////////////////////////////////////////////////\n\nTask(\"Clean\")\n    .Does(() =\u003e\n    {\n        CleanDirectory(buildDir);\n    });\n\nTask(\"Restore-NuGet-Packages\")\n    .IsDependentOn(\"Clean\")\n    .Does(() =\u003e\n    {\n        NuGetRestore(\"./pathToSln\");\n    });\n\nTask(\"Build\")\n    .IsDependentOn(\"Restore-NuGet-Packages\")\n    .Does(() =\u003e\n    { \n        MSBuild(\"./pathToSln\", settings =\u003e settings.SetConfiguration(configuration));\n    });\n\nTask(\"Connect-Report-Portal\")\n    .IsDependentOn(\"Build\")\n    .Does(() =\u003e\n    {\n        var addinsText = \"../../../pathToBinFolder/\" + configuration + \"/ReportPortal.NUnitExtension.dll\";\n        System.IO.File.WriteAllText(\"tools/nunit.consolerunner.3.9.0/tools/ReportPortal.addins\", addinsText);\n    });\n\n\nTask(\"Turn-up-ReportPortal-Configuration\")\n    .IsDependentOn(\"Connect-Report-Portal\")\n    .Does(() =\u003e\n    {\n        var pathToReportPortalConfig = FilePath.FromString($\"{buildDir}/ReportPortal.config.json\");\n        var config = ParseJsonFromFile(pathToReportPortalConfig);\n\n        config[\"launch\"][\"name\"] = launchName ?? config[\"launch\"].Value\u003cstring\u003e(\"name\");\n        config[\"launch\"][\"description\"] = launchDescription ?? config[\"launch\"].Value\u003cstring\u003e(\"description\");\n\n        var url = new Uri(config[\"server\"].Value\u003cstring\u003e(\"url\"));\n        var name = config[\"launch\"].Value\u003cstring\u003e(\"name\");\n\n        var project = config[\"server\"].Value\u003cstring\u003e(\"project\");\n        var password = config[\"server\"][\"authentication\"].Value\u003cstring\u003e(\"uuid\");\n\n        debugMode = config[\"launch\"].Value\u003cbool\u003e(\"debugMode\");\n        service = new Service(url, project, password);\n\n        filterOption = new FilterOption\n        {\n           Filters = new List\u003cFilter\u003e\n    \t     {\n              new Filter(FilterOperation.Equals, \"name\", name),\n              new Filter(FilterOperation.GreaterThanOrEquals, \"start_time\", startedAt)\n           },\n           Paging = new Paging(1, short.MaxValue)\n        };\n        \n        System.IO.File.WriteAllText(pathToReportPortalConfig.FullPath, config.ToString());\n    });\n\nTask(\"Run-Automation-Tests\")\n    .IsDependentOn(\"Turn-up-ReportPortal-Configuration\")\n    .Does(() =\u003e\n    {   \n        SoftNUnit3($\"{buildDir}/Example.Test.dll\", nunitSettings);\n    });\n\nTask(\"Rerun-Automation-Tests\")\n    .IsDependentOn(\"Run-Automation-Tests\")\n    .Does(async () =\u003e\n    {\n        var resultPaths = nunitSettings.Results?.Count != 0\n            ? nunitSettings.Results.Select(r =\u003e r.FileName)\n            : new[] { FilePath.FromString(\"TestResult.xml\") };\n\n        for (int i = 0; i \u003c rerunCount; i++)\n        {\n            var failed = GetNUnit3NonPassedTests(resultPaths);\n\n            if(failed.Count().Equals(0))\n            {\n                break;\n            }\n\n            var testList = CreateFile($\"rerun{i}.txt\");\n            System.IO.File.WriteAllLines(testList.FullPath, failed);\n\n            nunitSettings.TestList = testList;\n            nunitSettings.Where = null;\n\n            SoftNUnit3($\"{buildDir}/Example.Test.dll\", nunitSettings);\n            var launch = await SmartMergeLaunchesAsync(service, filterOption, cleanOptions, mergeOptions, debugMode);\n        }\n    });\n\nTask(\"Default\")\n    .IsDependentOn(\"Rerun-Automation-Tests\");\n\nRunTarget(target);\n```\n\nSee [that](https://github.com/OlegYanushkevich/ReportPortal.Customization/blob/master/README.md) for learning merging and cleaning. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalberger%2Fcake.buns.reportportal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpascalberger%2Fcake.buns.reportportal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalberger%2Fcake.buns.reportportal/lists"}