我们已经在https://dev.azure.com/上创建了存储库。现在,我的经理希望定期获得此存储库的备份副本。我向经理解释说,https ://dev.azure.com/由MS作为SAAS管理,因此回购协议始终是安全的。但是他想要自己的副本。是什么呀!
我想到了几个选择:a)在任何开发人员计算机上获取最新信息并将备份备份到磁带设备中
b)使用一些Azure DevOps来保持Azure存储上的备份
选项b的可行性如何?
过去的所有签入历史记录都可以备份Azure DevOps吗?
我可以与Azure存储链接的Azure DevOps上的任何备份服务吗?
使用Azure DevOps上的某些xyz服务可以进行增量备份吗?
选项b的可行性如何?
在Azure Devops Service中是可能的。你需要的是一个YAML管道,其触发所有分支。
您可以使用命令行任务将存储库备份到{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复制任务的Git Azure的回购,你可以按照格式在这里:
git clone https://{yourPAT}@dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
此命令将RepoName.git
在以下路径中创建一个文件夹,其中包含您的仓库的副本$(System.DefaultWorkingDirectory)
。要创建PAT,您只需创建一个具有Code读取访问范围的对象:
3.逻辑是:如果您的源仓库有任何更改=>将触发管道=>它将在DefaultWorkingDirectory(CMD task)=>中复制最新副本到Backup.zip
文件中(Archive file task => Azure File)复制任务会将其复制Backup.zip
到Azure存储Blob)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句