Vytváření a testování aplikací PHP
Služby Azure DevOps
Pomocí kontinuální integrace a průběžného doručování (CI/CD) v Azure Pipelines můžete vytvářet, nasazovat a testovat projekty PHP.
Zjistěte, jak vytvořit kanál PHP, nasadit kanál s ukázkovým projektem do služby Aplikace Azure Service a jak nakonfigurovat vaše prostředí.
Další informace o službě Aplikace Azure Najdete v tématu Vytvoření webové aplikace PHP ve službě Aplikace Azure Service.
Požadavky
Ujistěte se, že máte následující položky:
Účet GitHubu, kde můžete vytvořit úložiště. Vytvořte si ho zdarma.
Organizace Azure DevOps. Vytvořte si ho zdarma. Pokud už ho váš tým má, ujistěte se, že jste správcem projektu Azure DevOps, který chcete použít.
Možnost spouštět kanály na agentech hostovaných Microsoftem Pokud chcete používat agenty hostované Microsoftem, musí mít vaše organizace Azure DevOps přístup k paralelním úlohům hostovaným Microsoftem. Můžete si buď koupit paralelní úlohu , nebo můžete požádat o bezplatné udělení.
Účet Azure. Pokud jej nemáte, můžete si jej zdarma vytvořit.
Tip
Pokud s tím začínáte, nejjednodušší způsob, jak začít, je použít stejnou e-mailovou adresu jako vlastník organizace Azure Pipelines i předplatné Azure.
- Pokud se chystáte nasadit do služby Aplikace Azure Service, musíte mít vytvořenou webovou aplikaci.
Získání kódu
Pokud už máte aplikaci na GitHubu, kterou chcete nasadit, můžete pro tento kód vytvořit kanál. Pokud jste ale nový uživatel, možná získáte lepší začátek používáním našeho ukázkového kódu. V takovém případě forkujte následující úložiště na GitHubu:
https://github.com/Azure-Samples/basic-php-composer
Vytvořit kanál
Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.
Přejděte do kanálů a pak vyberte Nový kanál.
Vyberte umístění zdroje (GitHub, Azure Repos Git, Bitbucket Cloud nebo jiná úložiště Git).
Vyberte úložiště, ve kterém se nachází váš kód.
Na kartě Konfigurace vyberte PHP.
Ujistěte se, že verze PHP je 8.3.
Prozkoumejte nový kanál. Až budete připraveni, vyberte Uložit a spustit.
Zobrazí se výzva k potvrzení nového souboru azure-pipelines.yml do úložiště. Vyberte Uložit a spusťte znovu.
Pokud chcete sledovat kanál v akci, vyberte úlohu sestavení.
Teď máte v úložišti funkční kanál YAML (azure-pipelines.yml), který je připravený k přizpůsobení.
Pokud chcete v kanálu udělat změny, vyberte kanál na stránce Pipelines a pak upravte azure-pipelines.yml soubor.
Přečtěte si další informace o některých nejběžnějších způsobech přizpůsobení kanálu.
Nasazení do App Service
Pomocí kanálu sestavte webovou aplikaci PHP a nasaďte ji do služby Aplikace Azure Service. Aplikace Azure Service je služba založená na protokolu HTTP pro hostování webových aplikací, rozhraní REST API a mobilních back-endů.
Úlohy můžete použít k archivaci souborů, publikování artefaktu sestavení a následnému nasazení úlohy webové aplikace Azure do služby Aplikace Azure Service.
Tento kanál má dvě fáze: sestavení a nasazení. Ve fázi sestavení je PHP 8.3 nainstalován se skladatelem. Soubory aplikace se archivují a nahrají do balíčku s názvem drop
. Během fáze drop
nasazení se balíček nasadí do služby Aplikace Azure Service jako webová aplikace.
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-20.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
Konfigurace prostředí sestavení
Pomocí Azure Pipelines můžete vytvářet projekty PHP bez nastavení infrastruktury.
Použití konkrétní verze PHP
PHP je předinstalovaný na agentech hostovaných Microsoftem spolu s mnoha běžnými knihovnami na verzi PHP. Ke spouštění sestavení můžete použít agenty pro Linux, macOS nebo Windows. Další informace a přesné verze PHP, které jsou předinstalované, najdete v tématu Agenti hostovaní Microsoftem.
Na agentu Ubuntu hostovaném Microsoftem se nainstaluje několik verzí PHP. Symlink odkazuje na /usr/bin/php
aktuálně nastavenou verzi PHP, takže při spuštění php
se spustí sada verze.
Pokud chcete použít jinou verzi PHP než výchozí, můžete odkazovat na tuto verzi pomocí update-alternatives
nástroje. Nastavte požadovanou verzi PHP tak, že do azure-pipelines.yml
souboru přidáte následující fragment kódu a změníte hodnotu proměnné phpVersion .
pool:
vmImage: 'ubuntu-20.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)'
Instalace závislostí
Pokud chcete k instalaci závislostí použít Composer, přidejte do azure-pipelines.yml
souboru následující fragment kódu.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Testování s phpunit
Pokud chcete spustit testy s phpunit, přidejte do azure-pipelines.yml
souboru následující fragment kódu.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Zachování aplikace PHP se záznamem buildu
Pokud chcete uložit artefakty tohoto sestavení se záznamem sestavení, přidejte do azure-pipelines.yml
souboru následující fragment kódu.
Volitelně můžete upravit hodnotu rootFolderOrFile tak, aby změnila, co je součástí archivu.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Použití vlastního umístění skladatele
Pokud je váš composer.json v podsložce místo kořenového adresáře, můžete argumentem --working-dir
sdělit skladateli, jaký adresář použít. Pokud je například váš composer.json uvnitř podsložky pkgs
composer install --no-interaction --working-dir=pkgs
Absolutní cestu můžete zadat také pomocí předdefinovaných systémových proměnných:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'