Skip to content

Add E2E lifecycle test and CI workflow#43

Merged
ret2libc merged 11 commits intomainfrom
e2e-test
Mar 24, 2026
Merged

Add E2E lifecycle test and CI workflow#43
ret2libc merged 11 commits intomainfrom
e2e-test

Conversation

@ret2libc
Copy link
Collaborator

@ret2libc ret2libc commented Feb 23, 2026

Summary

  • Add E2E lifecycle test (tests/e2e/test_lifecycle.sh) that exercises the full create → SSH → destroy workflow against a real DigitalOcean droplet
  • Document E2E testing in CLAUDE.md, README.md, and add a make e2e target
  • Have this just as a manual prek hook prek run --stage manual because it is too long to run as a pre-commit or pre-push hook.

Test plan

  • Run shellcheck tests/e2e/test_lifecycle.sh — passes with only informational notes
  • Run make helpe2e target appears in output
  • Run ./tests/e2e/test_lifecycle.sh locally with valid config — full lifecycle completes

🤖 Generated with Claude Code

ret2libc and others added 4 commits February 23, 2026 12:04
  Bash script that exercises the full droplet lifecycle: create (no
  Tailscale), verify SSH config, run commands over SSH, destroy, and
  verify cleanup. Designed for CI reuse with env-var overrides and
  trap-based cleanup on failure.

  Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
  Runs the lifecycle test every Monday at 06:00 UTC (also manually
  triggerable via workflow_dispatch). Uses the smallest droplet size
  to minimize cost.

  Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The zsh PROMPT string contains `%` sequences that Jinja2 interprets
as template syntax. Wrap in {% raw %}...{% endraw %} to preserve
the literal prompt definition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add E2E test requirement to critical rules, document the test in both
CLAUDE.md and README.md development sections, and add a `make e2e`
target. Fix help grep pattern to include digits so `e2e` appears.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ret2libc and others added 5 commits March 19, 2026 18:07
Remove the GitHub Actions E2E workflow — storing DO credentials in CI
is not feasible securely. Instead, add the E2E lifecycle test as a
pre-push hook via prek so developers run it locally with their own
credentials before pushing.

Hardcode test defaults (nyc3, s-1vcpu-1gb, ubuntu-24-04-x64) so the
tests are deterministic and don't depend on user config values.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
prek only installs pre-commit hooks by default; the pre-push stage
needs an explicit install command.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pre-push hooks block the git SSH connection to the remote, which
times out and kills the push before the E2E test finishes. Use a
manual stage instead — developers run `prek run --stage manual`
before pushing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ret2libc ret2libc requested review from BradSwain and DarkaMaul March 20, 2026 10:18
Co-authored-by: dm <alexis.challande@trailofbits.com>
@ret2libc ret2libc requested a review from DarkaMaul March 24, 2026 08:45
Copy link
Collaborator

@DarkaMaul DarkaMaul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@ret2libc ret2libc merged commit f6bb0e9 into main Mar 24, 2026
7 checks passed
@ret2libc ret2libc deleted the e2e-test branch March 24, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants