What’s the use case and why even to semantic versioning on pcbs?
Semantic versioning for PCBs maks ist simpler so track changes, compatibility, and revisions for a single product. This also maks it simpler to map a pcb revision to a software revision.
GitLab CiCd Setup
Versioning is mainly done in two jobs, one that checks if everything is set accordingly and a second one that generates the gerber files.
Job for validating if placeholder Tag is present
As a precaution to ensure later jobs can operate without any problems, the test in each commit ensure that the placeholder Tag is present and has no spelling error.
|
|
Replacing tag and outputting gerber
For generating the gerber file KiBot is used. Before the KiBot is run to grate the final files, a simple find and replace operation is run, that searches the kicad pcb files and replaces all found placeholders with the Git Tag that triggered the pipeline job.
|
|
Result
In the first screenshot you cna spot the placeholder tag in the bottom right corner.
The placeholder Tag has this size to accommodate for tags liker 1.0.0-alpha or 1.0.0-bete. even though
not recommend, to mey research this is a valid approach to do semantic versioning, so i wanted it to be supported, or
better not to cause problems.
The outputted gerber files (here visualized in the Aisler PCB explorer) shows the git that that
was used to generate this release and start the GitLab CiCd pipeline.