Prérequis
Avant de créer votre workflow GitHub Actions, vous devez suivre les étapes de configuration suivantes :
-
Créer un plan Azure App Service.
Par exemple, vous pouvez utiliser Azure CLI pour créer un plan App Service :
Bash az appservice plan create \ --resource-group MY_RESOURCE_GROUP \ --name MY_APP_SERVICE_PLAN \ --is-linux
az appservice plan create \ --resource-group MY_RESOURCE_GROUP \ --name MY_APP_SERVICE_PLAN \ --is-linuxDans la commande ci-dessus, remplacez
MY_RESOURCE_GROUPpar votre groupe de ressources Azure prĂ©existant etMY_APP_SERVICE_PLANpar un nouveau nom pour le plan App Service.Pour plus dâinformations sur lâutilisation dâAzure CLI, consultez la documentation Azure :
- Pour lâauthentification, consultez Se connecter avec Azure CLI.
- Si vous devez créer un groupe de ressources, consultez az group.
-
Créez une application web.
Par exemple, vous pouvez utiliser Azure CLI pour créer une application web Azure App Service avec un runtime Node.js :
Bash az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "NODE|14-lts"az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "NODE|14-lts"Dans la commande ci-dessus, remplacez les paramĂštres par vos propres valeurs, oĂč
MY_WEBAPP_NAMEcorrespond Ă un nouveau nom de lâapplication web. -
Configurez un profil de publication Azure, et créez un secret
AZURE_WEBAPP_PUBLISH_PROFILE.GĂ©nĂ©rez vos informations dâidentification de dĂ©ploiement Azure Ă lâaide dâun profil de publication. Pour plus dâinformations, consultez GĂ©nĂ©rer les informations dâidentification du dĂ©ploiement dans la documentation Azure.
Dans votre dépÎt GitHub, créez un secret nommé
AZURE_WEBAPP_PUBLISH_PROFILE, qui contient le profil de publication. Pour plus dâinformations sur la crĂ©ation de secrets, consultez Utilisation de secrets dans GitHub Actions. -
Si vous le souhaitez, configurez un environnement de déploiement. Les environnements sont utilisés pour décrire une cible de déploiement général comme
production,stagingoudevelopment. Quand un workflow GitHub Actions est dĂ©ployĂ© dans un environnement, lâenvironnement sâaffiche dans la page principale du dĂ©pĂŽt. Vous pouvez utiliser les environnements pour exiger lâapprobation dâun travail, restreindre les branches pouvant dĂ©clencher un flux de travail, contrĂŽler les dĂ©ploiements avec des rĂšgles personnalisĂ©es de protection des dĂ©ploiements ou limiter lâaccĂšs aux secrets. Pour plus dâinformations sur la crĂ©ation dâenvironnements, consultez Gestion des environnements pour le dĂ©ploiement.
Création du workflow
Une fois les conditions préalables remplies, vous pouvez procéder à la création du workflow.
Lâexemple de workflow suivant montre comment crĂ©er, tester et dĂ©ployer le projet Node.js sur Azure App Service lorsquâil existe une poussĂ©e (push) vers la branche main.
Veillez Ă dĂ©finir le paramĂštre AZURE_WEBAPP_NAME de la clĂ© env du workflow sur le nom de lâapplication web que vous avez créée. Si le chemin dâaccĂšs Ă votre projet nâest pas la racine du dĂ©pĂŽt, remplacez AZURE_WEBAPP_PACKAGE_PATH par le chemin dâaccĂšs de votre projet. Si vous utilisez une version de Node.js autre que 10.x, remplacez NODE_VERSION par la version que vous utilisez.
Si vous avez configurĂ© un environnement de dĂ©ploiement, remplacez la valeur environment par le nom de votre environnement. Si vous nâavez pas configurĂ© dâenvironnement ou si votre workflow se trouve dans un rĂ©fĂ©rentiel privĂ© et que vous nâutilisez pas GitHub Enterprise Cloud, supprimez la clĂ© environment.
# Ce workflow utilise des actions qui ne sont pas certifiées par GitHub.
# Elles sont fournies par un tiers et régies par
# des conditions dâutilisation du service, une politique de confidentialitĂ© et un support distincts.
# documentation en ligne.
# GitHub recommande dâĂ©pingler les actions Ă un SHA de commit.
# Pour obtenir une version plus récente, vous devez mettre à jour le SHA.
# Vous pouvez Ă©galement rĂ©fĂ©rencer une balise ou une branche, mais lâaction peut changer sans avertissement.
on:
push:
branches:
- main
env:
AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name
AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
NODE_VERSION: '14.x' # set this to the node version to use
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: node-app
path: .
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v5
with:
name: node-app
- name: 'Deploy to Azure WebApp'
id: deploy-to-webapp
uses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7c
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
# Ce workflow utilise des actions qui ne sont pas certifiées par GitHub.
# Elles sont fournies par un tiers et régies par
# des conditions dâutilisation du service, une politique de confidentialitĂ© et un support distincts.
# documentation en ligne.
# GitHub recommande dâĂ©pingler les actions Ă un SHA de commit.
# Pour obtenir une version plus récente, vous devez mettre à jour le SHA.
# Vous pouvez Ă©galement rĂ©fĂ©rencer une balise ou une branche, mais lâaction peut changer sans avertissement.
on:
push:
branches:
- main
env:
AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name
AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
NODE_VERSION: '14.x' # set this to the node version to use
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: node-app
path: .
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v5
with:
name: node-app
- name: 'Deploy to Azure WebApp'
id: deploy-to-webapp
uses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7c
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
Pour aller plus loin
- Pour le modĂšle de workflow dâorigine, consultez
azure-webapps-node.ymldans le rĂ©fĂ©rentiel GitHub Actionsstarter-workflows. - Lâaction utilisĂ©e pour dĂ©ployer lâapplication web est lâaction Azure
Azure/webapps-deployofficielle. - Pour obtenir dâautres exemples de workflows GitHub Action qui se dĂ©ploient sur Azure, reportez-vous au dĂ©pĂŽt actions-workflow-samples.
- Le guide de dĂ©marrage rapide « CrĂ©er une application web Node.js dans Azure » dans la documentation de lâapplication web Azure illustre lâutilisation de Visual Studio Code avec lâextension Azure App Service.