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
17 changes: 15 additions & 2 deletions elixir/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.PHONY: help all setup deps build fmt fmt-check lint test coverage ci dialyzer
.PHONY: help all setup deps build fmt fmt-check lint test coverage ci dialyzer e2e

MIX ?= mix

help:
@echo "Targets: setup, deps, fmt, fmt-check, lint, test, coverage, dialyzer, ci"
@echo "Targets: setup, deps, fmt, fmt-check, lint, test, coverage, dialyzer, e2e, ci"

setup:
$(MIX) setup
Expand Down Expand Up @@ -33,6 +33,19 @@ dialyzer:
$(MIX) deps.get
$(MIX) dialyzer --format short

e2e:
@if [ -z "$$LINEAR_API_KEY" ]; then \
echo "LINEAR_API_KEY is required for \`make e2e\`."; \
echo "Export it first, for example:"; \
echo " export LINEAR_API_KEY=\$$(tr -d '\\r\\n' < ~/.linear_api_key)"; \
exit 1; \
fi
@if ! command -v codex >/dev/null 2>&1; then \
echo "\`codex\` must be on PATH for \`make e2e\`."; \
exit 1; \
fi
SYMPHONY_RUN_LIVE_E2E=1 $(MIX) test test/symphony_elixir/live_e2e_test.exs

ci:
$(MAKE) setup
$(MAKE) build
Expand Down
19 changes: 19 additions & 0 deletions elixir/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,25 @@ The observability UI now runs on a minimal Phoenix stack:
make all
```

Run the real external end-to-end test only when you want Symphony to create disposable Linear
resources and launch a real `codex app-server` session:

```bash
cd elixir
export LINEAR_API_KEY=...
make e2e
```

Optional environment variables:

- `SYMPHONY_LIVE_LINEAR_TEAM_KEY` defaults to `SYME2E`
- `SYMPHONY_LIVE_CODEX_COMMAND` defaults to `codex app-server`

The live test creates a temporary Linear project and issue, writes a temporary `WORKFLOW.md`,
runs a real agent turn, verifies the workspace side effect, requires Codex to comment on and close
the Linear issue, then marks the project completed so the run remains visible in Linear.
`make e2e` fails fast with a clear error if `LINEAR_API_KEY` is unset.

## FAQ

### Why Elixir?
Expand Down
Loading