Skip to content

Adjust workflows to deploy to Minikube #16

Adjust workflows to deploy to Minikube

Adjust workflows to deploy to Minikube #16

Workflow file for this run

# 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:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build_api_gateway:
runs-on: ubuntu-latest
# https://stackoverflow.com/a/70448851
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build api-gateway with Maven
run: mvn -B package --file api-gateway/pom.xml
- name: Start minikube
uses: medyagh/setup-minikube@master
- name: Try the cluster !
run: kubectl get pods -A
- name: Build image
run: |
pwd
ls -la
eval $(minikube -p minikube docker-env)
cd api-gateway/
pwd
ls -la
docker build -t api-gateway .
echo -n "verifying images:"
docker images
- name: Deploy to minikube
run: |
pwd
ls -la
kubectl apply -f api-gateway/.helm/templates/k8s-api-gateway-app.yaml
- name: Test service URLs
run: |
minikube service list
SERVICE_URL=$(minikube service api-gateway-service --url)
HEALTH_URL="$SERVICE_URL/actuator/health"
echo "Service URL: $SERVICE_URL"
echo "Health URL: $HEALTH_URL"
echo "------------------opening the health endpoint------------------"
curl $HEALTH_URL
build_openai_service:
runs-on: ubuntu-latest
# https://stackoverflow.com/a/70448851
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build openai-service with Maven
run: mvn -B package --file openai-service/pom.xml
build_payment_service:
runs-on: ubuntu-latest
# https://stackoverflow.com/a/70448851
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build payment-service with Maven
run: mvn -B package --file payment-service/pom.xml
build_service_registry:
runs-on: ubuntu-latest
# https://stackoverflow.com/a/70448851
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build service-registry with Maven
run: mvn -B package --file service-registry/pom.xml
build_student_service:
runs-on: ubuntu-latest
# https://stackoverflow.com/a/70448851
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build student-service with Maven
run: mvn -B package --file student-service/pom.xml
build_swagger_application:
runs-on: ubuntu-latest
# https://stackoverflow.com/a/70448851
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build swagger-application with Maven
run: mvn -B package --file swagger-application/pom.xml
success-job:
runs-on: ubuntu-latest
if: ${{ always() && contains(join(needs.*.result, ','), 'success') }}
needs: [ build_api_gateway, build_openai_service, build_payment_service, build_service_registry, build_student_service, build_swagger_application ]
steps:
- name: Build is Succeeded
env:
NEEDS: ${{ toJSON(needs) }}
run: |
echo "$NEEDS"