PHP-apps bouwen en testen
Azure DevOps Services
Gebruik Continue integratie en continue levering van Azure Pipelines (CI/CD) om uw PHP-projecten te bouwen, implementeren en testen.
Meer informatie over het maken van een PHP-pijplijn, het implementeren van een pijplijn met een voorbeeldproject in Azure-app Service en het configureren van uw omgeving.
Zie Een PHP-web-app maken in Azure-app Service voor meer informatie over Azure-app Service.
Vereisten
Zorg ervoor dat u over de volgende zaken beschikt:
Een GitHub-account waar u een opslagplaats kunt maken. Maak gratis een account.
een Azure DevOps-organisatie. Maak gratis een account. Als uw team er al een heeft, controleert u of u een beheerder bent van het Azure DevOps-project dat u wilt gebruiken.
Een mogelijkheid om pijplijnen uit te voeren op door Microsoft gehoste agents. Als u door Microsoft gehoste agents wilt gebruiken, moet uw Azure DevOps-organisatie toegang hebben tot door Microsoft gehoste parallelle taken. U kunt een parallelle taak aanschaffen of u kunt een gratis subsidie aanvragen.
Een Azure-account. Als u geen account hebt, kunt u er gratis een maken.
Tip
Als u hier nieuw bent, kunt u het eenvoudigst aan de slag met hetzelfde e-mailadres als de eigenaar van zowel de Azure Pipelines-organisatie als het Azure-abonnement.
- Als u naar Azure-app Service gaat implementeren, moet u een web-app hebben gemaakt.
Code ophalen
Als u al een app hebt op GitHub die u wilt implementeren, kunt u een pijplijn voor die code maken. Maar als u een nieuwe gebruiker bent, kunt u beter beginnen met het gebruik van onze voorbeeldcode. In dat geval forkt u de volgende opslagplaats op GitHub:
https://github.com/Azure-Samples/basic-php-composer
Een pipeline maken
Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.
Ga naar pijplijnen en selecteer vervolgens Nieuwe pijplijn.
Selecteer uw bronlocatie (GitHub, Azure Repos Git, Bitbucket Cloud of andere Git-opslagplaatsen).
Selecteer de opslagplaats waar uw code zich bevindt.
Selecteer PHP op het tabblad Configureren .
Zorg ervoor dat de PHP-versie 8.3 is.
Bekijk de nieuwe pijplijn. Wanneer u klaar bent, selecteert u Opslaan en uitvoeren.
U wordt gevraagd een nieuw azure-pipelines.yml-bestand door te voeren naar uw opslagplaats. Selecteer Opslaan en opnieuw uitvoeren .
Als u de pijplijn in actie wilt bekijken, selecteert u de buildtaak.
U hebt nu een werkende YAML-pijplijn (azure-pipelines.yml) in uw opslagplaats die u kunt aanpassen.
Wanneer u wijzigingen wilt aanbrengen in uw pijplijn, selecteert u de pijplijn op de pagina Pijplijnen en bewerkt u het azure-pipelines.yml bestand.
Lees verder voor meer informatie over een aantal veelgebruikte manieren om uw pijplijn aan te passen.
Implementeren naar App Service
Gebruik een pijplijn om een PHP-web-app te bouwen en te implementeren in Azure-app Service. Azure App Service is een op HTTP gebaseerde service voor het hosten van webtoepassingen, REST API's en mobiele back-ends.
U kunt taken gebruiken om uw bestanden te archiveren, een build-artefact te publiceren en vervolgens de Azure Web App-taak te gebruiken om te implementeren in Azure-app Service.
Deze pijplijn heeft twee fasen: Bouwen en implementeren. In de buildfase wordt PHP 8.3 geïnstalleerd met composer. De app-bestanden worden gearchiveerd en geüpload naar een pakket met de naam drop
. Tijdens de implementatiefase wordt het drop
pakket geïmplementeerd in Azure-app Service als web-app.
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
Build-omgeving configureren
Gebruik Azure Pipelines om uw PHP-projecten te bouwen zonder infrastructuur in te stellen.
Een specifieke PHP-versie gebruiken
PHP is vooraf geïnstalleerd op door Microsoft gehoste agents, samen met veel algemene bibliotheken per PHP-versie. U kunt Linux-, macOS- of Windows-agents gebruiken om uw builds uit te voeren. Zie voor meer informatie en de exacte versies van PHP die vooraf worden geïnstalleerd, door Microsoft gehoste agents.
Op de Door Microsoft gehoste Ubuntu-agent worden meerdere versies van PHP geïnstalleerd. Een symlink die /usr/bin/php
verwijst naar de momenteel ingestelde PHP-versie, zodat de setversie wordt uitgevoerd wanneer u deze uitvoert php
.
Als u een andere PHP-versie dan de standaardversie wilt gebruiken, kan de symlink worden verwezen naar die versie met behulp van het update-alternatives
hulpprogramma. Stel de gewenste PHP-versie in door het volgende codefragment toe te voegen aan uw azure-pipelines.yml
bestand en de waarde van de phpVersion-variabele te wijzigen.
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)'
Afhankelijkheden installeren
Als u Composer wilt gebruiken om afhankelijkheden te installeren, voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Testen met phpunit
Als u tests wilt uitvoeren met phpunit, voegt u het volgende codefragment toe aan uw azure-pipelines.yml
bestand.
- script: ./phpunit
displayName: 'Run tests with phpunit'
De PHP-app behouden met de buildrecord
Als u de artefacten van deze build wilt opslaan met de buildrecord, voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
U kunt desgewenst de waarde van rootFolderOrFile aanpassen om de inhoud in het archief te wijzigen.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Een aangepaste locatie voor componisten gebruiken
Als uw composer.json zich in een submap bevindt in plaats van de hoofdmap, kunt u het --working-dir
argument gebruiken om aan te geven welke map moet worden gebruikt. Als uw composer.json zich bijvoorbeeld in de submap bevindt pkgs
composer install --no-interaction --working-dir=pkgs
U kunt ook het absolute pad opgeven met behulp van de ingebouwde systeemvariabelen:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'