首页 > 编程语言 >Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Bolb Storage

Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Bolb Storage

时间:2023-05-05 16:55:27浏览次数:50  
标签:Pipeline 程序包 storage account DevOps 点击 Azure

一,引言

  结合前几篇文章,我们了解到 Azure Pipeline 完美的解决了持续集成,自动编译。同时也兼顾了 Sonarqube 作为代码扫描工具。接下来另外一个问题出现了,Azure DevOps 由于有人员限制,项目上不能给非开发人员或者外包成员开权限,这个时候就需要将编译好的程序包上传到公共网盘或者私有的远端存储账户,方便下载。那么我们今天就结合 Azure storage account 来实践一次利用 Azure Release Pipeline 自动将编译好的程序包发布到 Blob Storage 中。接下来就开始了今天的实践内容。

--------------------Azure DevOps 系列--------------------

1,Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译

2,Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性

3,Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Bolb Storage

二,正文

1,创建存储账户

我们登录 Azure Portal,点击 “create a resource” 创建新的资源

输入 “storage account” 查看资源,并进行创建

输入以下参数:

Resource group:“Web_Test_SA_RG”(已有的资源组,也可以选择创建新的)

Storage account name:“cloudplatform”

Performance 选择:“Standard”

Redundancy 选择:“Locally-redundant storage(LRS)”

点击 “Review” 进行创建前的预校验

预校验完成后,点击 “Create” 进行创建

等待创建完成后,跳转到该资源进行查看

2,为 service principal 授权

创建 sp 的过程大家可以参考:Azure AD(四)知识补充-服务主体

接下来就是为 Azure DevOps 的 Service connection (也就是服务主体设置权限)

选择 “cloudplatform =》Access Control”,点击 “+ Add”,添加角色分配

选择 “Storage Blob Data Contributor” 点击 “Next”

点击 “+ Select members”,选择好 service principal,点击 “select” 进行选择确定

点击 ”Review + assign“ 进行确定预览指派权限控制

稍后,我们就可以看到当前 sp 的权限信息,Scope 为 ”This resource“

3,创建 Release Pipeline

登录 azure devops 找到上一篇课程中创建的项目 “NetCore_WPF_Sample” 项目

选择 “Pilelines =》Releases”,点击 “New pipeline” 创建新的管道作业

点击 ”Artifacts + Add“ 添加发布源

Source type 选择:”Build“

Project:”NetCore_WPF_Sample“

Source(build pipeline)选择 :”yunqian44.Standard.Tool.Platform“(build Pipeline)

Dafault version:”Latest“

Source alias 选择默认

点击 ”Add“ 进行添加操作

接下来点击箭头所指的位置,添加任务项。

1)添加新的 ”Task“,输入 ”Azure CLI“ 进行查询,并添加

输入以下参数

Manage 选择:”vs“(自己项目所用的 serviceconnection)

Script Type:”Shell“

Script Location:”Inline script“

Inline Script:

# create azure resource group
az group create --location eastasia --name $(terraform_rg)

# create azure storage account
az storage account create --name $(storage_account) --resource-group $(terraform_rg) --location eastasia --sku Standard_LRS

# create storage account container for package blob 
az storage container create --name $(storage_account_container) --account-name $(storage_account)

2)搜索 ”Archive files“,添加压缩任务

修改 需要压缩的文件或者文件夹的根目录

如下图所示:

源:改为 Build Pipeline 输入目录下的 drop 文件

目标:改为Build Pipeline 输入目录下已 BuildId 命名的压缩文件

接下来,我们添加 ”Azure file copy“,添加文件拷贝任务

输入一下参数,需要注意  存储账户,容器名称 Blob 前缀都已变量的形式体现

Source 选择 ”Archive“ 任务输出的压缩文件的目录

Azure Subscription 选择实际项目

Destination Type 选择:”Azure Blob“

RM Storage Account:$(storage_account) 

Container Name:$(storage_account_container)

Blob prefix:$(Build.BuildId).zip

最后,我们需要添加变量,选择 “Variable”,点击 “+” 进行操作,输入以下参数,并保存

Name Value
storage_account cloudplatform
storage_account_container wpf-client
terraform_rg Web_Test_SA_RG

点击 “Create release” 尝试运行 release pipeline 

点击 “OK” 确认此操作

Release Pipeline 运行成功

存储账户的容器 “” 也被创建好了

编译好的程序包已被上传到 Storage Account 的 Container 中了

Bingo!!!!!

标签:Pipeline,程序包,storage,account,DevOps,点击,Azure
From: https://www.cnblogs.com/AllenMaster/p/17372029.html

相关文章

  • pipeline 多个代码库到不同目录
    pipeline{agentanystages{stage('CloneRepository1'){steps{dir('repo1'){gitbranch:'main',url:'https://github.com/example/repo1.git'......
  • Azure DevOps Server 2022.0.1升级手册
    Contents1.概述2.操作方法2.1安装操作系统2.2安装数据库2.4还原数据2.3安装和配置AzureDevOpsServer1.概述AzureDevOpsServer是微软公司经过20多年的持续开发,逐渐将需求管理、敏捷实践、源代码管理、持续集成等功能集成一体,实现应用软件生命周期全流程服务的技术平台,......
  • Azure DevOps Server 数据还原方式三:增量还原
    Contents1.概述2.操作方式2.1创建共享文件夹,并将备份文件复制到共享文件夹中2.2还原数据3验证还原的数据库3.1方式一:核对工作项所在的表的数据3.2方式二:将数据库配置到应用层,在应用中验证数据4.常见问题:4.1不能使用\localhost作为共享文件夹4.2还原数据库过程中,需要填写......
  • pipeline 解析
    shell参数set-e(脚本出现异常时马上退出)set-e选项可以让你的脚本在出现异常时马上退出,后续命令不再执行。默认情况下Shell脚本不会因为错误而结束执行,但大多数情况是,我们希望出现异常时就不要再往下走了。假如你的if判断条件里会出现异常,这时脚本也会直接退出,但可能这并不是......
  • ASP.NET Core – Data Protection & Azure Storage + Azure Key Vault
    前言以前就写过很多篇了Asp.netcore学习笔记(Dataprotection)Asp.netcore学习笔记Secret和DataProtectAzurekey-vault&StorageAccount第2篇Azure入门系列(第五篇AzureStorage)这篇作为最新最完整的版本呗. 参考Docs– GetstartedwiththeDa......
  • ASP.NET Core User Secret & Azure Key Vault
    前言以前就写过很多篇了ASP.NETCore–Configuration&OptionsAsp.netcore学习笔记(Azurekey-vault)Asp.netcore学习笔记Secret和DataProtectAzurekey-vault&StorageAccount第2篇Azure入门系列(第四篇KeyVault)这篇作为最新最完整的版本呗. ......
  • python+playwright 学习-58 Jenkins上使用 Pipeline 运行 playwright 自动化脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。jenkins环境准备需安装2个跟docke......
  • 找不到“element-plus/global”的类型定义文件。 程序包含该文件是因为: 在 com
      问题描述:在tsconfig.json文件里types字段添加"element-plus/global"后出现报错。 问题原因:TS升级到5.x带来的规范性问题。可以通过npmviewtypescriptversion命令查看下你的TS版本。深层分析参考这篇:https://github.com/element-plus/ele......
  • Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性
    一,引言对于今天所分析的SonarQube,首先我们得了解什么是SonarQube?SonarQube又能帮我们做什么?我们是否在项目开发的过程中遇到人为Review代码审核规范?带着以上问题,开始今天的分析内容吧!!!1)什么是SonarQube?SonarQube是一种自动代码审查工具,用于检测代码中的错误......
  • python+playwright 学习-58 Jenkins上使用 Pipeline 运行 playwright 自动化脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。jenkins环境准备需安装2个跟d......