agentee

製造

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: hardware

FDTDの実行はワークステーションで行い、結果をコミットします。これにより、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.txt

fabは、レイアウトにエラーがある間は拒否します。そのため、壊れた設計へのタグは、Gerberを発送する代わりに失敗します。シルクのウォーターマークには、パッケージがビルドされたコミットが含まれます。未コミットの変更があるツリーからのビルドは-dirtyと表示されます。

このガイドを改善する · エージェント向けMarkdown