我在 Azure Devops 上创建了项目和存储库。存储库是 IIS 上 coldfusion 部署中 wwwroot 文件夹的副本,该文件夹位于本地服务器上。我不明白如何设置将存储库中的提交复制到本地服务器的管道。
答案1
您首先需要确保 Azure 管道可以到达您的服务器或设置自托管代理。然后,您可以创建一个触发器,当完成拉取请求或合并到例如您的主分支时,管道将运行并创建工件和 PowerShell 脚本,该脚本会将其复制到您的服务器。或者只是构建管道中的上传任务。
这是一个在托管的 ado 代理上运行的示例管道。
trigger:
- '*' # Trigger the pipeline on all branches, you can customize this as needed
pr:
- '*' # Trigger the pipeline on all pull requests
pool:
name: 'NameOfYourSelfHostedAgentPool' # Replace with the name of your agent pool
demands:
- agent.os -equals Windows_NT # Optional: Ensure it runs on Windows-based agents
steps:
- script: |
# Your build steps here (e.g., compile, test)
displayName: 'Build and Test'
- script: |
# Copy files to the remote server using PowerShell
$sourcePath = "$(System.DefaultWorkingDirectory)/path/to/source/files"
$destinationPath = "\\remote-server\destination\path"
Copy-Item -Path $sourcePath -Destination $destinationPath -Recurse -Force
displayName: 'Copy Files to Remote Server'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Additional tasks or scripts to run on the remote server (if needed)
displayName: 'Additional Remote Server Tasks'
在此配置中:
在
pool
部分中,指定自托管代理池的名称(name: 'NameOfYourSelfHostedAgentPool'
)。您应该将其替换'NameOfYourSelfHostedAgentPool'
为代理池的实际名称。您也可以使用该
demands
部分来指定管道应在其上运行的代理的条件。在上面的示例中,它确保代理正在运行 Windows 操作系统。请根据您的代理设置需要对此进行调整。管道配置的其余部分与前面的示例保持相同。
确保您已在本地服务器上设置并注册了自托管代理,并且它与 YAML 配置中指定的代理池相关联。代理应处于在线状态,并且能够运行基于 Windows 的任务,例如 PowerShell 脚本。
我不会复制提交,而是在拉取请求之后,这样你就可以选择让某人验证更改或添加自动测试