Added resources for the CICD setup

This commit is contained in:
ybandala 2025-02-11 00:24:23 -06:00
parent aa2273e955
commit c9746bb6da
6 changed files with 87 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

28
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,28 @@
name: Build and Deploy
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: ./mvnw package -B
- name: Build Docker Image
run: docker build -t petclinic:${{ github.sha }} .
- name: Test
run: ./mvnw test

13
Dockerfile Normal file
View file

@ -0,0 +1,13 @@
FROM eclipse-temurin:17-jdk-jammy as builder
WORKDIR /app
COPY .mvn/ .mvn
COPY mvnw pom.xml ./
RUN ./mvnw dependency:go-offline
COPY src ./src
RUN ./mvnw package -DskipTests
FROM eclipse-temurin:17-jre-jammy
WORKDIR /app
COPY --from=builder /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

35
k8s/base/deployment.yaml Normal file
View file

@ -0,0 +1,35 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: petclinic
spec:
replicas: 1
selector:
matchLabels:
app: petclinic
template:
metadata:
labels:
app: petclinic
spec:
containers:
- name: petclinic
image: petclinic:latest
ports:
- containerPort: 8080
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
readinessProbe:
httpGet:
path: /actuator/health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
- name: petclinic
image: petclinic:latest
imagePullPolicy: IfNotPresent

11
k8s/base/service.yaml Normal file
View file

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: petclinic
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080
selector:
app: petclinic

0
k8s/deployment.yml Normal file
View file