Skip to content

modify github action samples #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: azure
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 70 additions & 35 deletions .github/workflows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Deploy to Azure Spring Cloud with Key Vault
on: [push]

env:
RESOURCE_GROUP: petclinic-demo # customize this
AZURE_SUBSCRIPTION: <azure subscription id> # customize this
SPRING_CLOUD_SERVICE: petclinic-demo # customize this
# ==== APPS ====:
API_GATEWAY: api-gateway
Expand Down Expand Up @@ -56,38 +56,73 @@ jobs:
- name: maven build, clean
run: |
mvn clean package -DskipTests -Denv=cloud

- name: Install ASC AZ extension
run: az extension add --name spring-cloud

- name: Deploy with AZ CLI commands
run: |
az configure --defaults group=$RESOURCE_GROUP
az configure --defaults spring-cloud=$SPRING_CLOUD_SERVICE
az spring-cloud app deploy --name $API_GATEWAY \
--jar-path ${{ github.workspace }}/$API_GATEWAY_JAR \
--jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql'
az spring-cloud app deploy --name $ADMIN_SERVER \
--jar-path ${{ github.workspace }}/$ADMIN_SERVER_JAR \
--jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql'
az spring-cloud app deploy --name $CUSTOMERS_SERVICE \
--jar-path ${{ github.workspace }}/$CUSTOMERS_SERVICE_JAR \
--jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' \
--env MYSQL_SERVER_FULL_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-FULL-NAME }} \
MYSQL_DATABASE_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-DATABASE-NAME }} \
MYSQL_SERVER_ADMIN_LOGIN_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-LOGIN-NAME }} \
MYSQL_SERVER_ADMIN_PASSWORD=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-PASSWORD }}
az spring-cloud app deploy --name $VETS_SERVICE \
--jar-path ${{ github.workspace }}/$VETS_SERVICE_JAR \
--jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' \
--env MYSQL_SERVER_FULL_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-FULL-NAME }} \
MYSQL_DATABASE_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-DATABASE-NAME }} \
MYSQL_SERVER_ADMIN_LOGIN_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-LOGIN-NAME }} \
MYSQL_SERVER_ADMIN_PASSWORD=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-PASSWORD }}
az spring-cloud app deploy --name $VISITS_SERVICE \
--jar-path ${{ github.workspace }}/$VISITS_SERVICE_JAR \
--jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' \
--env MYSQL_SERVER_FULL_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-FULL-NAME }} \
MYSQL_DATABASE_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-DATABASE-NAME }} \
MYSQL_SERVER_ADMIN_LOGIN_NAME=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-LOGIN-NAME }} \
MYSQL_SERVER_ADMIN_PASSWORD=${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-PASSWORD }}
- name: Deploy for app api-gateway
uses: Azure/spring-cloud-deploy@v1
with:
azure-subscription: ${{ env.AZURE_SUBSCRIPTION }}
action: deploy
service-name: ${{ env.SPRING_CLOUD_SERVICE }}
app-name: ${{ env.API_GATEWAY }}
create-new-deployment: true
package: ${{ github.workspace }}/${{ env.API_GATEWAY_JAR }}
jvm-options: -Xms2048m -Xmx2048m -Dspring.profiles.active=mysql

- name: Deploy for app admin-server
uses: Azure/spring-cloud-deploy@v1
with:
azure-subscription: ${{ env.AZURE_SUBSCRIPTION }}
action: deploy
service-name: ${{ env.SPRING_CLOUD_SERVICE }}
app-name: ${{ env.ADMIN_SERVER }}
create-new-deployment: true
package: ${{ github.workspace }}/${{ env.ADMIN_SERVER_JAR }}
jvm-options: -Xms2048m -Xmx2048m -Dspring.profiles.active=mysql

- name: Deploy for app customers-service
uses: Azure/spring-cloud-deploy@v1
with:
azure-subscription: ${{ env.AZURE_SUBSCRIPTION }}
action: deploy
service-name: ${{ env.SPRING_CLOUD_SERVICE }}
app-name: ${{ env.CUSTOMERS_SERVICE }}
create-new-deployment: true
package: ${{ github.workspace }}/${{ env.CUSTOMERS_SERVICE_JAR }}
jvm-options: -Xms2048m -Xmx2048m -Dspring.profiles.active=mysql
# Environment variables to be entered using the syntax '-key value'. Values containing spaces should be enclosed in double quotes.
environment-variables: "-MYSQL_SERVER_FULL_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-FULL-NAME }} \
-MYSQL_DATABASE_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-DATABASE-NAME }} \
-MYSQL_SERVER_ADMIN_LOGIN_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-LOGIN-NAME }} \
-MYSQL_SERVER_ADMIN_PASSWORD ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-PASSWORD }}"

- name: Deploy for app vets-service
uses: Azure/spring-cloud-deploy@v1
with:
azure-subscription: ${{ env.AZURE_SUBSCRIPTION }}
action: deploy
service-name: ${{ env.SPRING_CLOUD_SERVICE }}
app-name: ${{ env.VETS_SERVICE }}
create-new-deployment: true
package: ${{ github.workspace }}/{{ env.$VETS_SERVICE_JAR }}
jvm-options: -Xms2048m -Xmx2048m -Dspring.profiles.active=mysql
# Environment variables to be entered using the syntax '-key value'. Values containing spaces should be enclosed in double quotes.
environment-variables: "-MYSQL_SERVER_FULL_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-FULL-NAME }} \
-MYSQL_DATABASE_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-DATABASE-NAME }} \
-MYSQL_SERVER_ADMIN_LOGIN_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-LOGIN-NAME }} \
-MYSQL_SERVER_ADMIN_PASSWORD ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-PASSWORD }}"

- name: Deploy for app visits-service
uses: Azure/spring-cloud-deploy@v1
with:
azure-subscription: ${{ env.AZURE_SUBSCRIPTION }}
action: deploy
service-name: ${{ env.SPRING_CLOUD_SERVICE }}
app-name: ${{ env.VISITS_SERVICE }}
create-new-deployment: true
package: ${{ github.workspace }}/${{ env.VISITS_SERVICE_JAR }}
jvm-options: -Xms2048m -Xmx2048m -Dspring.profiles.active=mysql
# Environment variables to be entered using the syntax '-key value'. Values containing spaces should be enclosed in double quotes.
environment-variables: "-MYSQL_SERVER_FULL_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-FULL-NAME }} \
-MYSQL_DATABASE_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-DATABASE-NAME }} \
-MYSQL_SERVER_ADMIN_LOGIN_NAME ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-LOGIN-NAME }} \
-MYSQL_SERVER_ADMIN_PASSWORD ${{ steps.mysqlsecrets.outputs.MYSQL-SERVER-ADMIN-PASSWORD }}"
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -599,10 +599,10 @@ Then, follow [the steps here](https://docs.microsoft.com/azure/spring-cloud/spri
In the end, add this service principal as secrets named "AZURE_CREDENTIALS" in your forked GitHub repo following [the steps here](https://docs.microsoft.com/en-us/azure/spring-cloud/spring-cloud-github-actions-key-vault#add-access-policies-for-the-credential).

### Customize your workflow
Finally, edit the workfolw file `.github/workflows/action.yml` in your forked repo to fill in the names of resource group and the Azure Spring Cloud instance name that you just created:
Finally, edit the workfolw file `.github/workflows/action.yml` in your forked repo to fill in the azure subscription id and the Azure Spring Cloud instance name that you just created:
```yml
env:
RESOURCE_GROUP: resource-group-name # customize this
AZURE_SUBSCRIPTION: azure-subscription-id # customize this
SPRING_CLOUD_SERVICE: azure-spring-cloud-name # customize this
```
After you commited this change, you will see GitHub Actions triggered to build and deploy all the apps in the repo to your Azure Spring Cloud instance.
Expand Down