这是有关如何将 Azure DevOps 与 eSigner CodeSignTool 集成以执行自动代码签名的指南。
CodeSignTool 是一个命令行实用程序,适用于云代码签名过程,并与各种 CI/CD 平台无缝集成。 它构成了 eSigner 的一部分:我们的远程签名服务提供了一种高效、安全和用户友好的代码签名方法。
环境变量
- USERNAME: SSL.com 帐户用户名。 (必需的)
- 密码: SSL.com 帐号密码 (必填)
- 凭据_ID:用于签署证书的凭据 ID。 如果 credential_id 被省略并且用户只有一个 eSigner 代码签名证书,CodeSignTool 将默认使用该证书。 如果用户拥有多个代码签名证书,则此参数为必填项。 (必需的)
- TOTP_秘密:OAuth TOTP 秘密。 您可以访问详细信息 https://www.ssl.com/how-to/automate-esigner-ev-code-signing (必填)
- ENVIRONMENT_NAME :“测试”或“生产”环境。 (必需的)
输入
- 输入文件路径:要签名的代码对象的路径。 (必需的)
- 输出目录路径:将写入签名代码对象的目录。 如果省略 output_path,则在 -file_path 中指定的文件将被签名文件覆盖。
在 visualstudio.com 上创建一个项目
在代码编辑器上创建一个新的 .yml 文件
设置集成触发器和环境变量
持续集成触发器
扳机:
- 没有
全局定义环境变量。 作业级别属性覆盖全局变量
变量:
构建配置:“发布”
将作业分组为阶段
编写构建阶段的步骤。 一个阶段的所有作业必须在下一阶段执行之前完成。
阶段:
– 阶段:构建
# 当工作流运行时,这是记录的名称
显示名称:构建
工作:
- 工作:
池:
在 Windows VM 上运行作业
vmImage: 'windows 最新的'
脚步:
安装 Dotnet 6.0.x
– 任务:UseDotNet@2
displayName: '安装 .NET Core SDK'
输入:
版本:'6.0.x'
performMultiLevelLookup: 真
includePreviewVersions:true
恢复 Dotnet 项目
– 任务:DotNetCoreCLI@2
显示名称:恢复
输入:
命令:'恢复'
使用 Release 配置构建 dotnet 项目
– 任务:DotNetCoreCLI@2
显示名称:构建
输入:
命令:构建
项目:HelloWorld.csproj
参数:'--配置 $(buildConfiguration)'
为已签名的工件创建目录
– powershell:New-Item -ItemType Directory -Path ./artifacts
displayName: '为工件创建目录'
为签名包创建目录
– powershell:New-Item -ItemType Directory -Path ./packages
displayName: '为包创建目录'
将工件复制到签名路径
– powershell:复制项目 ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName:“将构建的工件复制到包目录”
保存工件以使用签名作业
– 任务:PublishBuildArtifacts@1
displayName: '保存要下载的签名工件'
输入:
发布路径:./packages/HelloWorld.dll
工件名称:HelloWorld.dll
编写 Sign 阶段的步骤
- 阶段:标志
# 当工作流运行时,这是记录的名称
显示名称:标志
工作:
- 工作:
池:
在 Ubuntu 虚拟机上运行作业
vmImage:“Ubuntu 最新”
脚步:
为已签名的工件创建目录
– 脚本:mkdir -p ./artifacts && mkdir -p ./packages
displayName:“为工件和包创建的目录”
下载要签名的工件
– 任务:DownloadPipelineArtifact@2
输入:
工件:HelloWorld.dll
下载路径:./packages
安装 Docker 17.09.0-ce
– 任务:DockerInstaller@0
显示名称:Docker 安装程序
输入:
码头工人版本:17.09.0-ce
发布类型:稳定
Docker 拉取 CodeSigner Docker 镜像
– 脚本:docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker 拉取 CodeSigner Docker 映像'
使用 CodeSigner 泊坞窗图像签署工件
– 脚本:docker run -i –rm –dns 8.8.8.8 –network host –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e 用户名=$(用户名) -e 密码=$(密码) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:最新标志-input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/代码设计/输出
displayName: '使用 CodeSigner 泊坞窗图像签署工件'
保存已签名的工件以供下载
– 任务:PublishBuildArtifacts@1
displayName: '保存已签名的工件以供下载'
输入:
发布路径:./artifacts/HelloWorld.dll
工件名称:HelloWorld.dll
创建一个新的 .gitignore 文件
输入:
箱子
OBJ
.vscode
在消息栏上,输入 Created pipeline.yml 并单击 承诺 按键
继续点击 同步更改 按键
继续访问 visualstudio.com 并单击 回购 在仪表板上
刷新页面可以看到yml文件
点击 管道 在仪表板上
接下来,单击 创建管道
单击 Azure 存储库 Git
选择您的 YAML 文件
点击 变量 按钮后面 新变量
放置每个环境变量的值,然后单击 OK 按键
单击 + 号继续添加每个变量
放入所有变量后,继续创建您的管道
运行您的管道
点击 管道 在仪表板上。 单击管道上的三个点(更多选项)。 点击 运行管道。 最后,单击 运行 按钮。
点击 Build 开始构建阶段
检查构建阶段的每个作业是否成功
点击旁边的下拉箭头 工作 查看每个构建作业的状态
单击启动 Sign 阶段 工作
检查签名过程中的每一步是否成功
仔细检查构建和签名阶段是否成功
示例 Azure DevOps 管道
查看我们创建的示例 Azure DevOps 管道 github.com/SSLcom/codesigner-azuredevops-样本其他远程签名集成指南
- 与 CircleCI 的云代码签名集成
- 云代码签名与 GitHub Actions 的集成
- 云代码签名与 GitLab CI 的集成
- 云代码签名与 Travis CI 的集成
- 云代码签名与 Jenkins CI 的集成
- 与 BitBucket 的云代码签名集成
- 使用 CI/CD 服务实现云代码签名自动化
需要定制解决方案?
凭借我们的专业知识和五星级支持人员,我们已准备好并愿意与您合作制定定制解决方案或企业级大批量签约折扣。 填写下面的表格,我们会与您联系。