Docker image for KiCad automation scripts suitable for CI/CD
The main objetive is to use it as a base for KiCad automation in CI/CD environments.
The images are uploaded to Docker Hub.
This image is based on setsoft/kicad_debian and adds some automation tools to it:
- Kiplot generate gerbers, drill and position files
- kicad-automation-scripts runs DRC/ERC, prints schematics and PCB
- KiBoM generates HTML and CSV BoMs
- InteractiveHtmlBom generates interactive HTML BoMs
- PcbDraw generates 2D renders of the PCB
The available tags are:
- 10.3-5.1.5 is KiCad 5.1.5 on Debian 10.3 with Kiplot 0.2.4, kicad-automation-scripts 1.3.1, KiBoM 1.6.3 and interactivehtmlbom 2.3.1
- 10.4-5.1.6 (same as latest) is KiCad 5.1.6 on Debian 10.4 with KiBot 0.7.0, kicad-automation-scripts 1.4.2, KiBoM 1.8.0, interactivehtmlbom 2.3.3 and PcbDraw 0.6.0-2
- bullseye-5.99-20200922 (same as nightly) is KiCad 5.99 (20200922) on Debian bullseye with KiBot 0.7.0, kicad-automation-scripts 1.4.2, KiBoM 1.8.0, interactivehtmlbom 2.3.3 and PcbDraw 0.6.0-2
You can run it using a script like this:
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
export WORKDIR=RELATIVE_PATH_TO_KICAD_PROJECTS
export SUBDIR=SUBDIR_INSIDE_WORKDIR
docker run --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY \
-v $(pwd)/$WORKDIR:/home/$USER/workdir \
--user $USER_ID:$GROUP_ID \
--env NO_AT_BRIDGE=1 \
--workdir="/home/$USER" \
--volume="/etc/group:/etc/group:ro" \
--volume="/home/$USER/.config/kicad:/home/$USER/.config/kicad:rw" \
--volume="/home/$USER/.cache/kicad:/home/$USER/.cache/kicad:rw" \
--volume="/etc/passwd:/etc/passwd:ro" \
--volume="/etc/shadow:/etc/shadow:ro" \
setsoft/kicad_auto:10.3-5.1.5 /bin/bash -c "cd workdir/$SUBDIR; kiplot"
To create the docker image run the build.sh script. This script will download the latest KiPlot and needed tools.
The run.sh script is an example of how to run KiPlot using this image locally. You must edit the file to define the place where your KiCad project is located. The WORKDIR variable indicates the directory where your project and libraries are located. The SUBDIR variable is the subdir inside WORKDIR that contains the schematic and PCB files.