diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 945c42f7..d1eff990 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -124,6 +124,9 @@ jobs: - name: check run: make docs-check + - name: check generated FSM diagrams + run: make fsm-check + ######################## # run unit-test sqlite3 race ######################## diff --git a/Makefile b/Makefile index a4a12d1b..b512634e 100644 --- a/Makefile +++ b/Makefile @@ -194,4 +194,20 @@ docs-check: docs fsm: @$(call print, "Generating state machine docs") ./scripts/fsm-generate.sh; -.PHONY: fsm + +FSM_FILES := \ + fsm/example_fsm.md \ + instantout/fsm.md \ + instantout/reservation/reservation_fsm.md \ + staticaddr/deposit/fsm.md \ + staticaddr/loopin/fsm.md + +fsm-check: fsm + @$(call print, "Verifying generated state machine docs") + if test -n "$$(git status --porcelain -- $(FSM_FILES))"; then \ + echo "Generated FSM diagrams are not up-to-date!"; \ + git status --porcelain -- $(FSM_FILES); \ + git diff -- $(FSM_FILES); \ + exit 1; \ + fi +.PHONY: fsm fsm-check