我们已经在https://dev.azure.com/上创建了存储库 一切正常。 现在,我的经理希望定期获得此存储库的备份副本。 我向经理解释说https://dev.azure.com/由MS作为SAAS管理,因此回购协议始终是安全的。 但是他想要自己的副本。是什么呀!
我想到了几个选择: a)在任何开发人员机器上获取最新信息并将备份备份到磁带设备中 b)使用某些Azure DevOps保持备份在Azure存储上
选项b可行吗?
过去的所有签入历史记录都可以备份Azure DevOps吗?
我可以与Azure存储链接的Azure DevOps上的任何备份服务吗?
在Azure DevOps上使用某些xyz服务是否可以进行增量备份?
答案 0 :(得分:2)
选项b可行吗?
在Azure Devops Service中可能。您需要一个Yaml pipeline的triggers all branches。
您可以使用command line task将存储库备份到{RepoName}.git
文件夹中,然后使用Azure File Copy task将此文件夹复制到Azure存储中。与此类似:
trigger:
branches:
include:
- '*'
pool:
vmImage: 'windows-latest'
steps:
- task: CmdLine@2
inputs:
script: 'git clone --mirror https://{Your PAT}@dev.azure.com/{OrgName}/{ProjectName}/_git/{RepoName}'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)/{RepoName}.git'
includeRootFolder: true
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/Backup.zip'
replaceExistingArchive: true
- task: AzureFileCopy@4
displayName: 'AzureBlob File Copy'
inputs:
SourcePath: '$(Build.ArtifactStagingDirectory)/Backup.zip'
azureSubscription: xxxx
Destination: AzureBlob
storage: xxxxxxxx
ContainerName: arm
BlobPrefix: test
详细信息:
1.CI带通配符(*)的触发器可以监视您的所有分支。因此,如果您的仓库有任何更新,管道将被触发运行。
2。cmd任务调用git clone --mirror来制作git repo的副本。若要在具有PAT的cmd任务中复制Azure Git存储库,您可以遵循here格式:
git clone https://{yourPAT}@dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
此命令将创建一个RepoName.git
文件夹,其中包含您在以下路径中的存储库副本:$(System.DefaultWorkingDirectory)
。要create PAT,您只需要创建一个具有“代码读取”访问范围的计算机:
3。逻辑是:如果您的源repo有任何更改=>将触发管道=>它将在DefaultWorkingDirectory(CMD任务)中创建最新副本=>将该副本存档到Backup.zip
文件中({Archive file task =>“ Azure文件复制”任务会将此Backup.zip
复制到Azure存储Blob)