A Spring Boot-based banking web application with CI/CD and container / Kubernetes deployment artifacts. This repository contains the Maven project configuration, a Dockerfile for container images, SonarQube configuration for code analysis, and a k8s folder for Kubernetes manifests.
Repository: yogasetiawan11/Github-CI-CD
- Project overview
- Key files
- Technologies
- Prerequisites
- Build & run (local)
- Build & run with Docker
- Tests, coverage & SonarQube
- Kubernetes deployment
- Contributing
- License
- Contact
This project is a Java Spring Boot web application named bankapp (artifactId bankapp) described as a "Banking Web Application" in the Maven configuration. It is packaged as an executable JAR and prepared to be run inside a container.
I inspected the repository and found:
- Maven project file:
pom.xml(Spring Boot 3.3.3, Java 17, jacoco plugin configured) - Dockerfile for running the packaged JAR
- SonarQube properties file:
sonar-project.properties k8sdirectory (Kubernetes manifests)LICENSEat project rootsrctree is present (src/main,src/test) — I could not list every file here; please check the GitHub UI for the full contents.
Relevant links:
- Maven POM: pom.xml
- Dockerfile: Dockerfile
- Sonar config: sonar-project.properties
- Kubernetes manifests folder: k8s/
- Repository: yogasetiawan11/Github-CI-CD
- Java 17
- Spring Boot 3.x
- Maven
- JaCoCo (code coverage)
- SonarQube (static analysis)
- Docker (container)
- Kubernetes (manifests provided)
- MySQL (mysql-connector runtime dependency)
- JDK 17+
- Maven 3.6+
- Docker (if building container images)
- kubectl / Kubernetes cluster (for cluster deployment)
- SonarQube server (optional, for code analysis)
-
Build with Maven:
- mvn clean package
-
The build should produce an executable jar under
target/. The Dockerfile expects the application JAR to be copied fromapp/*.jarat image build time; for local testing you can run the JAR directly:- java -jar target/your-app-name.jar
(Adjust the jar filename according to the artifact created by Maven; the project artifactId is bankapp.)
The repository includes a Dockerfile that runs a Java 17 JDK image and starts the app on port 8080. Example workflow:
-
Build the application JAR:
- mvn clean package -DskipTests
-
Prepare a folder
app/and copy the JAR into it (the Dockerfile copiesapp/*.jar):- mkdir -p app
- cp target/*.jar app/app.jar
-
Build the Docker image:
- docker build -t bankapp:latest .
-
Run the container:
- docker run -p 8080:8080 --rm bankapp:latest
The Dockerfile can be found here: Dockerfile
- The project uses JaCoCo for code coverage and includes jacoco plugin configuration in
pom.xml. - Sonar configuration (
sonar-project.properties) is present and points to tests and binaries for analysis.
To run tests and generate coverage reports:
- mvn test
- mvn jacoco:report (if needed — jacoco plugin is configured in the POM)
To analyze with SonarQube (example):
- Configure your Sonar server and token.
- Run:
- mvn sonar:sonar -Dsonar.projectKey=bank-app -Dsonar.host.url= -Dsonar.login=
Sonar config: sonar-project.properties
A k8s directory is present containing Kubernetes manifests (service/deployment/etc). Deploy to a cluster with:
- kubectl apply -f k8s/
Review and customize resource names, image tags, environment variables, and secrets before applying to production.
k8s directory: k8s/
Contributions are welcome. Suggested workflow:
- Fork the repository
- Create a feature branch
- Commit and push
- Open a pull request describing the change
Add unit/integration tests for new functionality and make sure the pipeline (if present) passes.
This project includes a LICENSE file at the repository root. Review it for permitted uses:
Author: repository owner (yogasetiawan11)