dataflow.yml is now the camera alone, so running it no longer pulls dora-hub over pip or needs a display. dataflow_plot.yml adds the viewer on image_bgr for when the stream should be looked at. dora 1.0 resolves an input's source only within the same descriptor, so the camera node is declared in both files rather than shared, and the two are run one at a time. CI validates both, which is what catches an output rename that breaks only the viewer. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A65jaxrPXMN9EhBDMmMWb2
37 lines
1.2 KiB
YAML
37 lines
1.2 KiB
YAML
# Checks both dataflows against the typed contract in dora-node.yml. This runs
|
|
# no node, so it needs neither a camera nor the ZED SDK.
|
|
name: validate
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
DORA_VERSION: v1.0.1
|
|
DORA_TARGET: x86_64-unknown-linux-gnu
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install the dora CLI
|
|
run: |
|
|
curl -fsSL -o dora-cli.tar.gz \
|
|
"https://github.com/dora-rs/dora/releases/download/${DORA_VERSION}/dora-cli-${DORA_TARGET}.tar.gz"
|
|
tar xzf dora-cli.tar.gz
|
|
mkdir -p "$HOME/.local/bin"
|
|
install -m 755 "dora-cli-${DORA_TARGET}/dora" "$HOME/.local/bin/dora"
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
rm -rf dora-cli.tar.gz "dora-cli-${DORA_TARGET}"
|
|
|
|
- run: dora --version
|
|
|
|
# strict_types: true in each dataflow turns a type warning into a
|
|
# non-zero exit, so a mismatched annotation fails here rather than at
|
|
# runtime. The plot file is checked too: it wires the same outputs, and a
|
|
# rename that breaks only the viewer should still fail the build.
|
|
- name: Validate the dataflows
|
|
run: |
|
|
dora validate dataflow.yml
|
|
dora validate dataflow_plot.yml
|