Skip to content

CI/CD Pipeline, Docker Support & Integration Tests#7

Merged
Ryanditko merged 10 commits into
mainfrom
feature/ci-cd
Apr 12, 2026
Merged

CI/CD Pipeline, Docker Support & Integration Tests#7
Ryanditko merged 10 commits into
mainfrom
feature/ci-cd

Conversation

@Ryanditko
Copy link
Copy Markdown
Owner

Description

This PR implements GitHub Actions workflows for automated testing, Docker containerization, and integration tests for EventDispatch. Includes production-ready configuration and documentation.

Changes

CI/CD & GitHub Actions

  • test.yml: Unit tests on Java 17 and 21 with Maven caching
  • quality.yml: Code linting with clj-kondo and coverage reporting
  • release.yml: Automated deployment on version tags
  • project.clj: Added lein-cloverage and lein-zprint plugins

Docker Support

  • Dockerfile: Alpine Linux-based production image with health checks
  • docker-compose.yml: Complete stack with Zookeeper, Kafka, Datomic, and EventDispatch
  • .dockerignore: Optimized build context

Documentation

  • CHANGELOG.md: Version history and features
  • CONTRIBUTING.md: Developer guidelines
  • .github/ISSUE_TEMPLATE/bug_report.yml: Bug report template

Code Fixes

  • http_handler.clj: Fixed create-routes to accept [repository publisher]
  • datomic_repository.clj: Corrected list-all with positional arguments
  • kafka_publisher.clj: Fixed try-catch blocks and removed unused imports
  • core.clj: Simplified server initialization

Integration Tests

  • http_integration_test.clj: End-to-end tests for notification creation, retrieval, listing, error handling, and health checks

Testing

All tests passing:

lein test
lein test event_dispatch.integration.http_integration_test

- Add lein-cloverage for code coverage reporting
- Add coverage failure threshold at 70%
- Add lein-zprint for code formatting checks
- Configure codecov integration
- Add test.yml: Run tests on Java 17 and 21
- Add quality.yml: Code linting and coverage reporting
- Add release.yml: Automated release deployment
- Cache Maven dependencies for faster builds
- Upload test results as artifacts
- Add Dockerfile with Alpine Linux base for small image size
- Add docker-compose.yml with Zookeeper, Kafka, Datomic services
- Add .dockerignore to reduce build context
- Configure health checks for all services
- Set up proper environment variables and networking
- Add CHANGELOG.md with version history
- Add CONTRIBUTING.md with developer guidelines
- Include contribution workflow and best practices
- Add code style guidelines and testing requirements
- Document architecture and git workflow
- Add bug_report.yml template
- Configure required fields for issue submission
- Include environment and reproduction information
- Fix create-routes call to use repository and publisher separately
- Remove unused create-context function
- Use routes directly with jetty/run-jetty
- Remove wrap-application middleware call from core initialization
- Change create-routes signature from [context] to [repository publisher]
- Create context internally from separate adapters
- Simplify route composition with proper function signatures
- Change list-all from named arguments to positional [limit offset]
- Match http_handler call pattern
- Simplify pagination handling
- Remove unused Future import
- Fix callback binding to use _ for unused parameter
- Move docstring to correct position before parameters
- Add return values to try blocks
- Fix try-catch syntax in all publisher operations
- Add integration tests for complete notification workflows
- Test create, retrieve, list, error handling, and health check
- Use mock repository and publisher adapters
- Verify HTTP status codes and response formats
- Test data persistence and retrieval through full stack
@Ryanditko Ryanditko added documentation Improvements or additions to documentation enhancement New feature or request labels Apr 12, 2026
@Ryanditko Ryanditko merged commit 566700b into main Apr 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant