Azure DevOps - 构建和部署简单的 PHP Web 应用程序

Azure DevOps - Build and Deploy simple PHP Web App

我正在尝试使用 CI/CD 并遵循 this link 使用 index.php 文件构建和部署一个简单的 php 应用程序。下面是配置好的yaml文件,构建流水线执行成功。

# PHP
# Test and package your PHP project.
# Add steps that run tests, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/php
 
trigger:
- main
 
variables:
 
  # Azure Resource Manager connection created during pipeline creation
  azureSubscription: 'phptestapp-connection'
  
  # Web app name
  webAppName: 'phptestapp'
  
  # Resource group
  resourceGroupName: 'MyResourceGroup'
 
  # Environment name
  environmentName: 'phptestapp'
 
  # Agent VM image name
  vmImageName: 'ubuntu-latest'
  
stages:
- stage: Archive
  displayName: Archive stage
  jobs:  
  - job: Archive
    displayName: Archive
    pool:
      vmImage: $(vmImageName)
    steps:   
    - task: AzureAppServiceSettings@1
      inputs:
        azureSubscription: $(azureSubscription)
        appName: $(webAppName)
        resourceGroupName: $(resourceGroupName)
        appSettings: |
          [
            {
              "name": "SCM_DO_BUILD_DURING_DEPLOYMENT",
              "value": "true"
            }
          ]
    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
        replaceExistingArchive: true
 
    - upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop
 
- stage: Deploy
  displayName: Deploy stage
  dependsOn: Archive
  condition: succeeded()
  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: $(environmentName)
    pool: 
      vmImage: $(vmImageName)
    strategy:
      runOnce:
        deploy:
          steps:            
          - task: AzureWebApp@1
            displayName: 'Azure Web App Deploy: PHP Web App'
            inputs:
              azureSubscription: $(azureSubscription)
              appType: webAppLinux
              appName: $(webAppName)
              runtimeStack: 'PHP|7.2'
              package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip

但是,当我配置和 运行 释放管道时,它抛出如下异常

> Error: No package found with specified pattern:
> D:\a\r1\a\**\*.zip<br/> Check if the package mentioned in the task is
> published as an artifact in the build or a previous stage and
> downloaded in the current job.

P.S。在构建管道 yaml 文件中添加以下内容不会产生任何影响

- task: PublishBuildArtifacts@1

想法是为简单的 PHP 网络应用程序开发 CI/CD,然后将相同的概念实现到 PHP 框架,如 Wordpress/Laravel/Magento2

乐于接受想法和建议

尝试替换

- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
  artifact: drop

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    ArtifactName: 'drop'
    publishLocation: 'Container'