Upcoming enhancements to `run-unit-test-docker`

Andrew Geissler geissonator at gmail.com
Wed Feb 17 01:13:15 AEDT 2021



> On Feb 11, 2021, at 6:28 PM, Patrick Williams <patrick at stwcx.xyz> wrote:
> 
> Hello,
> 
> Inside openbmc-build-scripts is a tool which is used by Jenkins to run
> repository-level CI and I think some developers also use it:
> `run-unit-test-docker`.  I've rewritten a component of this, which is
> now at `scripts/build-unit-test-docker`, in Python and done some
> enhancements to it.  The [currently] last commit in this sequence is at
> [1].
> 
> Important notices:
> 
>    - Location change: build-unit-test-docker.sh ->
>      scripts/build-unit-test-docker
>        + I suspect few people run this directly, but instead use
>          `run-unit-test-docker` which hides the rename.
> 
>    - Python3.6 minimum.
>        + Bitbake already requires this so it really shouldn't be a
>          problem for anyone.
> 
>    - Python 'sh' module needed.
>        + You can install this with the 'python3-sh' package on many
>          distros or 'pip install sh'.
> 
>    - Docker stages are now tagged with different names / tag revs.
>        + I wrote a `scripts/clean-unit-test-docker` which will clean
>          out old Docker tags and can be ran periodically.
> 
> Major changes:
> 
>    - Rewrite in Python.
>    - Significant speed improvements:
>        - Docker stages all build in parallel to formulate the final image.
>        - All Docker stages are tagged and reused from run to run.
>        - CMake packages now use the Ninja backend.  This is the same as
>          bitbake and faster than make.
>    - Included packages are defined in a dictionary rather than as raw
>      Dockerfiles.


Thanks for doing this Patrick! I submitted your first set of
commits this morning so we’re officially on the new python
based scripts in CI.

Let Patrick and I know if you see anything amiss.



More information about the openbmc mailing list