Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: refactor cli and ci #2

Merged
merged 2 commits into from
Dec 1, 2024
Merged

refactor: refactor cli and ci #2

merged 2 commits into from
Dec 1, 2024

Conversation

rebelopsio
Copy link
Contributor

Infrastructure as Code CLI and Core Framework

This PR establishes the foundational structure for the TBD Infrastructure as Code tool, implementing the core CLI framework, project initialization, and basic architecture patterns.

Changes

Core Framework

  • Implemented modular project structure with separate binary and library targets
  • Set up core modules for state management, provider interfaces, and configuration
  • Established error handling patterns using anyhow and thiserror
  • Added SQLite-based state management structure
  • Created provider trait for cloud resource management

CLI Implementation

  • Added CLI framework using clap with support for subcommands:
    • init: Project initialization
    • plan: Change preview
    • apply: Apply changes
    • destroy: Resource cleanup
    • show: State display
    • provider: Provider management
  • Implemented project initialization with Python SDK support
  • Added comprehensive help messages and command documentation

Development Infrastructure

  • Set up GitHub Actions CI pipeline
  • Added conventional commits enforcement
  • Configured semantic versioning based on commit messages
  • Added test framework with assert_fs and predicates
  • Created initial integration tests for project initialization

Documentation

  • Added comprehensive README
  • Created CONTRIBUTING.md with commit conventions
  • Added inline documentation for public APIs
  • Included example configurations and usage patterns

Testing

Tests can be run using:

cargo test

Current test coverage includes:

  • Project initialization
  • Directory structure creation
  • Configuration file generation

Checklist

  • Implemented core functionality
  • Added tests
  • Updated documentation
  • Set up CI/CD
  • Added contribution guidelines
  • Reviewed by team
  • Verified test coverage

Future Work

  • AWS provider implementation
  • State backend completion
  • Resource dependency management
  • Testing framework expansion
  • Documentation site setup

Breaking Changes

None - initial implementation

Screenshots

None required for this PR

@rebelopsio rebelopsio merged commit a92e330 into main Dec 1, 2024
3 checks passed
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.

1 participant