Skip to content

Merge pull request #1 from gopinathsjsu/authService-initial-commit #1

Merge pull request #1 from gopinathsjsu/authService-initial-commit

Merge pull request #1 from gopinathsjsu/authService-initial-commit #1

Workflow file for this run

name: Spring Boot CI/CD
on:
push:
branches: [ main ]
paths: [ 'backend/bookTable/**' ] # Trigger only when backend files change
jobs:
build-test-coverage:
name: Build, Test, Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set Up Java 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- name: Grant Gradle Wrapper Permissions
run: chmod +x ./gradlew
working-directory: ./backend/bookTable
- name: Build, Test, and Check Coverage
run: ./gradlew clean build test jacocoTestReport jacocoTestCoverageVerification
working-directory: ./backend/bookTable
- name: Upload Coverage Report
uses: actions/upload-artifact@v3
with:
name: jacoco-coverage-report
path: backend/bookTable/build/reports/jacoco/test/html/
- name: Upload JAR Artifact
uses: actions/upload-artifact@v3
with:
name: spring-boot-jar
path: backend/bookTable/build/libs/*.jar
deploy-to-aws:
needs: build-test-coverage
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set Up Java 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- name: Download JAR Artifact
uses: actions/download-artifact@v3
with:
name: spring-boot-jar
path: backend/bookTable/build/libs/
- name: Set Up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-1
- name: Login to Amazon ECR
run: |
aws ecr get-login-password --region us-west-1 | docker login --username AWS --password-stdin 061039807046.dkr.ecr.us-west-1.amazonaws.com
- name: Build, Tag, and Push to ECR
working-directory: ./backend/bookTable
run: |
docker build -t booktable-app .
docker tag booktable-app:latest 061039807046.dkr.ecr.us-west-1.amazonaws.com/booktable-app:latest
docker push 061039807046.dkr.ecr.us-west-1.amazonaws.com/booktable-app:latest
- name: Install EB CLI
run: pip install awsebcli --upgrade
- name: Deploy to Elastic Beanstalk
working-directory: ./backend/bookTable
run: |
echo '{"AWSEBDockerrunVersion": "1", "Image": {"Name": "061039807046.dkr.ecr.us-west-1.amazonaws.com/booktable-app:latest", "Update": "true"}, "Ports": [{"ContainerPort": 8080, "HostPort": 80}]}' > Dockerrun.aws.json
zip -r app.zip Dockerrun.aws.json
eb deploy booktable-app-env