首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在github动作工作流中是否有maven包的签名?

在github动作工作流中是否有maven包的签名?
EN

Stack Overflow用户
提问于 2019-10-03 07:47:47
回答 2查看 920关注 0票数 10

我正在运行一个GitHub操作工作流,并且在尝试运行maven安装时出现了错误。在安装maven包之前,需要我进行签名。在这里,我的工作流yml文件:

代码语言:javascript
运行
复制
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

我得到的是:

代码语言:javascript
运行
复制
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动作工作流来签署我们的包?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-19 00:21:17

您将得到的最常见的答案是使用samuelmeuli/action-maven-发布。这个插件有两个问题-它将秘密密钥文件写入主目录中的磁盘,并且它不允许您尽可能地自定义Apache命令行。

相反,您可以使用GitHub操作机密和gpg命令行来安装gpg密钥,使用来自如何使用GitHub操作对中央存储库进行签名和发布的说明。

票数 4
EN

Stack Overflow用户

发布于 2021-03-02 21:33:38

另一种方法是使用符号Maven插件,这是设计用于CI/CD系统的。

所有所需的配置都可以通过环境变量来完成。

Sign Maven Plugin不使用gpg,因此不需要任何gpg初始化步骤。

你应该给秘密下定义

  • SIGN_KEY -装甲GPG/PGP密钥-这是必需的
  • SIGN_KEY_ID -十六进制格式的密钥id可选,将使用SIGN_KEY中的第一个键。
  • SIGN_KEY_PASS -密码用于解密私有签名密钥-如果密钥未加密则可选

在GitHub操作工作流中,您传递要构建的秘密:

代码语言:javascript
运行
复制
 - 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 }}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58214572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档