无论如何要在 github 操作工作流程中签署 maven 包?
Is there anyway to sign maven package at github action workflows?
我正在 运行 执行 GitHub 操作工作流,尝试 运行 maven 安装时出现失败错误。
在我安装 Maven 包之前需要我签名。
这是我的工作流 yml 文件:
name: Github Action
on:
push:
branches:
- master
- release/*
schedule:
- cron: '0 0 * * 0'
jobs:
build:
name: Main
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
java-version: [1.8]
operating-system: [ubuntu-latest]
steps:
- name: Prepare
uses: actions/checkout@v1
- name: Set Up Java Development Kit
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java-version }}
- name: Maven build clean, build, test and install
run: |
mvn clean
mvn install
mvn package --file pom.xml
这就是我得到的:
gpg: directory '/${HOME}/.gnupg' created
gpg: keybox '/${HOME}/.gnupg/pubring.kbx' created
gpg: no default secret key: No secret key
gpg: signing failed: No secret key
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.278 s
[INFO] Finished at: 2019-10-03T06:56:51Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign (sign-artifacts) on project core: Exit code: 2 -> [Help 1]
有什么方法可以使用 github 操作工作流来签署我们的包吗?
您将获得的最常见答案是使用 samuelmeuli/action-maven-publish。这个插件有两个问题——它将密钥文件写入主目录中的磁盘,并且它不允许您最大程度地自定义 Apache Maven 命令行。
相反,您可以使用 GitHub 操作机密和 gpg 命令行来安装 gpg 密钥,使用 How to Sign and Release to The Central Repository with GitHub Actions.
中的说明
另一种方法是使用 Sign Maven Plugin,它设计用于 CI/CD 系统。
所有需要的配置都可以通过环境变量完成。
Sign Maven Plugin
不使用 gpg
因此您不需要任何 gpg
初始化步骤。
您应该定义机密
- SIGN_KEY - 装甲 GPG/PGP 钥匙 - 这是必需的
- SIGN_KEY_ID - 十六进制格式的密钥 ID - 可选,SIGN_KEY 中的第一个密钥将是使用
- SIGN_KEY_PASS - 解密私人签名密钥的密码 - 如果密钥未加密则可选
在 GitHub 操作工作流程中,您传递秘密以构建:
- name: Maven build clean, build, test and install
run: mvn ...
env:
SIGN_KEY: ${{ secrets.SIGN_KEY }}
SIGN_KEY_ID: ${{ secrets. SIGN_KEY_ID }}
SIGN_KEY_PASS: ${{ secrets. SIGN_KEY_PASS }}
我正在 运行 执行 GitHub 操作工作流,尝试 运行 maven 安装时出现失败错误。 在我安装 Maven 包之前需要我签名。 这是我的工作流 yml 文件:
name: Github Action
on:
push:
branches:
- master
- release/*
schedule:
- cron: '0 0 * * 0'
jobs:
build:
name: Main
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
java-version: [1.8]
operating-system: [ubuntu-latest]
steps:
- name: Prepare
uses: actions/checkout@v1
- name: Set Up Java Development Kit
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java-version }}
- name: Maven build clean, build, test and install
run: |
mvn clean
mvn install
mvn package --file pom.xml
这就是我得到的:
gpg: directory '/${HOME}/.gnupg' created
gpg: keybox '/${HOME}/.gnupg/pubring.kbx' created
gpg: no default secret key: No secret key
gpg: signing failed: No secret key
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.278 s
[INFO] Finished at: 2019-10-03T06:56:51Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign (sign-artifacts) on project core: Exit code: 2 -> [Help 1]
有什么方法可以使用 github 操作工作流来签署我们的包吗?
您将获得的最常见答案是使用 samuelmeuli/action-maven-publish。这个插件有两个问题——它将密钥文件写入主目录中的磁盘,并且它不允许您最大程度地自定义 Apache Maven 命令行。
相反,您可以使用 GitHub 操作机密和 gpg 命令行来安装 gpg 密钥,使用 How to Sign and Release to The Central Repository with GitHub Actions.
中的说明另一种方法是使用 Sign Maven Plugin,它设计用于 CI/CD 系统。
所有需要的配置都可以通过环境变量完成。
Sign Maven Plugin
不使用 gpg
因此您不需要任何 gpg
初始化步骤。
您应该定义机密
- SIGN_KEY - 装甲 GPG/PGP 钥匙 - 这是必需的
- SIGN_KEY_ID - 十六进制格式的密钥 ID - 可选,SIGN_KEY 中的第一个密钥将是使用
- SIGN_KEY_PASS - 解密私人签名密钥的密码 - 如果密钥未加密则可选
在 GitHub 操作工作流程中,您传递秘密以构建:
- name: Maven build clean, build, test and install
run: mvn ...
env:
SIGN_KEY: ${{ secrets.SIGN_KEY }}
SIGN_KEY_ID: ${{ secrets. SIGN_KEY_ID }}
SIGN_KEY_PASS: ${{ secrets. SIGN_KEY_PASS }}