[CDRIVER-4731] Migrate build configuration matrix to Earthly Created: 22/Sep/23  Updated: 25/Sep/23

Status: Backlog
Project: C Driver
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Unknown
Reporter: Colby Pike Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Earthly supports automatic build matrices by providing multiple arguments for a single parameter in a BUILD invocation:

BUILD +build --tls=OpenSSL --tls=LibreSSL --zlib=bundled --zlib=system

which executes the cross product of all argument values in parallel.

While this could be used within a single EVG task, it can become resource intensive on the single task runner and is difficult to inspect at a glance on the task table. This feature is still very useful for local development, and can be extremely fast and efficient when combined with Ccache.

The better alternative for EVG is to add a level of indirection and generate unique Earthly-based tasks for configuration combinations that we want to test. This will overlap with existing task matrix code that exists for other platforms.

Proposed: Migrate existing tasks on other Linux platforms to use Earthly tasks for configuration matrices, which will better utilize build resources, enhance reproducibility, and isolate tasks from the build hosts by containerizing the work,


Generated at Wed Feb 07 21:21:46 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.