# 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