This is a template repository for a Quarkus-based microservice project. It provides a starting point for new services within our platform ecosystem.
- Click the "Use this template" button on the GitHub repository page
- Choose a name for your new repository
- Select whether to copy only the main branch or all branches
- Create your new repository based on this template
- Built with Quarkus, the Supersonic Subatomic Java Framework
- Kotlin support for service implementation
- Comprehensive CI/CD pipeline
- Integrated with SonarQube for code quality
- Performance testing with K6
- Monitoring and observability with Prometheus
- Branch protection rules
- Native executable support
- Java Development Kit (JDK) 17+
- Maven 3.8.1+
- Docker (optional, for container builds)
- GraalVM (optional, for native compilation)
-
Clone the repository
git clone <repository-url> cd <repository-name>
-
Install dependencies
./mvnw clean install
./mvnw compile quarkus:dev
- Enables live coding
- Access Dev UI at: http://localhost:8080/q/dev/
# Regular JAR
./mvnw package
# Uber JAR
./mvnw package -Dquarkus.package.jar.type=uber-jar
# Native Executable
./mvnw package -Dnative
# Or with container build
./mvnw package -Dnative -Dquarkus.native.container-build=true
- In your new repository, go to Settings > Branches in the left sidebar. The Branch protection rules page opens.
- Select Add branch protection rule to create a new rule.
- Set up protection for the
development
branch:
- In Branch name pattern, enter
development
- Enable Require a pull request before merging
- Under pull request settings, enable:
- Require approvals and set the number to 2
- Dismiss stale pull request approvals when new commits are pushed
- Enable Require status checks to pass before merging
- Enable Require branches to be up to date before merging
- In the status checks search box, search for and select:
build-and-analyze
test
- Select Create to save the rule
- Create another rule for the
main
branch:
- Select Add branch protection rule again
- In Branch name pattern, enter
main
- Enable all settings from the development branch
- Additionally enable:
- Do not allow bypassing the above settings
- Require linear history
- Select Create to save the rule
- Project is set up with SonarQube Cloud
- Automatic analysis is enabled
- New code definition can be customized
- Framework: Quarkus
- Language: Kotlin
- Build Tool: Maven
- Code Quality: SonarQube
- CI/CD: GitHub Actions
- Create a feature branch from
development
- Implement your changes
- Create a pull request to
development
- Automated checks will:
- Run tests
- Perform SonarQube code quality analysis
- Wait for review and approval from team members