{"id":29047852,"url":"https://github.com/benjaminmichaelis/trx-to-vsplaylist","last_synced_at":"2026-02-04T17:03:38.514Z","repository":{"id":299473891,"uuid":"1003128021","full_name":"BenjaminMichaelis/trx-to-vsplaylist","owner":"BenjaminMichaelis","description":"Get a playlist of your .net test results; plug and play","archived":false,"fork":false,"pushed_at":"2025-12-22T16:14:40.000Z","size":82,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-24T04:26:51.045Z","etag":null,"topics":["dotnet","dotnet-test","testing","trx","visual-studio"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BenjaminMichaelis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-16T17:04:03.000Z","updated_at":"2025-12-05T07:27:53.000Z","dependencies_parsed_at":"2025-06-16T19:33:53.764Z","dependency_job_id":"202044b5-4ca9-4472-835d-56d2927f4e09","html_url":"https://github.com/BenjaminMichaelis/trx-to-vsplaylist","commit_stats":null,"previous_names":["benjaminmichaelis/trx-to-vsplaylist"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/BenjaminMichaelis/trx-to-vsplaylist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminMichaelis%2Ftrx-to-vsplaylist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminMichaelis%2Ftrx-to-vsplaylist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminMichaelis%2Ftrx-to-vsplaylist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminMichaelis%2Ftrx-to-vsplaylist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BenjaminMichaelis","download_url":"https://codeload.github.com/BenjaminMichaelis/trx-to-vsplaylist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminMichaelis%2Ftrx-to-vsplaylist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29091317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dotnet","dotnet-test","testing","trx","visual-studio"],"created_at":"2025-06-26T17:07:04.770Z","updated_at":"2026-02-04T17:03:38.508Z","avatar_url":"https://github.com/BenjaminMichaelis.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# TRX to Playlist Converter Action\n\nA GitHub Action that converts [TRX (Visual Studio Test Results)](https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-extensions-test-reports?WT.mc_id=8B97120A00B57354) files to Visual Studio Test playlist files. This action uses the [`trx-to-vsplaylist`](https://www.nuget.org/packages/trx-to-vsplaylist) .NET global tool to perform the conversion and automatically uploads the generated playlist file as an artifact that can be easily downloaded from your GitHub Actions run.\n\n## Usage\n\n### Basic Usage\n\nConvert a single TRX file to a playlist:\n\n```yaml\n- name: Convert TRX to Playlist\n  uses: BenjaminMichaelis/trx-to-vsplaylist@v2\n  with:\n    trx-file-path: './TestResults/results.trx'\n```\n\n### Merge Multiple TRX Files (Default Behavior)\n\nMerge multiple TRX files into a single playlist (great for multi-framework projects):\n\n```yaml\n- name: Convert TRX to Playlist\n  uses: BenjaminMichaelis/trx-to-vsplaylist@v2\n  with:\n    trx-file-path: './TestResults/*.trx'  # Glob pattern for all TRX files\n    test-outcomes: 'Failed'\n```\n\n### Create Separate Playlists\n\nCreate individual playlists for each TRX file:\n\n```yaml\n- name: Convert TRX to Playlist\n  uses: BenjaminMichaelis/trx-to-vsplaylist@v2\n  with:\n    trx-file-path: './TestResults/*.trx'\n    output-directory: './playlists'\n    separate: true  # Creates one playlist per TRX file\n    test-outcomes: 'Failed,NotExecuted'\n```\n\n### Complete Workflow Example\n\nExample for a multi-framework project that generates separate TRX files:\n\n```yaml\nname: Test and Generate Playlists\n\non: [push, pull_request]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    \n    steps:\n    - uses: actions/checkout@v4\n    \n    - name: Setup .NET\n      uses: actions/setup-dotnet@v4\n      with:\n        dotnet-version: '10.x'\n    \n    - name: Run Tests\n      run: |\n        dotnet test --logger trx --results-directory ./TestResults\n    \n    # Merge all TRX files into a single playlist of failed tests\n    - name: Create Merged Failure Playlist\n      if: always() # Run even if tests fail\n      uses: BenjaminMichaelis/trx-to-vsplaylist@v2\n      with:\n        trx-file-path: './TestResults/*.trx'\n        test-outcomes: 'Failed'\n        artifact-name: 'merged-failures'\n    \n    # Create separate playlists for each TRX file\n    - name: Create Individual Playlists  \n      if: always()\n      uses: BenjaminMichaelis/trx-to-vsplaylist@v2\n      with:\n        trx-file-path: './TestResults/*.trx'\n        output-directory: './individual-playlists'\n        separate: true\n        test-outcomes: 'NotExecuted'\n        artifact-name: 'individual-playlists'\n    \n    # Both merged and individual playlists will be uploaded as separate artifacts\n```\n\n## Inputs\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `trx-file-path` | Path or glob pattern to the TRX file(s) to convert. Supports wildcards like `*.trx` or `**/TestResults/*.trx`. Multiple files will be merged by default. | Yes | - |\n| `output-directory` | Directory to write the output playlist file(s) to. If not specified, saves in the same directory as the first TRX file. | No | - |\n| `test-outcomes` | Test outcomes to include in the playlist (comma-separated). Accepts: Passed, Failed, NotExecuted, Inconclusive, Timeout, Pending | No | `Failed` |\n| `artifact-name` | Name for the uploaded artifact. If not specified, defaults to appropriate name based on mode. | No | `test-playlists` |\n| `skip-empty` | Skip writing out empty playlist files. If true, empty playlists will not be created. | No | `true` |\n| `separate` | When multiple TRX files are found, create separate playlist files for each instead of merging into one. Output directory must be specified when this is true. | No | `false` |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `playlist-path` | Path to the generated playlist file (when using merge mode with single output) |\n| `playlist-paths` | Colon-separated list of paths to generated playlist files (when using separate mode) |\n| `artifact-dir` | Directory containing the generated playlist file(s) |\n\n## Test Outcomes\n\nThe following test outcomes can be specified in the `test-outcomes` input:\n\n- Passed\n- Failed\n- NotExecuted\n- Inconclusive\n- Timeout\n- Pending\n\nYou can specify multiple outcomes by separating them with commas: `Failed,NotExecuted,Timeout`\n\n## Artifact Download\n\nThe generated playlist file is automatically uploaded as a workload artifact.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Support\n\nIf you encounter any issues or have questions, please open an issue on the GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenjaminmichaelis%2Ftrx-to-vsplaylist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenjaminmichaelis%2Ftrx-to-vsplaylist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenjaminmichaelis%2Ftrx-to-vsplaylist/lists"}