Description
Hello,
As discussed in two recents PR (#1196 and #1202) the current build seems to be too monolithic.
If we add additional stacks, the build will grow and will become error prone and it will become a pain to publish all the stacks. The build takes between 40 min and 1 hour and if a single thing fails (a test, a package installation) everything fails.
We should benefit from GitHub actions that have been introduced by @parente in PR #1132 and / or by proposal made by @bollwyvl in his comment. My first idea is to split the treatment of each image in different jobs that can be run in parallel (at least for some of them) with dependencies between them to achieve more flexibility. We could benefit from advanced features like artifact sharing to achieve this.
A job could be responsible of the whole stuff for an image:
- Lint
- Build
- Test
- Hook / Manifest -> see also another improvement on this point Refactor duplicative, opaque run_hook scripts #1140
- Tag -> support more flexible tagging mechanism like tagging images with main components version (Downgrade Python from 3.7 to 3.6 or tag 3.6 version #976)
- Push
All these cool new stuff with the ability to build things locally.
So this is not so simple, there is a lot of things to solve / decide but there is room for improvement 😄.
Best.