Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services
Utilisez l’intégration continue et la livraison continue d’Azure Pipelines (CI/CD) pour générer, déployer et tester vos projets PHP.
Découvrez comment créer un pipeline PHP, déployer un pipeline avec un exemple de projet sur Azure App Service et comment configurer votre environnement.
Pour en savoir plus sur Azure App Service, consultez Créer une application web PHP dans Azure App Service.
Conditions préalables
Produit | Exigences |
---|---|
Azure DevOps | - Un projet Azure DevOps . - Possibilité d’exécuter des pipelines sur des agents hébergés par Microsoft. Vous pouvez acheter un travail parallèle ou demander un niveau gratuit. - Connaissance de base de YAML et d’Azure Pipelines. Pour plus d’informations, consultez Créer votre premier pipeline. - Autorisations : - Pour créer un pipeline : vous devez être dans le groupe Contributeurs et le groupe doit disposer de la permission Créer un pipeline de build définie sur Autoriser. Les membres du groupe Administrateurs de projet peuvent gérer les pipelines. - Pour créer des connexions de service : vous devez avoir le rôle Administrateur ou Créateur pour les connexions de service. |
Lien avec GitHub | - Un compte GitHub . - Connexion de service GitHub pour autoriser Azure Pipelines. |
Microsoft Azure | Un abonnement Azure. |
Produit | Exigences |
---|---|
Azure DevOps | - Un projet Azure DevOps . - Un agent auto-hébergé. Pour en créer un, consultez les agents auto-hébergés. - Connaissance de base de YAML et d’Azure Pipelines. Pour plus d’informations, consultez Créer votre premier pipeline. - Autorisations : - Pour créer un pipeline : vous devez être dans le groupe Contributeurs et le groupe doit disposer de la permission Créer un pipeline de build définie sur Autoriser. Les membres du groupe Administrateurs de projet peuvent gérer les pipelines. - Pour créer des connexions de service : vous devez avoir le rôle Administrateur ou Créateur pour les connexions de service. |
Lien avec GitHub | - Un compte GitHub . - Connexion de service GitHub pour autoriser Azure Pipelines. |
Microsoft Azure | Un abonnement Azure. |
Si vous allez déployer sur Azure App Service, vous devez créer une application web.
Obtenir le code
Si vous disposez déjà d’une application sur GitHub que vous souhaitez déployer, vous pouvez créer un pipeline pour ce code. Toutefois, si vous êtes un nouvel utilisateur, vous pouvez obtenir un meilleur démarrage en utilisant notre exemple de code. Dans ce cas, fork le dépôt suivant sur GitHub :
https://github.com/Azure-Samples/basic-php-composer
Créer une chaîne de traitement
Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.
Accédez aux pipelines, puis sélectionnez Nouveau pipeline.
Sélectionnez votre emplacement source (GitHub, Azure Repos Git, Bitbucket Cloud ou d’autres référentiels Git).
Sélectionnez le référentiel où se trouve votre code.
Sélectionnez PHP sous l’onglet Configurer .
Vérifiez que la version PHP est 8.3.
Examinez votre nouveau pipeline. Lorsque vous êtes prêt, sélectionnez Enregistrer et exécuter.
Vous êtes invité à valider un nouveau fichier azure-pipelines.yml dans votre référentiel. Sélectionnez Enregistrer et réexécuter .
Si vous souhaitez voir votre pipeline en action, sélectionnez le travail de build.
Vous disposez maintenant d’un pipeline YAML opérationnel (azure-pipelines.yml) dans votre référentiel prêt à être personnalisé !
Lorsque vous souhaitez apporter des modifications à votre pipeline, sélectionnez votre pipeline dans la page Pipelines , puis modifiez le fichier azure-pipelines.yml .
Pour en savoir plus, découvrez quelques-unes des façons les plus courantes de personnaliser votre pipeline.
Déployer sur App Service
Utilisez un pipeline pour générer une application web PHP et déployer sur Azure App Service. Azure App Service est un service HTTP pour l’hébergement d’applications web, d’API REST et de backends mobiles.
Vous pouvez utiliser des tâches pour archiver vos fichiers, publier un artefact de build, puis utiliser la tâche Azure Web App pour effectuer le déploiement sur Azure App Service.
Ce pipeline comporte deux étapes : Générer et déployer. Dans la phase build, PHP 8.3 est installé avec composer. Les fichiers d’application sont archivés et chargés dans un package nommé drop
. Pendant la phase de déploiement, le drop
package est déployé sur Azure App Service en tant qu’application web.
trigger:
- main
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: 'subscription-id'
# Web app name
webAppName: 'web-app-name'
# Agent VM image name
vmImageName: 'ubuntu-22.04'
# Environment name
environmentName: 'environment-name'
# Root folder under which your composer.json file is available.
rootFolder: $(System.DefaultWorkingDirectory)
stages:
- stage: Build
displayName: Build stage
variables:
phpVersion: '8.3'
jobs:
- job: BuildJob
pool:
vmImage: $(vmImageName)
steps:
- script: |
sudo update-alternatives --set php /usr/bin/php$(phpVersion)
sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)
sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)
sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)
php -version
workingDirectory: $(rootFolder)
displayName: 'Use PHP version $(phpVersion)'
- script: composer install --no-interaction --prefer-dist
workingDirectory: $(rootFolder)
displayName: 'Composer install'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(rootFolder)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
displayName: 'Upload package'
artifact: drop
- stage: Deploy
displayName: 'Deploy Web App'
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeploymentJob
pool:
vmImage: $(vmImageName)
environment: $(environmentName)
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Deploy Azure Web App'
inputs:
azureSubscription: $(azureSubscription)
appName: $(webAppName)
package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
Configurer l’environnement de construction
Utilisez Azure Pipelines pour générer vos projets PHP sans configurer l’infrastructure.
Utiliser une version PHP spécifique
PHP est préinstallé sur les agents hébergés par Microsoft, ainsi que de nombreuses bibliothèques courantes par version de PHP. Vous pouvez utiliser des agents Linux, macOS ou Windows pour exécuter vos builds. Pour plus d’informations et les versions exactes de PHP qui sont préinstallées, consultez les agents hébergés par Microsoft.
Sur l’agent Ubuntu hébergé par Microsoft, plusieurs versions de PHP sont installées. Un lien symbolique à /usr/bin/php
pointe vers la version PHP actuellement définie, de sorte que lorsque vous exécutez php
, la version définie est exécutée.
Pour utiliser une version PHP autre que la valeur par défaut, le lien symbolique peut être pointé vers cette version à l’aide de l’outil update-alternatives
. Définissez la version PHP souhaitée en ajoutant l’extrait de code suivant à votre azure-pipelines.yml
fichier et modifiez la valeur de la variable phpVersion .
pool:
vmImage: 'ubuntu-22.04'
variables:
phpVersion: 8.2
steps:
- script: |
sudo update-alternatives --set php /usr/bin/php$(phpVersion)
sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)
sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)
sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)
php -version
displayName: 'Use PHP version $(phpVersion)'
Installer des dépendances
Pour utiliser Composer pour installer des dépendances, ajoutez l’extrait de code suivant à votre azure-pipelines.yml
fichier.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Tester avec phpunit
Pour exécuter des tests avec phpunit, ajoutez l’extrait de code suivant à votre azure-pipelines.yml
fichier.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Conserver l’application PHP avec l’enregistrement de build
Pour enregistrer les artefacts de cette build avec l’enregistrement de build, ajoutez l’extrait de code suivant à votre fichier azure-pipelines.yml
.
Si vous le souhaitez, personnalisez la valeur de rootFolderOrFile pour modifier ce qui est inclus dans l’archive.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Utilisation d’un emplacement de compositeur personnalisé
Si votre composer.json se trouve dans un sous-dossier au lieu du répertoire racine, vous pouvez utiliser l’argument --working-dir
pour indiquer au compositeur quel répertoire utiliser. Par exemple, si votre fichier composer.json se trouve dans le sous-dossier pkgs
composer install --no-interaction --working-dir=pkgs
Vous pouvez également spécifier le chemin absolu à l’aide des variables système intégrées :
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'