製造
CIでの設計チェック
すべてのプッシュで agentee check を実行し、エラーでビルドを失敗させ、シミュレーション結果を最新に保ち、リリースにファブパッケージを添付します。
プレーンテキストの設計はgitに属し、git上の設計はコードのようにプッシュごとにチェックできます。agentee checkは、プロジェクトがクリーンな場合0、エラーがある場合1、ファイルが読み込めない場合2で終了するため、CIにそのまま組み込めます。
チェックジョブ
name: check
on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: curl -fsSL https://agentee.sh/install.sh | sh
- run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- run: sudo apt-get install -y kicad-symbols kicad-footprints
- run: agentee check hardware/KiCadライブラリは、ジョブが部品をインポートする場合にのみ必要です。シンボルとフットプリントをすでに保持しているプロジェクトは、それらなしでチェックできます。checkをプロジェクトディレクトリに向けるか、内部から実行します。
再現可能な結果のために、最新版ではなくリリースタグからインストールしてバージョンを固定します。
- run: curl -fsSL https://agentee.sh/install.sh | AGENTEE_VERSION=v0.1.0 sh機械可読な出力
agentee check --json{
"diagnostics": [
{
"at": "via [12.550, 11.000]",
"file": "./lna.pcb.toml",
"item": "lna",
"message": "GND via sits in U1.2 0.175 mm from its edge, its 0.300 mm annulus reaches past the pad under the mask; centre it or use a smaller via",
"rule": "via-annulus-past-pad",
"severity": "warning"
}
],
"errors": 0,
"ok": true,
"warnings": 3
}すべての診断には、ファイル、アイテム、場所、重大度が含まれ、レイアウト診断にはルールIDが含まれます。これだけでプルリクエストに注釈を付けたり、警告をエラーとして扱うプロジェクトで警告時に失敗させたりできます。ルールは、[drc] severityで基板内でエラーに引き上げられ、ポリシーをCIスクリプトではなく設計に保持できます。
CIでのシミュレーション
チェックはシミュレーションを実行しません。各結果は、仕様、確認した銅、層構成のハッシュを記録し、一致しなくなった場合、チェックが警告します。GPUのないCIランナーでは、これが有用な部分です。RF配線を動かすプルリクエストは、FDTD結果に古い警告を受け取り、その結果を測定するインターフェースは完全に失敗します。
DCドロップ、熱、ロジックシミュレーションは、ランナーにGPUがあるCIで実行するほど安価です。ロジックシミュレーションはGPUが不要です。
- run: agentee sim counter
working-directory: hardwareFDTDの実行はワークステーションで行い、結果をコミットします。これにより、CIは実際に実行されたシミュレーションに対して設計をチェックできます。
すべてのプルリクエストでレンダリング
- run: |
agentee render pcb:main -o main.png --canvas-only
agentee render sch:main -o main-sch.png --canvas-only
working-directory: hardware
- uses: actions/upload-artifact@v4
with:
name: renders
path: hardware/*.pngレンダリングはヘッドレスで実行され、ディスプレイやGPUが不要です。ハードウェア変更のレビュアーは、diffだけでなく基板も確認できます。
リリース時のファブパッケージ
on:
push:
tags: ["hw-v*"]
jobs:
fab:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: curl -fsSL https://agentee.sh/install.sh | sh
- run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- run: agentee fab pcb:main -o fab/
working-directory: hardware
- env:
GH_TOKEN: ${{ github.token }}
run: gh release create "$GITHUB_REF_NAME" hardware/fab/*.zip hardware/fab/*.csv hardware/fab/fab-notes.txtfabは、レイアウトにエラーがある間は拒否します。そのため、壊れた設計へのタグは、Gerberを発送する代わりに失敗します。シルクのウォーターマークには、パッケージがビルドされたコミットが含まれます。未コミットの変更があるツリーからのビルドは-dirtyと表示されます。