KiBot/docs/build/html/usage_with_ci_cd.html

519 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Usage for CI/CD &mdash; KiBot 1.6.4 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Notes about Gerber format" href="notes_gerber.html" />
<link rel="prev" title="Usage" href="usage.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
KiBot
<img src="_static/kibot_370x200.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Usage for CI/CD</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#index-2">Usage of GitHub Actions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#github-actions-tags">GitHub Actions tags</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#github-cache">GitHub Cache</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Notes and extra information:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="notes_gerber.html">Notes about Gerber format</a></li>
<li class="toctree-l1"><a class="reference internal" href="notes_position.html">Notes about the position file</a></li>
<li class="toctree-l1"><a class="reference internal" href="notes_3d.html">Notes about 3D models</a></li>
<li class="toctree-l1"><a class="reference internal" href="propose.html">Proposed advanced KiCad usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="KiPlotYAML.html">KiPlot YAML</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Final notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Indices and tables:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="genindex.html">Index</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">KiBot</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Usage for CI/CD</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="usage-for-ci-cd">
<span id="usage-of-github-actions"></span><span id="index-0"></span><h1>Usage for CI/CD<a class="headerlink" href="#usage-for-ci-cd" title="Permalink to this heading"></a></h1>
<p>When using a GitHub or GitLab repo you can use KiBot to generate all the
needed stuff each time you commit a change to the schematic and/or PCB
file.</p>
<p>If you want a quick demo of what KiBot can do on a GitHub project try
the following
<a class="reference external" href="https://github.com/INTI-CMNB/kibot_variants_arduprog/blob/master/.github/workflows/kibot_quick_start.yml">workflow</a>.
You just need to enable GitHub workflows and copy this workflow to your
<code class="docutils literal notranslate"><span class="pre">.github/workflows/</span></code> folder. In this mode KiBot will detect the
project files, create a configuration and generate the targets. This
workflow collects the generated files in <code class="docutils literal notranslate"><span class="pre">Automatic_outputs.zip</span></code>.</p>
<p>Examples of how to use KiBot can be found <a class="reference external" href="https://github.com/INTI-CMNB/kicad_ci_test">here for
GitHub</a> and <a class="reference external" href="https://gitlab.com/set-soft/kicad-ci-test">here for
GitLab</a>.</p>
<p>In order to run KiBot on these environments you need a lot of software
installed. The usual mechanism to achieve this is using
<a class="reference external" href="https://www.docker.com/">docker</a>. Docker images containing KiBot,
all the supporting scripts and a corresponding KiCad can be found in the
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad5_auto">kicad5_auto</a>,
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad6_auto">kicad6_auto</a>
and
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad7_auto">kicad7_auto</a>
GitHub packages. More complete images, with Pandoc, LaTeX, Blender and
testing tools, can be found in the following packages:
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad5_auto_full">kicad5_auto_full</a>,
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad6_auto_full">kicad6_auto_full</a>
and
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad7_auto_full">kicad7_auto_full</a>
GitHub packages. Old images can be found at <a class="reference external" href="https://hub.docker.com/">Docker
Hub</a> as
<a class="reference external" href="https://hub.docker.com/repository/docker/setsoft/kicad_auto">setsoft/kicad_auto</a>
and
<a class="reference external" href="https://hub.docker.com/repository/docker/setsoft/kicad_auto_test">setsoft/kicad_auto_test</a>.</p>
<p>The images are based on
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_debian/pkgs/container/kicad5_debian">kicad5_debian</a>,
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad6_debian">kicad6_debian</a>
and
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad7_debian">kicad7_debian</a>.
(<a class="reference external" href="https://hub.docker.com/repository/docker/setsoft/kicad_debian">setsoft/kicad_debian</a>
on Docker Hub), containing KiCad on Debian GNU/Linux.</p>
<p>If you need to run the current development version of KiBot you can use
the following docker images:
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad5_auto_full">ghcr.io/inti-cmnb/kicad5_auto_full:dev</a>,
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad6_auto_full">ghcr.io/inti-cmnb/kicad6_auto_full:dev</a>
or
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto/pkgs/container/kicad7_auto_full">ghcr.io/inti-cmnb/kicad7_auto_full:dev</a>
(<a class="reference external" href="https://hub.docker.com/repository/docker/setsoft/kicad_auto">setsoft/kicad_auto:dev</a>).
These images are based on the <em>full</em> (also named <em>test</em>) images.</p>
<p>The most important images are:</p>
<table class="docutils align-default" id="index-1">
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>KiBot</p></th>
<th class="head"><p>KiCad</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:latest</p></td>
<td><p>last release</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:latest</p></td>
<td><p>last release</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad7_auto_full:latest</p></td>
<td><p>last release</p></td>
<td><p>7.x</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto:latest</p></td>
<td><p>last release</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto:latest</p></td>
<td><p>last release</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad7_auto:latest</p></td>
<td><p>last release</p></td>
<td><p>7.x</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:dev</p></td>
<td><p>git code</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:dev</p></td>
<td><p>git code</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad7_auto_full:dev</p></td>
<td><p>git code</p></td>
<td><p>7.x</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:1.6.2</p></td>
<td><p>1.6.2</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:1.6.2</p></td>
<td><p>1.6.2</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad7_auto_full:1.6.2</p></td>
<td><p>1.6.2</p></td>
<td><p>7.0.5.1</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:1.6.1</p></td>
<td><p>1.6.1</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:1.6.1</p></td>
<td><p>1.6.1</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad7_auto_full:1.6.1</p></td>
<td><p>1.6.1</p></td>
<td><p>7.0.2.1</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:1.6.0</p></td>
<td><p>1.6.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:1.6.0</p></td>
<td><p>1.6.0</p></td>
<td><p>6.0.10</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:1.5.1</p></td>
<td><p>1.5.1</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:1.5.1</p></td>
<td><p>1.5.1</p></td>
<td><p>6.0.10</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:1.4.0</p></td>
<td><p>1.4.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:1.4.0</p></td>
<td><p>1.4.0</p></td>
<td><p>6.0.9</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto_full:1.3.0</p></td>
<td><p>1.3.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto_full:1.3.0</p></td>
<td><p>1.3.0</p></td>
<td><p>6.0.7</p></td>
</tr>
<tr class="row-odd"><td><p>ghcr.io/inti-cmnb/kicad5_auto:1.2.0</p></td>
<td><p>1.2.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>ghcr.io/inti-cmnb/kicad6_auto:1.2.0</p></td>
<td><p>1.2.0</p></td>
<td><p>6.0.5</p></td>
</tr>
</tbody>
</table>
<p>For more information about the docker images visit
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_debian">kicad_debian</a> and
<a class="reference external" href="https://github.com/INTI-CMNB/kicad_auto">kicad_auto</a>.</p>
<section id="index-2">
<span id="id1"></span><h2>Usage of GitHub Actions<a class="headerlink" href="#index-2" title="Permalink to this heading"></a></h2>
<p>Note: You can also use quick-start functionality with GitHub actions,
an example is this
<a class="reference external" href="https://github.com/INTI-CMNB/kibot_variants_arduprog/blob/master/.github/workflows/kibot_action_quick_start.yml">workflow</a>.
This is the fastest way to test KiBot functionality.</p>
<p>You need to put a <a class="reference internal" href="configuration.html#configuration"><span class="std std-ref">config.kibot.yaml</span></a> file into the
KiCad project folder.</p>
<p>Here is an example of workflow file using the GitHub Action:</p>
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">example</span>
<span class="nt">on</span><span class="p">:</span>
<span class="w"> </span><span class="nt">push</span><span class="p">:</span>
<span class="w"> </span><span class="nt">paths</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&#39;**.sch&#39;</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&#39;**.kicad_pcb&#39;</span>
<span class="w"> </span><span class="nt">pull_request</span><span class="p">:</span>
<span class="w"> </span><span class="nt">paths</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&#39;**.sch&#39;</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&#39;**.kicad_pcb&#39;</span>
<span class="nt">jobs</span><span class="p">:</span>
<span class="w"> </span><span class="nt">example</span><span class="p">:</span>
<span class="w"> </span><span class="nt">runs-on</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ubuntu-latest</span>
<span class="w"> </span><span class="nt">steps</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">uses</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">actions/checkout@v2</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">uses</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">INTI-CMNB/KiBot@v2</span>
<span class="w"> </span><span class="nt">with</span><span class="p">:</span>
<span class="w"> </span><span class="c1"># Required - kibot config file</span>
<span class="w"> </span><span class="nt">config</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">config.kibot.yaml</span>
<span class="w"> </span><span class="c1"># optional - prefix to output defined in config</span>
<span class="w"> </span><span class="nt">dir</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">output</span>
<span class="w"> </span><span class="c1"># optional - schematic file</span>
<span class="w"> </span><span class="nt">schema</span><span class="p">:</span><span class="w"> </span><span class="s">&#39;schematic.sch&#39;</span>
<span class="w"> </span><span class="c1"># optional - PCB design file</span>
<span class="w"> </span><span class="nt">board</span><span class="p">:</span><span class="w"> </span><span class="s">&#39;pcb.kicad_pcb&#39;</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">upload results</span>
<span class="w"> </span><span class="nt">uses</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">actions/upload-artifact@v2</span>
<span class="w"> </span><span class="nt">with</span><span class="p">:</span>
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">output</span>
<span class="w"> </span><span class="nt">path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">output</span>
</pre></div>
</div>
<p>For KiCad 6 use <code class="docutils literal notranslate"><span class="pre">v2_k6</span></code> instead of <code class="docutils literal notranslate"><span class="pre">v2</span></code> (<code class="docutils literal notranslate"><span class="pre">v2_k7</span></code> for KiCad 7).
These actions use the last KiBot stable release, to use the current
development code use <code class="docutils literal notranslate"><span class="pre">v2_dk6</span></code> (KiCad 6) and <code class="docutils literal notranslate"><span class="pre">v2_d</span></code> (KiCad 5).</p>
<p>A working example applied to a repo can be found
<a class="reference external" href="https://github.com/INTI-CMNB/kicad-ci-test-spora/tree/test_gh_action">here</a>
(<a class="reference external" href="https://github.com/INTI-CMNB/kicad-ci-test-spora/blob/test_gh_action/.github/workflows/spora_main.yml">spora_main.yml</a>).
Another example, but using variants can be found
<a class="reference external" href="https://github.com/INTI-CMNB/kibot_variants_arduprog">here</a>
(<a class="reference external" href="https://github.com/INTI-CMNB/kibot_variants_arduprog/blob/master/.github/workflows/kibot_action.yml">kibot_action.yml</a>
for KiCad 6,
<a class="reference external" href="https://github.com/INTI-CMNB/kibot_variants_arduprog/blob/KiCad5/.github/workflows/kibot_action.yml">kibot_action.yml</a>
for KiCad 5)</p>
<p>The available options are:</p>
<ul class="simple">
<li><p><strong>additional_args</strong>: Additional text to add to the KiBot invocation.
This is intended for advanced use, report problems.</p></li>
<li><p><strong>cache3D</strong>: When <code class="docutils literal notranslate"><span class="pre">YES</span></code> you can cache the downloaded 3D models. An
example can be found
<a class="reference external" href="https://github.com/set-soft/kibot_3d_models_cache_example/">here</a>.</p></li>
<li><p><strong>config</strong>: The KiBot config file to use. The first file that matches
<code class="docutils literal notranslate"><span class="pre">*.kibot.yaml</span></code> is used when omitted.</p></li>
<li><p><strong>dir</strong>: Output directory for the generated files. The current
directory is used when omitted.</p></li>
<li><p><strong>board</strong>: Name of the PCB file. The first file that matches
<code class="docutils literal notranslate"><span class="pre">*.kicad_pcb</span></code> is used when omitted.</p></li>
<li><p><strong>install3D</strong>: When <code class="docutils literal notranslate"><span class="pre">YES</span></code> installs the KiCad 3D models. Note that
this will download more than 360 MiB and install more than 5 GiB of
files.</p></li>
<li><p><strong>quickstart</strong>: When <code class="docutils literal notranslate"><span class="pre">YES</span></code> ignores all the other options and runs
in <code class="docutils literal notranslate"><span class="pre">--quick-start</span></code> mode. No configuration needed.</p></li>
<li><p><strong>schema</strong>: Name of the schematic file. The first file that matches
<code class="docutils literal notranslate"><span class="pre">*.*sch</span></code> is used when omitted.</p></li>
<li><p><strong>skip</strong>: Skip preflights, comma separated or <em>all</em>. Nothing is
skipped when omitted.</p></li>
<li><p><strong>targets</strong>: List of targets to generate separated by spaces. To only
run preflights use <strong>NONE</strong>. All targets are generated when omitted.</p></li>
<li><p><strong>variant</strong>: Global variant to use. No variant is applied when
omitted.</p></li>
<li><p><strong>verbose</strong>: Level of verbosity. Valid values are 0, 1, 2 or 3.
Default is 0.</p></li>
</ul>
<section id="github-actions-tags">
<span id="index-3"></span><h3>GitHub Actions tags<a class="headerlink" href="#github-actions-tags" title="Permalink to this heading"></a></h3>
<p>There are several tags you can choose:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Tag</p></th>
<th class="head"><p>API</p></th>
<th class="head"><p>KiBot</p></th>
<th class="head"><p>KiCad</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>v1</p></td>
<td><p>1</p></td>
<td><p>1.2.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v1_k6</p></td>
<td><p>1</p></td>
<td><p>1.2.0</p></td>
<td><p>6.0.5</p></td>
</tr>
<tr class="row-even"><td><p>v2_1_2_0</p></td>
<td><p>2</p></td>
<td><p>1.2.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k6_1_2_0</p></td>
<td><p>2</p></td>
<td><p>1.2.0</p></td>
<td><p>6.0.5</p></td>
</tr>
<tr class="row-even"><td><p>v2_1_3_0</p></td>
<td><p>2</p></td>
<td><p>1.3.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k6_1_3_0</p></td>
<td><p>2</p></td>
<td><p>1.3.0</p></td>
<td><p>6.0.7</p></td>
</tr>
<tr class="row-even"><td><p>v2_1_4_0</p></td>
<td><p>2</p></td>
<td><p>1.4.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k6_1_4_0</p></td>
<td><p>2</p></td>
<td><p>1.4.0</p></td>
<td><p>6.0.9</p></td>
</tr>
<tr class="row-even"><td><p>v2_1_5_1</p></td>
<td><p>2</p></td>
<td><p>1.5.1</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k6_1_5_1</p></td>
<td><p>2</p></td>
<td><p>1.5.1</p></td>
<td><p>6.0.9</p></td>
</tr>
<tr class="row-even"><td><p>v2_1_6_0</p></td>
<td><p>2</p></td>
<td><p>1.6.0</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k6_1_6_0</p></td>
<td><p>2</p></td>
<td><p>1.6.0</p></td>
<td><p>6.0.9</p></td>
</tr>
<tr class="row-even"><td><p>v2_1_6_2</p></td>
<td><p>2</p></td>
<td><p>1.6.2</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k6_1_6_2</p></td>
<td><p>2</p></td>
<td><p>1.6.2</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-even"><td><p>v2_k7_1_6_2</p></td>
<td><p>2</p></td>
<td><p>1.6.2</p></td>
<td><p>7.0.5.1</p></td>
</tr>
<tr class="row-odd"><td><p>v2</p></td>
<td><p>2</p></td>
<td><p>last release</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-even"><td><p>v2_k6</p></td>
<td><p>2</p></td>
<td><p>last release</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-odd"><td><p>v2_k7</p></td>
<td><p>2</p></td>
<td><p>last release</p></td>
<td><p>7.x</p></td>
</tr>
<tr class="row-even"><td><p>v2_d</p></td>
<td><p>2</p></td>
<td><p>git code</p></td>
<td><p>5.1.9</p></td>
</tr>
<tr class="row-odd"><td><p>v2_dk6</p></td>
<td><p>2</p></td>
<td><p>git code</p></td>
<td><p>6.0.11</p></td>
</tr>
<tr class="row-even"><td><p>v2_dk7</p></td>
<td><p>2</p></td>
<td><p>git code</p></td>
<td><p>7.x</p></td>
</tr>
</tbody>
</table>
<p>The main differences between API 1 and 2 are:</p>
<ul class="simple">
<li><p>API 2 adds support for variants and quick-start</p></li>
<li><p>In API 2 you can select which targets are created</p></li>
<li><p>In API 1 you must specify the input files, in API 2 can be omitted</p></li>
<li><p>API 1 supports wildcards in the filenames, API 2 doesnt</p></li>
<li><p>API 2 supports spaces in the filenames, API 1 doesnt</p></li>
</ul>
<p>Also note that v2 images are currently using the <em>full</em> docker image
(v1.5 and newer). It includes things like PanDoc and Blender.</p>
</section>
</section>
<section id="github-cache">
<span id="index-4"></span><h2>GitHub Cache<a class="headerlink" href="#github-cache" title="Permalink to this heading"></a></h2>
<p>GitHub offers a mechanism to cache data between runs. One interesting
use is to make the KiCost prices cache persistent, here is an
<a class="reference external" href="https://github.com/set-soft/kicost_ci_test">example</a></p>
<p>Another use is to cache <a class="reference external" href="https://github.com/set-soft/kibot_3d_models_cache_example">downloaded 3D
models</a></p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="usage.html" class="btn btn-neutral float-left" title="Usage" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="notes_gerber.html" class="btn btn-neutral float-right" title="Notes about Gerber format" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2018-2023, Salvador E. Tropea/INTI/John Beard.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>