title | intro | versions | type | topics | redirect_from | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Deploying Java to Azure App Service | You can deploy your Java project to Azure App Service as part of your continuous deployment (CD) workflows. |
| tutorial |
|
|
{% data reusables.actions.enterprise-github-hosted-runners %}
This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a Java project to Azure App Service.
Note
{% data reusables.actions.about-oidc-short-overview %} and AUTOTITLE.
Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps:
{% data reusables.actions.create-azure-app-plan %}
Create a web app.
For example, you can use the Azure CLI to create an Azure App Service web app with a Java runtime:
az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "JAVA|11-java11"
In the command above, replace the parameters with your own values, where
MY_WEBAPP_NAME
is a new name for the web app.
{% data reusables.actions.create-azure-publish-profile %}
- Optionally, configure a deployment environment. {% data reusables.actions.about-environments %}
Once you've completed the prerequisites, you can proceed with creating the workflow.
The following example workflow demonstrates how to build and deploy a Java project to Azure App Service when there is a push to the main
branch.
Ensure that you set AZURE_WEBAPP_NAME
in the workflow env
key to the name of the web app you created. If you want to use a Java version other than 11
, change JAVA_VERSION
.
{% data reusables.actions.delete-env-key %}
{% data reusables.actions.actions-not-certified-by-github-comment %}{% data reusables.actions.actions-use-sha-pinning-comment %}name: Build and deploy JAR app to Azure Web Appenv: AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's nameJAVA_VERSION: '11'# set this to the Java version to useon: push: branches: - mainjobs: build: runs-on: ubuntu-lateststeps: - uses: {% data reusables.actions.action-checkout %} - name: Set up Java versionuses: {% data reusables.actions.action-setup-java %}with: java-version: {% raw %}${{ env.JAVA_VERSION }}{% endraw %}cache: 'maven' - name: Build with Mavenrun: mvn clean install - name: Upload artifact for deployment jobuses: {% data reusables.actions.action-upload-artifact %}with: name: java-apppath: '{% raw %}${{ github.workspace }}{% endraw %}/target/*.jar'deploy: runs-on: ubuntu-latestneeds: buildenvironment: name: 'production'url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %}steps: - name: Download artifact from build jobuses: {% data reusables.actions.action-download-artifact %}with: name: java-app - name: Deploy to Azure Web Appid: deploy-to-webappuses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7cwith: app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %}publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %}package: '*.jar'
The following resources may also be useful:
- For the original workflow template, see
azure-webapps-java-jar.yml
in the {% data variables.product.prodname_actions %}starter-workflows
repository. - The action used to deploy the web app is the official Azure
Azure/webapps-deploy
action. - For more examples of GitHub Action workflows that deploy to Azure, see the actions-workflow-samples repository.