Tunnels should be done via shared build service to not do it unnecessarily
- Dominant language
- Groovy
- Stars
- 1.2k
- Forks
- 235
- PR merge metrics
- No merged PRs in 30d
Description
Currently the tunnels for BrowserStack, LambdaTest, and SauceLabs are implemented using tasks, adding a `dependsOn` the tunnel opening task and a `finalizedBy` the tunnel closing task.
This has various drawbacks though, the most prominent one, that the tunnel is always opened, even if the actual task that needs it is up-to-date, skipped, or taking its result from the build cache.
The tunnels should instead be implemented as shared build services, as things like this are one of the main use-cases for shared build services.
With that, the tunnels will only be established when actually necessary and there is no need for the ramp-up and tear-down tasks
Contributor guide
Research direction
Start by locating the task implementations for the BrowserStack, LambdaTest, and SauceLabs tunnels and inspect how the tunnel-opening and tunnel-closing tasks are connected. Rework their lifecycle around shared build services so tunnels start only when a task actually needs them, including up-to-date, skipped, and build-cache cases, with no ramp-up or tear-down tasks remaining.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- groovy
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100