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
38 changes: 38 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Ploy

Terminal-based deployment tool for AWS services. Defines desired service versions in YAML config files and can verify/deploy them.

## Stack

- Go 1.23, modules
- CLI framework: Cobra
- AWS SDK v2 (Lambda, ECS, EventBridge)
- Config format: YAML

## Project Structure

- `cmd/` - CLI commands (deploy, verify, update)
- `engine/` - Deployment engines (Lambda, ECS, ECS Scheduled Tasks)
- `deployments/` - Config parsing, deploy/verify/update orchestration
- `utils/` - Shared helpers

## Development

No Makefile. Use standard Go commands:

```bash
go build ./...
go test ./...
go install . # install locally
```

## CI/CD

- **PR**: `go build ./...` (`.github/workflows/pr-build.yml`)
- **Release**: Tag `v*.*.*` triggers GoReleaser (`.github/workflows/release.yml`). Create releases via GitHub UI. `source-deployments` picks up the latest release automatically.

## Architecture Notes

- Each deployment engine implements the `DeploymentEngine` interface in `engine/core.go` and registers itself via `RegisterDeploymentEngine` in an `init()` function.
- Config files are per-environment YAML (e.g. `development.yml`, `production.yml`).
- The `update` command only modifies the YAML file; it does not deploy. Run `deploy` separately.
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
Loading