Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
762c236310 | ||
|
|
df7f38a6a5 | ||
|
|
ed531f9fb6 |
@@ -24,8 +24,10 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
run: |
|
||||
git clone --depth=50 https://${{ gitea.actor }}:${{ gitea.token }}@git.produktor.io/${{ gitea.repository }}.git .
|
||||
git checkout ${{ gitea.sha }}
|
||||
git init .
|
||||
git remote add origin https://${{ gitea.actor }}:${{ gitea.token }}@git.produktor.io/${{ gitea.repository }}.git
|
||||
git fetch --depth=50 origin "${{ gitea.ref }}"
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install --quiet -r simulator/requirements.txt
|
||||
@@ -61,8 +63,10 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
run: |
|
||||
git clone --depth=1 https://${{ gitea.actor }}:${{ gitea.token }}@git.produktor.io/${{ gitea.repository }}.git .
|
||||
git checkout ${{ gitea.sha }}
|
||||
git init .
|
||||
git remote add origin https://${{ gitea.actor }}:${{ gitea.token }}@git.produktor.io/${{ gitea.repository }}.git
|
||||
git fetch --depth=1 origin "${{ gitea.ref }}"
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
- name: Install Trivy
|
||||
run: |
|
||||
|
||||
@@ -77,3 +77,5 @@ Contributing (TDD-first workflow): [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
||||
## CI & releases
|
||||
|
||||
Every push runs the pipeline in [`.github/workflows/release.yaml`](.github/workflows/release.yaml): **pytest unit tests**, a compile check, a 10-second virtual smoke flight verified with DuckDB, and a Trivy vulnerability/misconfiguration scan. The simulator Docker build also runs `pytest` — a failing test blocks the image. Pushes to `main` then cut a semantic version from the conventional-commit type (`feat:` → minor, `!`/`BREAKING CHANGE` → major, else patch), tag the commit, and publish a release with a **fleet release manifest** (versioned artifact list with checksums — the delivery unit described in [11 — CI/CD & delivery](docs/11-cicd-delivery.md)) plus a source bundle.
|
||||
|
||||
[LICENSE](LICENSE)
|
||||
|
||||
@@ -129,6 +129,13 @@ coming back to foundations DevOps and sysadmins already trust.
|
||||
> - [`simulator/explorer/server.py`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/simulator/explorer/server.py#L111-L131) — the query path a peer or an engineer hits identically
|
||||
> - [`simulator/tests/test_sql_gate.py`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/simulator/tests/test_sql_gate.py#L13-L35) — the gate is safety-critical, so it is tested first
|
||||
|
||||
The explorer is running, not just described: the data-plane view (partition tree
|
||||
and read-only SQL console) is live at
|
||||
[swarm-data-explorer.produktor.io](https://swarm-data-explorer.produktor.io/)
|
||||
(same access as this repository and [swarm.produktor.io](https://swarm.produktor.io/)).
|
||||
Browse the Hive layout, run `SELECT` queries against the live lake, and see the
|
||||
same statement gate a peer drone would hit in flight.
|
||||
|
||||
## 8. Replication and offload
|
||||
|
||||
Moving accumulated data uses rsync-class tooling (rclone) over the same SSH
|
||||
@@ -170,6 +177,14 @@ scanning the whole lake on every query does not scale, so the scan is
|
||||
> - [`simulator/monitoring/grafana/dashboards/`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/simulator/monitoring/grafana/dashboards) — the fleet and platform dashboards
|
||||
> - [`.github/workflows/release.yaml`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/.github/workflows/release.yaml) — tests, smoke flight, Trivy, semantic release
|
||||
|
||||
The dashboard is running, not just described: **Swarm Fleet — generated data** is
|
||||
live at
|
||||
[swarm-analalytics.produktor.io](https://swarm-analalytics.produktor.io/d/swarm-fleet/swarm-fleet-e28094-generated-data?orgId=1&refresh=5s)
|
||||
(same access as this repository, [swarm.produktor.io](https://swarm.produktor.io/),
|
||||
and [swarm-data-explorer.produktor.io](https://swarm-data-explorer.produktor.io/)).
|
||||
Telemetry rows, detections, pose frames, battery, and link quality — all derived
|
||||
from the Parquet lake via SQL, not from agents on the drones.
|
||||
|
||||
## 10. Working method
|
||||
|
||||
A note on how this is meant to be built, not just what. Working together needs a
|
||||
|
||||
Reference in New Issue
Block a user