ctw*_*twx 67 azure-devops azure-pipelines
我刚刚开始使用 Azure DevOps 管道,并使用 Maven 任务创建了一个非常简单的管道。现在我不关心并行性,并且不确定以何种方式将其添加到我的管道中。有没有办法在免费层上使用 Maven 任务而无需并行?
这是我的管道:
trigger:
- master
pool:
vmImage: ubuntu-latest
steps:
- task: Maven@3
Run Code Online (Sandbox Code Playgroud)
我的想法是任务总是并行的?除此之外我看不出并行步骤在哪里。
Krz*_*tof 70
首先 - 任务总是按顺序执行。1 个顺序管道被记录为“1 个并行代理”,是的,命名可能会更好。由于下面列出的更改,新帐户现在可以获得零个并行代理,并且必须手动请求才能获得之前默认的 1 个并行管道和免费构建分钟数。
看看这个:
我们暂时禁止为公共项目和新组织中的某些私人项目免费提供并行工作。但是,您可以通过提交请求来请求这笔资助。现有组织和项目不受影响。请注意,我们需要 2-3 个工作日才能回复您的免费套餐请求。
有关这些限制为何发挥作用的更多背景信息:
太长了;人们使用自动化来启动 1000 个 Azure DevOps 组织,添加管道并使用该服务发送垃圾邮件、挖掘比特币或用于其他邪恶目的。事实上,他们可以免费、快速且无需任何人工干预地完成此任务,这对团队来说是一种负担。事实证明,自动检测恶意行为非常困难,并且变成了一场无休止的猫鼠游戏。手动步骤是一种必要的罪恶,它已经制止了这种滥用行为,并且绝不意味着迈向服务进一步货币化的一步。这实际上是为了确保免费套餐仍然可以提供给像你我这样的真实的人,
Dig*_*ity 37
这是荒谬的。“免费套餐”并不完全免费,除非您再次请求!
最佳选择:使用自托管池。它可以是您想要运行测试的笔记本电脑。
MS azure 文档在这里
并在 YAML 文件中使用上面的池
pool: MyPool
Run Code Online (Sandbox Code Playgroud)
或者
请求访问 MS:
亲们,可以在这里索取。通常,它会在一两天内获得批准。
##[error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms/azpipelines-parallelism-request
Run Code Online (Sandbox Code Playgroud)
Pét*_*ási 11
扩展@Digital_Reality 答案。
Microsoft 禁止为公共项目和新组织中的某些私人项目免费授予并行作业。因为用户滥用(例如加密挖掘)免费的计算资源。1
您可以通过两种方式解决该问题:
申请免费赠款通常需要两到三天的时间。如果您不想等待请求批准,您可以创建自己的自托管代理。
要创建自托管代理,请转到“项目设置”并选择“管道”部分下的“代理池”选项。按添加池按钮并配置代理:
my-personal-computer)现在,导航到新创建的代理。在右上角,按“新代理”按钮。您可以创建 Windows、macOS 和 Linux 代理。根据您的计算机选择适当的操作系统,然后按照说明进行操作:
解压存档:下载代理,然后将其解压到文件夹中
配置代理:运行配置脚本并选择默认设置:
运行代理:执行运行脚本
完成后,您可以在Agents面板下看到 Agent 已启动并正在运行。
自托管代理连接到 Azure DevOps 并侦听新作业。
注意:如果您在代理配置期间创建服务,则无需手动运行代理。
最后一步是更新管道以使用最近创建的代理。转到管道并选择您的管道。单击“编辑”并将该pool: <my-selfhosted-agent>部分添加到配置文件中。这是一个azure-pipeline.yml文件示例:
trigger:
- main
pool: my-personal-computer
strategy:
matrix:
Python36:
python.version: '3.6'
Python37:
python.version: '3.7'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install -r requirements.txt
displayName: 'Install dependencies'
- script: |
pip install pytest pytest-azurepipelines
pytest
displayName: 'pytest'
Run Code Online (Sandbox Code Playgroud)
它将进入池并选择一个可用的代理。我们只有一个代理,因此它会选择它并在其上运行各种作业。您可以进入自托管代理文件夹并从该_work目录获取日志。您还可以在 Azure DevOps 上查看作业的输出。
use*_*182 10
如果您使用带有 Gatekeeper 的 MacOS 最新版本,对于不知情的人来说,这种“安全增强”是一个严重的 PITA,因为您会遇到数百个错误,其中每个被拒绝的程序集都必须在安全性中手动允许。
不要那样做。
从 DevOps 下载代理文件后,在解压缩该文件之前,请对其运行此命令。这将删除触发错误的属性,并允许您不间断地继续。
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz ## replace V.v.v with the version in the filename downloaded.
# then unpack the gzip tar file normally:
tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz
Run Code Online (Sandbox Code Playgroud)
以下是您需要运行的所有步骤,包括上述步骤,以便您可以克服“托管并行性”问题并立即继续测试,无论是在等待授权还是完全跳过它。
转到项目设置 -> 代理池
创建新的代理池,将其命名为“本地”(随意命名,或者您也可以在默认代理池中执行此操作)
添加新代理并按照说明进行操作,其中包括下载适合您的操作系统(此处为 MacOS)的代理。
运行xattr -c vsts-agent-osx-x64-V.v.v.tar.gz下载的文件以消除 Gatekeeper 安全问题。
解压存档文件tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz
cd进入存档目录并输入./config.sh这里最重要的配置选项是服务器 URL,https://dev.azure.com/{organization name}其余的都可以使用默认值。继续,直到返回命令提示符。此时,如果您要在新代理池或默认(取决于您放置的位置)中查看 DevOps 内部,您将看到新代理处于“离线”状态,因此运行:
./run.sh这将使您的代理上线。您的代理现在正在运行并监听您开始工作。请注意,这会占用您的终端窗口。
最后,在管道 YAML 文件中,通过指定自托管代理所在的代理池的名称,将作业配置为使用本地代理,如下所示:
trigger:
- main
pool:
name: local
#pool:
# vmImage: ubuntu-latest
Run Code Online (Sandbox Code Playgroud)
小智 5
最简单的解决方案是将项目从公共更改为私有,以便您可以使用免费池。私有项目默认有一个空闲池。
考虑按照其他建议在您的计算机上使用自托管池。
| 归档时间: |
|
| 查看次数: |
72932 次 |
| 最近记录: |