FillingXP/azure-pipelines.yml

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