{"id":16229984,"url":"https://github.com/skorfmann/wormhole","last_synced_at":"2026-04-12T07:39:36.551Z","repository":{"id":136776083,"uuid":"347902880","full_name":"skorfmann/wormhole","owner":"skorfmann","description":"Stop worrying about manually crafting a parallel CI pipeline and start folding execution time by forming wormholes in your CI workflows 🚀","archived":false,"fork":false,"pushed_at":"2021-03-18T07:11:43.000Z","size":3674,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-14T03:51:07.433Z","etag":null,"topics":["cdktf","ci","jest","jest-runner","lambda","serverless","terraform"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"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/skorfmann.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":"2021-03-15T09:11:02.000Z","updated_at":"2021-05-26T22:59:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"e10c01ef-7ade-41b3-aac8-02dbefac5449","html_url":"https://github.com/skorfmann/wormhole","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skorfmann%2Fwormhole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skorfmann%2Fwormhole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skorfmann%2Fwormhole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skorfmann%2Fwormhole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skorfmann","download_url":"https://codeload.github.com/skorfmann/wormhole/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247785920,"owners_count":20995642,"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":["cdktf","ci","jest","jest-runner","lambda","serverless","terraform"],"created_at":"2024-10-10T12:59:45.774Z","updated_at":"2026-04-12T07:39:31.527Z","avatar_url":"https://github.com/skorfmann.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wormhole CI\n\nStop worrying about manually crafting a parallel CI pipeline and start folding execution time by forming wormholes in your CI workflows 🚀\n\n![wormhole](./wormhole.webp)\n\n## Components\n\n- [Terraform CDK](https://cdk.tf)\n- [AWS Lambda Docker Runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)\n- [Jest as a Platform](https://www.youtube.com/watch?v=NtjyeojAOBs\u0026ab_channel=ReactiveConf)\n\n## How does it work\n\nJest uses [workers](https://github.com/facebook/jest/tree/master/packages/jest-worker) to run parallel tests. It's essentially possible to run each test file on its own worker. That's exactly what we're doing here. However, rather than running the test locally, the worker calls out to Lambda function and reports the result back to the Jest process.\n\n![workflow](./workflow.png)\n## Status\n\nThis is a proof of concept at this point. The goal is to drastically reduce the run time of integration test pipelines without sacrificing developer experience.\n\n### Things to figure out\n\n- Reduce deployment time (biggest gain is likely correlated with smaller Docker images)\n- Local EFS mount, rather than code deployments for local testing (needs VPN or a proxy)\n- Alternatively, use a remote container for VS code which could easily mount EFS\n- Handle test specific settings / runners (e.g. a specific Docker image for a test / test group)\n- Is there another way of splitting tests than files? (patterns maybe)\n### Alternative runners\n\nIt would be great to support more runner types. This would likely enable Windows and Mac builds as well.\n\n- Use Fargate as runner\n- Use Google Cloud run as runner\n- Use Azure Functions as runner\n- Use Azure App Service as runner\n## Usage\n\nMake sure to have valid AWS credentials in your env.\n\n```\nyarn install\nyarn build\ncd packages/lambda\ncdktf deploy --auto-approve\ncd ../../examples/terraform\nyarn test\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskorfmann%2Fwormhole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskorfmann%2Fwormhole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskorfmann%2Fwormhole/lists"}