diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..852ca24a8e1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java CI with Maven + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + commit: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Build with Maven + run: mvn -B package --file pom.xml + + # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive + - name: Update dependency graph + uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000000..678479d8f16 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM schoolofdevops/maven:spring + +WORKDIR /app + +COPY . . + +RUN mvn package && \ + mv target/spring-petclinic-2.3.1.BUILD-SNAPSHOT.jar /run/petclinic.jar + +EXPOSE 8080 + +CMD java -jar /run/petclinic.jar + diff --git a/manifest.yml b/manifest.yml new file mode 100644 index 00000000000..0f88f56840c --- /dev/null +++ b/manifest.yml @@ -0,0 +1,37 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mavenwebappdeployment +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: mavenwebapp + template: + metadata: + name: mavenwebapppod + labels: + app: mavenwebapp + spec: + containers: + - name: mavenwebappcontainer + image: willywan/pet_app + imagePullPolicy: Always + ports: + - containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: + name: mavenwebappsvc +spec: + type: LoadBalancer + selector: + app: mavenwebapp + ports: + - port: 80 + targetPort: 8080 +...