Générer et tester des applications PHP
Azure DevOps Services
Utilisez l’intégration continue et la livraison continue (CI/CD) d’Azure Pipelines pour générer, déployer et tester vos projets PHP.
Découvrez comment générer un pipeline PHP, déployer un pipeline avec un échantillon 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.
Prérequis
Vérifiez que vous disposez des éléments suivants :
Un compte GitHub dans lequel vous pouvez créer un référentiel. Créez-en un gratuitement.
Une organisation Azure DevOps. Créez-en un gratuitement. Si votre équipe en a déjà une, vérifiez que vous êtes bien un administrateur du projet Azure DevOps que vous souhaitez utiliser.
Possibilité d’exécuter des pipelines sur des agents hébergés par Microsoft. Pour utiliser des agents hébergés par Microsoft, votre organisation Azure DevOps doit avoir accès aux travaux parallèles hébergés par Microsoft. Vous pouvez acheter un travail parallèle ou demander un octroi gratuit.
Un compte Azure. Si vous n’en avez pas, vous pouvez en créer un gratuitement.
Conseil
Si vous débutez, le moyen le plus simple de commencer consiste à utiliser la même adresse e-mail que le propriétaire de l’organisation Azure Pipelines et de l’abonnement Azure.
- Si vous comptez déployer vers Azure App Service, vous devez avoir créé une webapp.
Obtenir le code
Si vous disposez déjà d’une application dans GitHub que vous souhaitez déployer, vous pouvez créer un pipeline pour ce code. Toutefois, si vous êtes un nouvel utilisateur, nous vous conseillons de commencer avec notre exemple de code. Dans ce cas, dupliquez (fork) le référentiel suivant sur GitHub :
https://github.com/Azure-Samples/basic-php-composer
Créer un pipeline
Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.
Allez dans Pipelines, puis sélectionnez Nouveau pipeline.
Sélectionnez l'emplacement de votre 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 dans l’onglet Configurer.
Assurez-vous que la version de PHP est bien la 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 de nouveau Save and run (Enregistrer et 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 qui est prêt à être personnalisé !
Lorsque vous souhaitez apporter des modifications à votre pipeline, sélectionnez-le dans la page Pipelines, puis Modifiez le fichier azure-pipelines.yml.
Lisez la suite pour découvrir quelques-unes des façons les plus courantes de personnaliser votre pipeline.
Déployer sur App Service
Utiliser un pipeline pour générer une application web PHP et déployer sur Azure App Service. Azure App Service est un service basé sur HTTP pour l’hébergement d’applications web, d’API REST et de back-ends mobiles.
Vous pouvez utiliser des tâches pour archiver vos fichiers, publier un artefact de build, puis utiliser la tâche Application web Azure pour déployer sur Azure App Service.
Ce pipeline comporte deux étapes : Construire et Déployer. Dans la phase Construction, 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 package drop
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-latest'
# 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 build
Utilisez Azure Pipelines pour générer vos projets PHP sans configurer l’infrastructure.
Utiliser une version de 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 obtenir plus d’informations et les versions exactes de PHP qui sont préinstallées, consultez 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 de PHP actuellement définie, de sorte que lorsque vous exécutez php
, la version définie s’exécute.
Pour utiliser une version de PHP autre que la version par défaut, le lien symbolique peut être pointé vers cette version à l’aide de l’outil update-alternatives
. Définissez la version de PHP souhaitée en ajoutant l’extrait de code suivant à votre fichier azure-pipelines.yml
et modifiez la valeur de la variable phpVersion.
pool:
vmImage: 'ubuntu-latest'
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 fichier azure-pipelines.yml
.
- 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 fichier azure-pipelines.yml
.
- 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 personnalisé de Composer
Si votre fichier composer.json se trouve dans un sous-dossier au lieu du répertoire racine, vous pouvez utiliser l’argument --working-dir
pour indiquer à Composer 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 d’accès absolu à l’aide des variables système intégrées :
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour