Я создал структуру каталогов, как рекомендовано здесь «https://learn.microsoft.com/en-us/azure/devops». /pipelines/tasks/reference/use-python-version-v0?view=azure-pipelines&viewFallbackFrom=azure-devops#how-can-i-configure-a-self-hosted-agent-to-use-this-task" и конвейер может найти инструмент при использовании задачи «Использовать Python» в конвейере, но на следующем шаге во время требований установки он снова обращается к локальному системному Python и ссылается на него.
Код: Выделить всё
Found tool in cache: Python 3.10.14 x64
Prepending PATH environment variable with directory: myagent/_work/_tool/Python/3.10.14/x64
Код: Выделить всё
/bin/bash --noprofile --norc /home//myagent/_work/_temp/a2f27dba-44e5-471b-8de5-fe3148e7d196.sh
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in /home//.local/lib/python3.9/site-packages (24.2)
Collecting azure-functions (from -r ./requirements.txt (line 5))
Должны ли мы устанавливать Python внутри каталога _tool, даже если файлы из этого места сохраняются. "github.com/actions/python-versions/releases"
Я проверил, зайдя в местоположение _tool, и он по-прежнему не разрешает версию Python, когда мы заходим в Python 3.10.14. Могу ли я узнать, чего мне не хватает в документации или какие изменения необходимы для того, чтобы конвейер мог использовать указанную версию.
Код: Выделить всё
stages:
- stage: BuildDev
displayName: Build (DEV)
jobs:
- job: Build
displayName: Build (DEV)
pool:
name: $(vmImageNameDev)
demands:
- agent.os -equals Linux
steps:
- checkout: Platform_Branch
- task: UsePythonVersion@0
displayName: 'Use Python 3.10'
inputs:
versionSpec: '3.10'
disableDownloadFromRegistry: true
- script: |
python -m pip install --upgrade pip
pip install --target="./.python_packages/lib/site-packages" -r ./requirements.txt
workingDirectory: $(workingDirectory)
displayName: 'Install requirements'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: $(workingDirectory)
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
displayName: 'Publish files as drop'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
artifactName: 'drop'
- stage: DeployToDev
displayName: Deploy stage (DEV)
dependsOn: BuildDev
condition: succeeded()
jobs:
- deployment: DeployToDev
displayName: Deploy to Dev
environment: 'DEV'
pool:
name: $(vmImageNameDev)
strategy:
runOnce:
deploy:
steps:
- download: current
artifact: drop
- task: AzureFunctionApp@2
displayName: 'Azure functions app deploy'
inputs:
connectedServiceNameARM: '$(serviceConnectionDev)'
appType: 'functionAppLinux'
appName: '$(functionAppNameDev)'
deployToSlotOrASE: true
resourceGroupName: 'RG_NAME'
runtimeStack: 'PYTHON|3.10'
slotName: 'production'
package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
appSettings: -RequestTimeout 5000Подробнее здесь: https://stackoverflow.com/questions/788 ... sted-agent
Мобильная версия