Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Serviços do Azure DevOps
Use a CI/CD (integração contínua e entrega contínua) do Azure Pipelines para criar, implantar e testar seus projetos php.
Saiba como criar um pipeline php, implantar um pipeline com um projeto de exemplo no Serviço de Aplicativo do Azure e como configurar seu ambiente.
Para saber mais sobre o Serviço de Aplicativo do Azure, consulte Criar um aplicativo Web PHP no Serviço de Aplicativo do Azure.
Pré-requisitos
Produto | Requisitos |
---|---|
Azure DevOps | - Um projeto do Azure DevOps. – Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar uma camada gratuita. – Conhecimento básico do YAML e do Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline. - Permissões: - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de build definida como Permitir. Os membros do grupo Administradores do Projeto podem gerenciar pipelines. – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço. |
GitHub | - Uma conta do GitHub . – Uma conexão de serviço do GitHub para autorizar o Azure Pipelines. |
Azul | Uma assinatura do Azure. |
Produto | Requisitos |
---|---|
Azure DevOps | - Um projeto do Azure DevOps. - Um agente auto-hospedado. Para criar um, consulte Agentes auto-hospedados. – Conhecimento básico do YAML e do Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline. - Permissões: - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de build definida como Permitir. Os membros do grupo Administradores do Projeto podem gerenciar pipelines. – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço. |
GitHub | - Uma conta do GitHub . – Uma conexão de serviço do GitHub para autorizar o Azure Pipelines. |
Azul | Uma assinatura do Azure. |
Se você pretende implantar no Serviço de Aplicativo do Azure, precisará criar um aplicativo Web.
Obter o código
Se você já tiver um aplicativo no GitHub que deseja implantar, poderá criar um pipeline para esse código. Mas, se você for um novo usuário, poderá começar melhor usando nosso código de exemplo. Nesse caso, bifurque o seguinte repositório no GitHub:
https://github.com/Azure-Samples/basic-php-composer
Criar um pipeline
Entre na organização do Azure DevOps e acesse seu projeto.
Acesse os pipelines e selecione Novo pipeline.
Selecione o local de origem (GitHub, Git do Azure Repos, Bitbucket Cloud ou outros repositórios Git).
Selecione o repositório em que o código está localizado.
Selecione PHP na guia Configurar .
Verifique se a versão do PHP é 8.3.
Examine o seu novo pipeline. Ao final, selecione Salvar e executar.
Você será solicitado a confirmar um novo arquivo azure-pipelines.yml em seu repositório. Selecione Salvar e executar novamente.
Se você quiser inspecionar seu pipeline em ação, selecione o trabalho de compilação.
Agora você tem um pipeline YAML funcional (azure-pipelines.yml) em seu repositório pronto para personalizar!
Quando quiser fazer alterações no pipeline, selecione o pipeline na página Pipelines e edite o arquivo azure-pipelines.yml .
Leia mais para saber algumas das maneiras mais comuns de personalizar seu pipeline.
Implantar no Serviço de Aplicativo
Use um pipeline para criar um aplicativo Web PHP e implantar no Serviço de Aplicativo do Azure. O Serviço de Aplicativo do Azure é um serviço com base em HTTP para hospedagem de aplicativos Web, APIs REST e back-ends móveis.
Você pode usar tarefas para arquivar seus arquivos, publicar um artefato de build e, em seguida, usar a tarefa de aplicativo Web do Azure para implantar no Azure App Service.
Esse pipeline tem dois estágios: Compilar e Implantar. Na etapa de construção, o PHP 8.3 é instalado com o Composer. Os arquivos do aplicativo são arquivados e carregados em um pacote chamado drop
. Durante a fase Implantar, o pacote drop
é implantado no Serviço de Aplicativo do Azure como um aplicativo 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
Configurar o ambiente de build
Use o Azure Pipelines para criar seus projetos php sem configurar a infraestrutura.
Usar uma versão específica do PHP
O PHP é pré-instalado em agentes hospedados pela Microsoft, juntamente com muitas bibliotecas comuns por versão do PHP. Você pode usar agentes linux, macOS ou Windows para executar seus builds. Para obter mais informações e as versões exatas do PHP que são pré-instaladas, consulte agentes hospedados pela Microsoft.
No agente do Ubuntu hospedado pela Microsoft, várias versões do PHP são instaladas. Um symlink em /usr/bin/php
aponta para a versão do PHP atualmente configurada, para que, quando você executar php
, a versão configurada seja executada.
Para usar uma versão php diferente do padrão, o symlink pode ser apontado para essa versão usando a update-alternatives
ferramenta. Defina a versão do PHP desejada adicionando o snippet a seguir ao arquivo azure-pipelines.yml
e altere o valor da variável 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)'
Instalar dependências
Para usar o Composer para instalar dependências, adicione o snippet a seguir ao arquivo azure-pipelines.yml
.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Faça testes com o phpunit
Para executar testes com phpunit, adicione o snippet a seguir ao arquivo azure-pipelines.yml
.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Manter o aplicativo PHP com o registro de compilação
Para salvar os artefatos desse build com o registro de build, adicione o snippet a seguir ao arquivo azure-pipelines.yml
.
Opcionalmente, customize o valor de rootFolderOrFile para alterar o que está incluído no arquivo.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Usando um local de compositor personalizado
Se o composer.json estiver em uma subpasta em vez do diretório raiz, você poderá usar o --working-dir
argumento para informar ao compositor qual diretório usar. Por exemplo, se o composer.json estiver dentro da subpasta pkgs
composer install --no-interaction --working-dir=pkgs
Você também pode especificar o caminho absoluto usando as variáveis internas do sistema:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'