Closed apcountryman closed 2 years ago
Add production files generation CI job. The proposed design was outlined in #25.
git submodule add ../KiBot utilities/KiBot
ci/generate-production-files
--help
--version
function error()
function abort()
function display_help_text()
function display_version()
function main()
function generate_production_files()
local layouts; mapfile -t layouts < <( git -C "$repository" ls-files '*.kicad_pcb' | xargs -r -d '\n' -I '{}' find "$repository/{}" ); readonly layouts
for layout in "${layouts[@]}"; do if ! "$repository/utilities/KiBot/src/kibot" -b "$layout" -c "$repository/kibot.yml" -d "$repository/production-files"; then abort fi done
- [ ] Add KiBot configuration file (`kibot.yml`): ```yaml kibot: version: 1 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: - layer: 'F.Cu' - layer: 'In1.Cu' - layer: 'In2.Cu' - layer: 'B.Cu' - layer: 'F.Paste' - layer: 'B.Paste' - layer: 'F.SilkS' - layer: 'B.SilkS' - layer: 'F.Mask' - layer: 'B.Mask' - layer: 'Edge.Cuts' - 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
generate-production-files: name: Generate production files runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Generate production files shell: bash run: ./ci/generate-production-files - name: Archive generated production files uses: actions/upload-artifact@v2 with: name: production-files path: production-files retention-days: 7
Add production files generation CI job. The proposed design was outlined in #25.
ci/generate-production-files
):--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()
:for layout in "${layouts[@]}"; do if ! "$repository/utilities/KiBot/src/kibot" -b "$layout" -c "$repository/kibot.yml" -d "$repository/production-files"; then abort fi done
.github/workflows/ci/yml
: