Open
Description
Summary
Simplify Builder setup and improve caching.
Description
We have many builders, and they are often redundant.
So, it makes sense to unify them into one, that contains all our tools.
We also use versioned containers from external sources, maintaining those across multiple repos is problematic, we should make our own version of those containers, so there is a single version to update, and when we update the cat-ci version, everything gets the latest tagged versions.
-
Create a new earthly sub-directory that contains ROOT Containers.
- Create a master "builder" target.
- it should be based on debian slim, and should 'apt-get install' all the common tooling we always use. OpenSSL, wget, curl, graphviz, etc, etc.
- It should have then a list of
DO +ADD_FLUTTER_TOOLS
andDO +ADD_PYTHON_TOOLS
,DO +ADD_GOLANG_TOOLS
,DO +ADD_RUST_TOOLS
etc. - The individual languages then, do not have an actual builder, they define a
ADD_<LANGUAGE>_TOOLS
which does the specific set of steps required to add tools for that language. - If Chrome/Firefox etc, are generic, they could have their own
ADD_BROWSER_TOOLS
targets, etc.
- Create a master "builder" target.
-
We should have generic containers, which point to upstream versioned containers. There should be no direct references in any repo to an external container in a
FROM <something>
line inside earthly. -
Fix the documents