Membangun dan menguji aplikasi PHP
Azure DevOps
Gunakan integrasi berkelanjutan Azure Pipelines dan pengiriman berkelanjutan (CI/CD) untuk membangun, menyebarkan, dan menguji proyek PHP Anda.
Pelajari cara membuat alur PHP, menyebarkan alur dengan proyek sampel ke Azure App Service, dan cara mengonfigurasi lingkungan Anda.
Untuk mempelajari selengkapnya tentang Azure App Service, lihat Membuat aplikasi web PHP di Azure App Service.
Prasyarat
Pastikan Anda memiliki item berikut:
Akun GitHub tempat Anda dapat membuat repositori. Buat akun gratis.
Organisasi Azure DevOps. Buat akun gratis. Jika tim Anda sudah memilikinya, pastikan Anda adalah administrator proyek Azure DevOps yang ingin Anda gunakan.
Kemampuan untuk menjalankan jaringan alur pada agen yang dihosting Microsoft. Untuk menggunakan agen yang dihosting Microsoft, organisasi Azure DevOps Anda harus memiliki akses ke pekerjaan paralel yang dihosting Microsoft. Anda dapat membeli pekerjaan paralel atau Anda dapat meminta pemberian gratis.
Akun Azure. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Tip
Jika Anda baru dalam hal ini, cara term mudah untuk memulai adalah dengan menggunakan alamat email yang sama dengan pemilik organisasi Azure Pipelines dan langganan Azure.
- Jika Anda akan menyebarkan ke Azure App Service, Anda harus membuat aplikasi web.
Mendapatkan kode
Jika Anda sudah memiliki aplikasi di GitHub yang ingin Anda sebarkan, Anda dapat membuat alur untuk kode tersebut. Tetapi, jika Anda adalah pengguna baru, Anda mungkin mendapatkan awal yang lebih baik dengan menggunakan kode sampel kami. Dalam hal ini, fork repositori berikut di GitHub:
https://github.com/Azure-Samples/basic-php-composer
Buat alur
Masuk ke organisasi Azure DevOps Anda dan buka proyek Anda.
Buka alur, lalu pilih Alur baru.
Pilih lokasi sumber Anda (GitHub, Azure Repos Git, Bitbucket Cloud, atau repositori Git lainnya).
Pilih repositori tempat kode Anda berada.
Pilih PHP di tab Konfigurasikan .
Pastikan versi PHP adalah 8.3.
Periksa alur baru Anda. Saat Anda siap, pilih Simpan dan jalankan.
Anda diminta untuk menerapkan file azure-pipelines.yml baru ke repositori Anda. Pilih Simpan dan jalankan lagi.
Jika Anda ingin menonton alur Anda beraksi, pilih pekerjaan build.
Anda sekarang memiliki alur YAML yang berfungsi (azure-pipelines.yml) di repositori Anda yang siap untuk Anda sesuaikan!
Saat Anda ingin membuat perubahan pada alur Anda, pilih alur Anda di halaman Alur, lalu Edit file azure-pipelines.yml.
Baca lebih lanjut untuk mempelajari beberapa cara yang lebih umum untuk menyesuaikan alur Anda.
Menyebarkan ke App Service
Gunakan alur untuk membangun aplikasi web PHP dan menyebarkan ke Azure App Service. Azure App Service adalah layanan berbasis HTTP untuk meng-hosting aplikasi web, REST API, dan back-end seluler.
Anda dapat menggunakan tugas untuk mengarsipkan file Anda, menerbitkan artefak build, lalu menggunakan tugas Azure Web App untuk menyebarkan ke Azure App Service.
Alur ini memiliki dua tahap: Build dan Deploy. Pada tahap Build, PHP 8.3 diinstal dengan composer. File aplikasi diarsipkan dan diunggah ke dalam paket bernama drop
. Selama fase Sebarkan, paket akan drop
disebarkan ke Azure App Service sebagai aplikasi 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
Mengonfigurasi lingkungan build
Gunakan Azure Pipelines untuk membangun proyek PHP Anda tanpa menyiapkan infrastruktur.
Menggunakan versi PHP tertentu
PHP telah diinstal sebelumnya pada agen yang dihosting Microsoft, bersama dengan banyak pustaka umum per versi PHP. Anda dapat menggunakan agen Linux, macOS, atau Windows untuk menjalankan build Anda. Untuk informasi selengkapnya dan versi PHP yang tepat yang telah diinstal sebelumnya, lihat Agen yang dihosting Microsoft.
Pada agen Ubuntu yang dihosting Microsoft, beberapa versi PHP diinstal. Symlink pada /usr/bin/php
titik ke versi PHP yang saat ini diatur, sehingga saat Anda menjalankan php
, versi yang ditetapkan dijalankan.
Untuk menggunakan versi PHP selain default, symlink dapat diacu ke versi tersebut menggunakan alat .update-alternatives
Atur versi PHP yang Anda inginkan dengan menambahkan cuplikan berikut ke file Anda azure-pipelines.yml
dan ubah nilai variabel 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)'
Instal dependensi
Untuk menggunakan Composer untuk menginstal dependensi, tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Uji dengan phpunit
Untuk menjalankan pengujian dengan phpunit, tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Pertahankan aplikasi PHP dengan catatan build
Untuk menyimpan artefak build ini dengan catatan build, tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
.
Secara opsional, sesuaikan nilai rootFolderOrFile untuk mengubah apa yang disertakan dalam arsip.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Menggunakan lokasi komposer kustom
Jika composer.json Anda berada di subfolder alih-alih direktori akar, Anda dapat menggunakan --working-dir
argumen untuk memberi tahu komposer direktori apa yang akan digunakan. Misalnya, jika composer.json Anda berada di dalam subfolder pkgs
composer install --no-interaction --working-dir=pkgs
Anda juga dapat menentukan jalur absolut, menggunakan variabel sistem bawaan:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'