From d93c66e30dbfca0295ed621c6ccf50b69db24ddf Mon Sep 17 00:00:00 2001 From: anishi1222 Date: Mon, 1 May 2023 19:19:36 +0900 Subject: [PATCH] use azure/spring-apps-deploy --- .github/workflows/action.yml | 162 +++++++++++++++++++++++++---------- 1 file changed, 116 insertions(+), 46 deletions(-) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 8cdb1db0f..0080383f8 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -1,54 +1,124 @@ -name: Deploy any services to Spring Apps +name: Deploy to Azure Spring Apps using passwordless connections (build with maven) on: - workflow_dispatch: + push: + branches: + - azure permissions: id-token: write contents: read +env: + # ==== APPS ====: + API_GATEWAY: api-gateway + ADMIN_SERVER: admin-server + CUSTOMERS_SERVICE: customers-service + VETS_SERVICE: vets-service + VISITS_SERVICE: visits-service + # ==== JARS ====: + API_GATEWAY_JAR: spring-petclinic-api-gateway/target/spring-petclinic-api-gateway-3.0.6.jar + ADMIN_SERVER_JAR: spring-petclinic-admin-server/target/spring-petclinic-admin-server-3.0.6.jar + CUSTOMERS_SERVICE_JAR: spring-petclinic-customers-service/target/spring-petclinic-customers-service-3.0.6.jar + VETS_SERVICE_JAR: spring-petclinic-vets-service/target/spring-petclinic-vets-service-3.0.6.jar + VISITS_SERVICE_JAR: spring-petclinic-visits-service/target/spring-petclinic-visits-service-3.0.6.jar + jobs: - call-deploy_API_Gateway: - uses: anishi1222/spring-petclinic-microservices/.github/workflows/action-api-gateway.yml@azure - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - SPRING_APPS_SERVICE_NAME: ${{ secrets.SPRING_APPS_SERVICE_NAME }} - RESOURCE_GROUP: ${{ secrets.RESOURCE_GROUP }} - - call-deploy_Admin_Server: - uses: anishi1222/spring-petclinic-microservices/.github/workflows/action-admin-server.yml@azure - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - SPRING_APPS_SERVICE_NAME: ${{ secrets.SPRING_APPS_SERVICE_NAME }} - RESOURCE_GROUP: ${{ secrets.RESOURCE_GROUP }} - - call-deploy_Customers_Service: - uses: anishi1222/spring-petclinic-microservices/.github/workflows/action-customers-service.yml@azure - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - SPRING_APPS_SERVICE_NAME: ${{ secrets.SPRING_APPS_SERVICE_NAME }} - RESOURCE_GROUP: ${{ secrets.RESOURCE_GROUP }} - - call-deploy_Vets_Service: - uses: anishi1222/spring-petclinic-microservices/.github/workflows/action-vets-service.yml@azure - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - SPRING_APPS_SERVICE_NAME: ${{ secrets.SPRING_APPS_SERVICE_NAME }} - RESOURCE_GROUP: ${{ secrets.RESOURCE_GROUP }} - - call-deploy_Visits_Service: - uses: anishi1222/spring-petclinic-microservices/.github/workflows/action-visits-service.yml@azure - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - SPRING_APPS_SERVICE_NAME: ${{ secrets.SPRING_APPS_SERVICE_NAME }} - RESOURCE_GROUP: ${{ secrets.RESOURCE_GROUP }} + build: + runs-on: ubuntu-latest + steps: + - name: Azure CLI Login + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + + - name: Checkout your repo + uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'microsoft' + cache: maven + + - name: build with maven + run: | + mvn -B package -DskipTests + + - name: Deploy api-gateway + uses: azure/spring-apps-deploy@v1 + with: + azure-subscription: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + action: deploy + service-name: ${{ secrets.SPRING_APPS_SERVICE_NAME }} + app-name: ${{ env.API_GATEWAY }} + use-staging-deployment: false + package: ${{ github.workspace }}/${{ env.API_GATEWAY_JAR }} + jvm-options: -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=66.6 -XX:MaxRAMPercentage=66.6 + runtime-version: Java_17 + cpu: 1 + memory: 3Gi + environment-variables: -SPRING_PROFILES_ACTIVE passwordless BP_JVM_VERSION=17 + + - name: Deploy admin-server + uses: azure/spring-apps-deploy@v1 + with: + azure-subscription: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + action: deploy + service-name: ${{ secrets.SPRING_APPS_SERVICE_NAME }} + app-name: ${{ env.ADMIN_SERVER }} + use-staging-deployment: false + package: ${{ github.workspace }}/${{ env.ADMIN_SERVER_JAR }} + jvm-options: -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=66.6 -XX:MaxRAMPercentage=66.6 + runtime-version: Java_17 + cpu: 1 + memory: 3Gi + environment-variables: -SPRING_PROFILES_ACTIVE passwordless BP_JVM_VERSION=17 + + - name: Deploy customers-service + uses: azure/spring-apps-deploy@v1 + with: + azure-subscription: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + action: deploy + service-name: ${{ secrets.SPRING_APPS_SERVICE_NAME }} + app-name: ${{ env.CUSTOMERS_SERVICE }} + use-staging-deployment: false + package: ${{ github.workspace }}/${{ env.CUSTOMERS_SERVICE_JAR }} + jvm-options: -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=66.6 -XX:MaxRAMPercentage=66.6 + runtime-version: Java_17 + cpu: 1 + memory: 3Gi + environment-variables: -SPRING_PROFILES_ACTIVE passwordless BP_JVM_VERSION=17 + + - name: Deploy vets-service + uses: azure/spring-apps-deploy@v1 + with: + azure-subscription: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + action: deploy + service-name: ${{ secrets.SPRING_APPS_SERVICE_NAME }} + app-name: ${{ env.VETS_SERVICE }} + use-staging-deployment: false + package: ${{ github.workspace }}/${{ env.VETS_SERVICE_JAR }} + jvm-options: -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=66.6 -XX:MaxRAMPercentage=66.6 + runtime-version: Java_17 + cpu: 1 + memory: 3Gi + environment-variables: -SPRING_PROFILES_ACTIVE passwordless BP_JVM_VERSION=17 + + - name: Deploy visits-service + uses: azure/spring-apps-deploy@v1 + with: + azure-subscription: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + action: deploy + service-name: ${{ secrets.SPRING_APPS_SERVICE_NAME }} + app-name: ${{ env.VISITS_SERVICE }} + use-staging-deployment: false + package: ${{ github.workspace }}/${{ env.VISITS_SERVICE_JAR }} + jvm-options: -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=66.6 -XX:MaxRAMPercentage=66.6 + runtime-version: Java_17 + cpu: 1 + memory: 3Gi + environment-variables: -SPRING_PROFILES_ACTIVE passwordless BP_JVM_VERSION=17 \ No newline at end of file