{"id":25399127,"url":"https://github.com/remarkablemark/find-and-split","last_synced_at":"2026-04-18T10:33:21.625Z","repository":{"id":277089377,"uuid":"931299697","full_name":"remarkablemark/find-and-split","owner":"remarkablemark","description":"✂️ GitHub Action that finds and splits files.","archived":false,"fork":false,"pushed_at":"2025-02-28T05:53:48.000Z","size":63,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T23:16:57.006Z","etag":null,"topics":["actions","composite","files","find","github","github-actions","shard","split"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/find-and-split","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/remarkablemark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["remarkablemark"],"patreon":"remarkablemark","open_collective":null,"ko_fi":"remarkablemark","tidelift":null,"community_bridge":null,"liberapay":"remarkablemark","issuehunt":null,"otechie":null,"custom":["https://b.remarkabl.org/teespring"]}},"created_at":"2025-02-12T03:28:45.000Z","updated_at":"2025-02-28T05:53:48.000Z","dependencies_parsed_at":"2025-02-15T23:30:20.300Z","dependency_job_id":null,"html_url":"https://github.com/remarkablemark/find-and-split","commit_stats":null,"previous_names":["remarkablemark/split-files","remarkablemark/find-and-split"],"tags_count":4,"template":false,"template_full_name":"remarkablemark/github-actions-composite-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Ffind-and-split","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Ffind-and-split/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Ffind-and-split/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remarkablemark%2Ffind-and-split/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remarkablemark","download_url":"https://codeload.github.com/remarkablemark/find-and-split/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248412093,"owners_count":21099048,"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":["actions","composite","files","find","github","github-actions","shard","split"],"created_at":"2025-02-15T23:29:14.828Z","updated_at":"2026-04-18T10:33:16.587Z","avatar_url":"https://github.com/remarkablemark.png","language":null,"funding_links":["https://github.com/sponsors/remarkablemark","https://patreon.com/remarkablemark","https://ko-fi.com/remarkablemark","https://liberapay.com/remarkablemark","https://b.remarkabl.org/teespring"],"categories":[],"sub_categories":[],"readme":"# find-and-split\n\n[![version](https://badgen.net/github/release/remarkablemark/find-and-split)](https://github.com/remarkablemark/find-and-split/releases)\n[![test](https://github.com/remarkablemark/find-and-split/actions/workflows/test.yml/badge.svg)](https://github.com/remarkablemark/find-and-split/actions/workflows/test.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n✂️ GitHub Action that finds and splits files.\n\n## Quick Start\n\nFind and split files using the [matrix strategy](https://docs.github.com/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow):\n\n```yaml\non: push\njobs:\n  find-and-split:\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        chunk: [1/2, 2/2]\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n\n      - name: Find and split files\n        uses: remarkablemark/find-and-split@v1\n        id: my-files\n        with:\n          pattern: '*.txt'\n          chunk: ${{ matrix.chunk }}\n\n      - name: Print files\n        run: echo ${{ steps.my-files.outputs.files }}\n```\n\n## Usage\n\nFind half of the files matching `*.txt` in alphabetical order:\n\n```yaml\n- uses: remarkablemark/find-and-split@v1\n  with:\n    pattern: '*.txt'\n    chunk: 1/2\n```\n\nSee [action.yml](action.yml)\n\n## Inputs\n\n### `chunk`\n\n**Required**: The chunk as a fraction (e.g., 1/2). The numerator is the chunk index and the denominator is the chunk total.\n\n```yaml\n- uses: remarkablemark/find-and-split@v1\n  with:\n    chunk: 1/2\n```\n\n\u003e [!NOTE]\n\u003e The chunk limit is 256 because that's the maximum jobs per workflow run.\n\n### `pattern`\n\n**Required**: The filename pattern.\n\n```yaml\n- uses: remarkablemark/find-and-split@v1\n  with:\n    pattern: '*.txt'\n```\n\n\u003e Special shell pattern matching characters (`[`, `]`, `*`, and `?`) may be used as part of the pattern.\n\u003e These characters may be matched explicitly by escaping them with a backslash (`\\`).\n\n### `directory`\n\n**Optional**: The directory. Defaults to the current working directory.\n\n```yaml\n- uses: remarkablemark/find-and-split@v1\n  with:\n    directory: .\n```\n\n### `delimiter`\n\n**Optional**: The delimiter. Defaults to a space.\n\n```yaml\n- uses: remarkablemark/find-and-split@v1\n  with:\n    delimiter: ' '\n```\n\nSet the delimiter to `\\n` for multiline files:\n\n```yaml\n- uses: remarkablemark/find-and-split@v1\n  with:\n    delimiter: '\\n'\n```\n\n## Outputs\n\n### `files`\n\nThe list of files. For example:\n\n```\n./test/1.spec ./test/2.spec\n```\n\nWith `delimiter: '\\n'`, the output will be:\n\n```\n./test/1.spec\n./test/2.spec\n```\n\n## Examples\n\n- [cypress-cucumber-steps](https://github.com/remarkablemark/cypress-cucumber-steps/blob/master/.github/workflows/cypress.yml)\n- [phpunit-test-sharding](https://github.com/remarkablemark/phpunit-test-sharding)\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremarkablemark%2Ffind-and-split","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremarkablemark%2Ffind-and-split","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremarkablemark%2Ffind-and-split/lists"}