125 lines
3.7 KiB
YAML
125 lines
3.7 KiB
YAML
# PHP as Linux Web App on Azure
|
|
# Build, package and deploy your PHP project to Azure Linux Web App.
|
|
# Add steps that run tests and more:
|
|
# https://docs.microsoft.com/azure/devops/pipelines/languages/php
|
|
|
|
trigger:
|
|
- master
|
|
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
|
|
variables:
|
|
phpVersion: '7.4'
|
|
|
|
webApp: 'webapp-fxp'
|
|
|
|
environment: dev
|
|
|
|
|
|
stages:
|
|
- stage: Build
|
|
variables:
|
|
# Root folder under which your composer.json file is available.
|
|
rootFolder: $(System.DefaultWorkingDirectory)
|
|
|
|
jobs:
|
|
- job: BuildJob
|
|
displayName: Build Laravel App
|
|
|
|
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: |
|
|
cp -n .env.build .env
|
|
workingDirectory: $(rootFolder)
|
|
displayName: 'Environment setup'
|
|
|
|
- script: composer validate --no-check-publish && composer install --no-interaction --prefer-dist
|
|
workingDirectory: $(rootFolder)
|
|
displayName: 'Composer install'
|
|
|
|
- task: Npm@1
|
|
inputs:
|
|
command: 'install'
|
|
displayName: 'NPM Install'
|
|
|
|
- script: |
|
|
php artisan key:generate
|
|
workingDirectory: $(rootFolder)
|
|
displayName: 'Laravel Key Generation'
|
|
|
|
- task: ArchiveFiles@2
|
|
displayName: 'Archive files'
|
|
inputs:
|
|
rootFolderOrFile: '$(rootFolder)'
|
|
includeRootFolder: false
|
|
archiveType: zip
|
|
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
|
|
replaceExistingArchive: true
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
|
|
displayName: 'Publish artifact'
|
|
artifact: drop
|
|
|
|
# - job: Database
|
|
# displayName: 'Database Migrations'
|
|
# variables:
|
|
# - group: DATABASE-dev
|
|
|
|
# steps:
|
|
# - script: |
|
|
# # sudo curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
|
|
# # sudo curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list
|
|
# # sudo apt-get update
|
|
# # sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
|
|
# sudo pecl install sqlsrv
|
|
# sudo pecl install pdo_sqlsrv
|
|
# sudo printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini
|
|
# sudo printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini
|
|
# sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv
|
|
# displayName: 'Install SqlServer Drivers'
|
|
|
|
# - script: |
|
|
# env | grep "DB_"
|
|
# php artisan migrate
|
|
# php artisan db:seed
|
|
# env:
|
|
# DB_PASSWORD: $(DB_PASSWORD)
|
|
# workingDirectory: $(rootFolder)
|
|
# displayName: 'Database Migrations'
|
|
|
|
|
|
- stage: Deploy
|
|
dependsOn: Build
|
|
condition: succeeded()
|
|
|
|
jobs:
|
|
- deployment: DeployDev
|
|
displayName: 'Deploy WebApp to Dev'
|
|
environment: $(environment)
|
|
|
|
variables:
|
|
azureConnection: 'FilingXP-dev'
|
|
webAppName: '$(webApp)-$(environment)'
|
|
|
|
strategy:
|
|
runOnce:
|
|
deploy:
|
|
|
|
steps:
|
|
- task: AzureWebApp@1
|
|
displayName: 'Deploy Azure Web App : '
|
|
inputs:
|
|
azureSubscription: 'FilingXP-dev'
|
|
appName: $(webAppName)
|
|
appType: webAppLinux
|
|
package: $(Pipeline.Workspace)/drop/*.zip |