|
@@ -1,5 +1,98 @@
|
|
|
# Azure Pipeline
|
|
|
|
|
|
+Azure Pipelines 和 Github Action一样,支持各种语言,各种平台(windows,linux,mac),自动部署到各云平台,开源项目10个免费无线分钟数。
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Usage
|
|
|
+
|
|
|
项目添加 `.azure-pipelines/azure-pipelines.yml`,
|
|
|
|
|
|
+```
|
|
|
+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: '7.4'
|
|
|
+ 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
|
|
|
+```
|
|
|
+
|
|
|
+注意其中指定 php 版本,安装依赖,部署等
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## AppCenter
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Reference
|
|
|
+
|
|
|
+[Azure Pipelines | Microsoft Azure](https://azure.microsoft.com/en-us/products/devops/pipelines)
|
|
|
+
|
|
|
+[Azure Pipelines documentation - Azure DevOps | Microsoft Learn](https://learn.microsoft.com/en-us/azure/devops/pipelines/?view=azure-devops)
|
|
|
|