我正在尝试创建一个 python azure 函数 CI 管道构建。在yml文件中,安装依赖项后(pytest存在于requirements.txt中),找不到pytest模块。我似乎无法弄清楚问题是什么。我错过了什么?
- task: UsePythonVersion@0
displayName: Use Python 3.11
inputs:
versionSpec: 3.11
- task: Bash@3
displayName: Install Application Dependencies
inputs:
targetType: inline
script: >-
python -m pip install --upgrade pip
pip install --target="$(System.DefaultWorkingDirectory)/.python_packages/lib/site-packages" -r requirements.txt
- script: pytest . --verbose
Azure DevOps 在 pytest 步骤上失败,提示无法找到 pytest。
requirements.txt
pytest~=8.1.1
我尝试过的:
我尝试在我的requirements.txt中添加
pytest
模块并运行下面的Azure Devops yaml管道,函数和包已成功部署。
我的 Azure DevOps 管道:-
trigger:
- main
variables:
azureSubscription: '3xxxxxxxxxxx1a81b0e'
functionAppName: 'valleyfunc765'
vmImageName: 'ubuntu-latest'
workingDirectory: '$(System.DefaultWorkingDirectory)'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- bash: |
if [ -f extensions.csproj ]
then
dotnet build extensions.csproj --runtime ubuntu.16.04-x64 --output ./bin
fi
workingDirectory: $(workingDirectory)
displayName: 'Build extensions'
- task: UsePythonVersion@0
displayName: 'Use Python 3.11'
inputs:
versionSpec: 3.11 # Functions V2 supports Python 3.6 as of today
- bash: |
pip install --target="./.python_packages/lib/site-packages" -r ./requirements.txt
workingDirectory: $(workingDirectory)
displayName: 'Install application dependencies'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(workingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: 'development'
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- task: AzureFunctionApp@1
displayName: 'Azure functions app deploy'
inputs:
azureSubscription: '$(azureSubscription)'
appType: functionAppLinux
appName: $(functionAppName)
package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
我的要求.txt:-
azure-functions
pytest
输出:-