Closed jaylamb closed 2 years ago
The design generally LGTM. A few notes:
kibot_config_file
and output_dir
variables isn't necessary since they don't require complex initialization.kibot_config_file
and output_dir
variables should be read-only. As written, this could be accomplished with a trailing readonly foo
. If the local declaration and initialization were combined, this could be accomplished with local -r foo=...
kibot_config_file
and output_dir
variables aren't really necessary. They just shorten the line length of the kibot
invocation._
vs -
)kibot_config.kibot.yaml
is slightly repetitive. kibot.yaml
would be better IMO.I'll open a type-feature
issue for implementing this new feature shortly.
Feature Design Add production files generation CI script (
ci/generate-production-files
) which will create a directory (prodcution_files
) within the project repository, if it does not already exist. The directory should be the target for the KiBot script's output, which will include all project printed circuit board Gerbers, drill files, and pick-and-place files.Feature Use Case This CI job will run automatically as a part of pull requests, releases, etc... and will produce production files (Gerbers, drills, pick and place) for all printed circuit boards contained within a project repository.
Detailed Design
[ ] Add KiBot as a submodule to this project:
Note: KiBot requires the installation of the
python3-distutils
package to run[ ] Add
ci/generate-production files
to project:--help
: See other project scripts--version
: See other project scriptsfunction error()
: See other project scriptsfunction abort()
: See other project scriptsfunction display_help_text()
: See other project scriptsfunction display_version()
: See other project scriptsfunction main()
: See other project scriptsfunction generate_production_files()
:kibot_config.kibot.yaml
) to project repository. This file specifies which production files to generate, and which directories and subdirectories to create for them:preflight: check_zone_fills: false run_drc: false run_erc: false update_xml: false
global: output: '%f-%i.%x'
outputs:
name: 'Gerbers' type: 'gerber' dir: 'gerber' options: create_gerber_job_file: true exclude_edge_layer: true exclude_pads_from_silkscreen: true force_plot_invisible_refs_vals: false gerber_precision: 4.6 line_width: 0.1 plot_footprint_refs: true plot_footprint_values: false plot_sheet_reference: false subtract_mask_from_silk: false tent_vias: false use_aux_axis_as_origin: false use_gerber_net_attributes: true use_gerber_x2_attributes: false use_protel_extensions: false layers:
name: 'Drill' type: 'excellon' dir: 'gerber' options: map: type: 'gerber' metric_units: true minimal_header: false mirror_y_axis: false pth_and_npth_single_file: true use_aux_axis_as_origin: false
name: 'Pick and Place' type: 'position' dir: 'pick-and-place' options: format: 'ASCII' only_smd: true separate_files_for_front_and_back: true units: 'millimeters'
.github/workflows/ci.yml
: