环境变量
- 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 中指定的文件将被签名文件覆盖。
Java 代码 (Maven) JAR 签名示例工作流
建立专案
在项目下,为 Travis 创建一个文件
定义工作流的组件
- 放置运行作业的 CPU 架构
拱门:amd64
- 运行测试的默认语言
语言:java
- 指定运行作业的操作系统
操作系统:Linux
- 编写将要使用的 Ubuntu 发行版
分布:仿生
- 全局定义环境变量。 作业级别属性覆盖全局变量。
- 请注意,仅 Gradle 项目实例需要 TERM=dumb。
- 在 ENVIRONMENT_NAME 下,为测试签名放置“TEST”,为实时签名放置“PROD”。
环境:
全球的:
– PROJECT_NAME =“HelloWorld”
– PROJECT_VERSION=”0.0.1”
– 术语=哑巴
– ENVIRONMENT_NAME=”测试”
- 指定阶段的顺序。 一个阶段的所有作业必须在下一阶段执行之前完成。
阶段:
- 建造
- 符号
概述构建阶段
工作:
包括:
– 阶段:构建
- 职位名称
名称:构建maven
- 要使用的 Ubuntu 发行版
分布:仿生
- 使用 docker 命令进行签名
服务:
– 码头工人
- 使用 dotnet-cli 构建项目
语言:java
- 用于构建项目的 Java 版本
JDK:
– oraclejdk17
- 缓存 m2 目录以加快速度
缓存:
目录:
– $HOME/.m2
- 在构建项目之前编写 Before 脚本以运行
before_script:
# 为工件创建目录
– mkdir -p ${TRAVIS_BUILD_DIR}/工件
– mkdir -p ${TRAVIS_BUILD_DIR}/包
# 设置 Maven 构建选项
– 导出 MAVEN_CLI_OPTS=”–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”
- 编写脚本来构建项目。
- 在此签名示例工作流中,创建了多个项目类型。 这就是为什么通过创建子文件夹来保存不同项目类型的文件的原因。 为 Java 项目创建了一个名为“java”的子文件夹。 在上面的演示屏幕截图中,没有必要创建一个名为“java”的子文件夹,因此它没有包含在脚本中。
脚本:
# 使用 Maven 选项构建 Maven 项目
– mvn $MAVEN_CLI_OPTS 全新安装 -f java/pom.xml
# 将构建的工件复制到工件目录
– cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar
- 概述如何指定在作业成功时应附加到作业的文件和目录列表。
工作区:
创造:
名称:maven-jar-artifacts
路径:
# 保存工件以使用签名作业
– ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar
勾勒标志阶段
– 阶段:标志
- 写作业名
名称:sign-jar-file
- 放置要使用的 Ubuntu 发行版
分布:仿生
- 使用 Docker 命令进行签名
服务:
– 码头工人
- 为特定作业定义环境变量。
- 在上面的屏幕截图中,sign 命令是直接在 sign 脚本中定义的,而不是在环境变量下。 乙OTH 方法可以使用 TravisCI 正确签名。
环境:
命令=“符号”
- 使用 dotnet-cli 构建项目
语言:java
- 用于构建项目的 Java 版本
JDK:
– oraclejdk17
- 在构建项目之前运行脚本之前
before_script:
# 为工件创建目录
– mkdir -p ${TRAVIS_BUILD_DIR}/工件
– mkdir -p ${TRAVIS_BUILD_DIR}/包
- 构建项目的脚本
脚本:
# Docker 拉取 CodeSigner Docker 镜像
– docker pull ghcr.io/sslcom/codesigner:最新
# 使用 CodeSigner Docker 镜像签署工件
– docker run -i –rm –dns 8.8.8.8 –network host –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples
–volume ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output
-e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}
-e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:最新 ${COMMAND}
-input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output
- 用于指定作业成功时应附加到作业的文件和目录列表。
工作区:
使用:
– maven-jar-工件
创造:
名称:签名的jar文件
路径:
# 保存签名的工件
– ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar
定义环境变量
转到 Travis 并单击 个人设置 按键
添加每个变量的值
向下滚动到 环境变量 部分并单击添加按钮以添加每个变量的值
创建一个 Github 存储库
在 Github 上查找推送命令
在编辑器的终端上编写推送命令
等待构建作业完成
在 Travis 上,构建作业应在您推送代码后自动启动。
启动代码签名阶段
点击 签署 对于部分 CodeSign工具 开始签名过程
等待您的虚拟机完成启动
确认代码签名是否成功
示例 Travis CI 流水线
查看我们创建的示例 Travis CI 管道 github.com/SSLcom/codesigner-travisci-sample其他 CI/CD 服务远程签名集成指南
- 与 CircleCI 的云代码签名集成
- 云代码签名与 GitHub Actions 的集成
- 云代码签名与 GitLab CI 的集成
- 云代码签名与 Jenkins CI 的集成
- 云代码签名与 Azure DevOps 的集成
- 与 BitBucket 的云代码签名集成
- 使用 CI/CD 服务实现云代码签名自动化
需要定制解决方案?
凭借我们的专业知识和五星级支持人员,我们已准备好并愿意与您合作制定定制解决方案或企业级大批量签约折扣。 填写下面的表格,我们会与您联系。