Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ reviews:
Root CMake build. Must use C++20, -Wall -Wextra -Werror. Core library is
INTERFACE (header-only). Only platform .cpp files need compilation.

- path: "scripts/**"
- path: "moondeck/**"
instructions: |
MoonDeck dev console and build/test/run scripts. Scripts must resolve
ROOT path correctly relative to their location in scripts/subdir/.
ROOT path correctly relative to their location in moondeck/subdir/.
18 changes: 9 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ on:
paths:
- 'src/**'
- 'esp32/**'
- 'scripts/build/**'
- 'moondeck/build/**'
- 'CMakeLists.txt'
- 'library.json'
- '.github/workflows/release.yml'
Expand Down Expand Up @@ -79,7 +79,7 @@ jobs:
# warning on the direct ${{ }} expansion inside a shell string.
env:
TAG: ${{ inputs.tag || github.ref_name }}
run: uv run scripts/build/verify_version.py --tag "$TAG"
run: uv run moondeck/ci/verify_version.py --tag "$TAG"

# The shipping firmware list, read from the generated web-installer/firmwares.json
# (projected from build_esp32.py's FIRMWARES dict, drift-guarded by
Expand Down Expand Up @@ -160,7 +160,7 @@ jobs:
TAG: ${{ steps.tag.outputs.tag }}
run: |
set -euo pipefail
V=$(python scripts/build/compute_version.py --tag "$TAG")
V=$(python moondeck/build/compute_version.py --tag "$TAG")
echo "version=$V" >> "$GITHUB_OUTPUT"

- name: Build firmware
Expand Down Expand Up @@ -188,7 +188,7 @@ jobs:
# We run our own builder (not the action's default `idf.py build`)
# so the sdkconfig fragments and EXCLUDE_COMPONENTS go through the
# same code path as local builds. --release burns the channel tag in.
command: python ../scripts/build/build_esp32.py --firmware ${{ matrix.firmware }} --release "${{ steps.tag.outputs.tag }}" --version "${{ steps.ver.outputs.version }}"
command: python ../moondeck/build/build_esp32.py --firmware ${{ matrix.firmware }} --release "${{ steps.tag.outputs.tag }}" --version "${{ steps.ver.outputs.version }}"

- name: Stage release artifacts
run: |
Expand Down Expand Up @@ -234,7 +234,7 @@ jobs:
# runners don't ship uv by default — install it before package_desktop.
- uses: astral-sh/setup-uv@v3
- name: Build + package macOS arm64
run: uv run scripts/build/package_desktop.py
run: uv run moondeck/ci/package_desktop.py
- uses: actions/upload-artifact@v4
with:
name: desktop-macos
Expand All @@ -250,7 +250,7 @@ jobs:
# Same uv prerequisite as build-macos — see the comment there.
- uses: astral-sh/setup-uv@v3
- name: Build + package Windows x64
run: uv run scripts/build/package_desktop.py
run: uv run moondeck/ci/package_desktop.py
- uses: actions/upload-artifact@v4
with:
name: desktop-windows
Expand Down Expand Up @@ -326,7 +326,7 @@ jobs:
TAG: ${{ steps.tag.outputs.tag }}
run: |
set -euo pipefail
V=$(uv run python scripts/build/compute_version.py --tag "$TAG")
V=$(uv run python moondeck/build/compute_version.py --tag "$TAG")
echo "version=$V" >> "$GITHUB_OUTPUT"

- name: Generate ESP Web Tools manifests (release-asset URLs)
Expand All @@ -344,7 +344,7 @@ jobs:
# The shipping firmware list — the same web-installer/firmwares.json the
# build matrix reads, so manifests and builds can't drift.
for F in $(jq -r '.firmwares[] | select(.ships) | .name' web-installer/firmwares.json); do
uv run python scripts/build/generate_manifest.py \
uv run python moondeck/build/generate_manifest.py \
--firmware "$F" \
--version "$V" \
--release-url "$BASE" \
Expand Down Expand Up @@ -567,7 +567,7 @@ jobs:
# installer staged above under pages/install/ survives (a plain
# --site-dir pages would wipe it — mkdocs cleans its output dir).
# history/ and backlog/ are excluded in mkdocs.yml (internal docs).
uv run scripts/docs/build_docs.py --site-dir "$RUNNER_TEMP/docs-site"
uv run moondeck/docs/build_docs.py --site-dir "$RUNNER_TEMP/docs-site"
cp -r "$RUNNER_TEMP/docs-site/." pages/
ls -la pages/

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ name: Test
on:
pull_request:
paths: &test-paths
- 'scripts/**'
- 'moondeck/**'
- 'web-installer/**'
- 'src/core/ImprovFrame.h'
- 'src/core/ImprovOpReassembler.h'
Expand Down
12 changes: 6 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@
*.out
*.app

# Build directories (anchored to root, not scripts/build/)
# Build directories (anchored to root, not moondeck/build/)
/build/
/build-*/

# Packaging output from scripts/build/package_desktop.py — the .tar.gz / .zip
# Packaging output from moondeck/build/package_desktop.py — the .tar.gz / .zip
# bundles attached to GitHub releases. CI is the authoritative producer
# (release.yml on tag/main push); local runs are scratch for dev verification.
# Never commit these — they bloat the repo and can drift from source.
Expand Down Expand Up @@ -74,10 +74,10 @@ Testing/
.cache/

# MoonDeck state
scripts/moondeck.json
moondeck/moondeck.json
# Flash-event breadcrumb dropped by flash_esp32.py and consumed by MoonDeck
# on the next device refresh to link last_port → device.
scripts/.last_flash.json
moondeck/.last_flash.json

# Generated files
src/ui/ui_embedded.h
Expand Down Expand Up @@ -117,11 +117,11 @@ __pycache__/
# MkDocs — built docs site (rendered fresh in CI, never committed)
/site/

# Generated test inventory pages — built into the site by scripts/docs/mkdocs_hooks.py
# Generated test inventory pages — built into the site by moondeck/docs/mkdocs_hooks.py
# (the CLI generate_test_docs.py can still write them locally, but they are not committed).
/docs/tests/*.md

# Generated per-module technical pages — Doxygen+moxygen from each `.h`, built into
# the site by scripts/docs/mkdocs_hooks.py (via gen_api.py). Regenerated every build.
# the site by moondeck/docs/mkdocs_hooks.py (via gen_api.py). Regenerated every build.
/docs/moonmodules/core/moxygen/
/docs/moonmodules/light/moxygen/
Loading
Loading