apache / apache/groovy-geb

Tunnels should be done via shared build service to not do it unnecessarily

Open
#276 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.