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](https://github. com/INTI-CMNB/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](https://aisler. net/)) shows the git that
was used to generate this release and start the GitLab CiCd pipeline.