gpt4 book ai didi

github - 如何在 github 操作中使用 GPG key ?

转载 作者:行者123 更新时间:2023-12-03 15:59:42 24 4
gpt4 key购买 nike

我正在尝试通过 进行 maven 部署GitHub 操作 我收到以下错误:-

gpg: directory '/home/runner/.gnupg' created
gpg: keybox '/home/runner/.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: 13.272 s
[INFO] Finished at: 2020-04-06T12:18:44Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (sign-artifacts) on project pretty-simple-jar: Exit code: 2 -> [Help 1]

我知道我需要以某种方式在运行操作工作流的虚拟运行器中导入我的 gpg key ,但我无法找到通过 GitHub 操作工作流在虚拟运行器中导入我的 key 的方法?

以下是我的工作流程:-
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Maven Central Repository
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Display settings.xml
run: |
echo "<settings><servers><server><id>ossrh</id><username>${{ secrets.OSSRH_USERNAME }}</username><password>${{ secrets.OSSRH_TOKEN }}</password></server></servers><profiles><profile><id>ossrh</id><activation><activeByDefault>true</activeByDefault></activation><properties><gpg.keyname>${{ secrets.GPG_KEY_ID }}</gpg.keyname><gpg.passphrase>'${{ secrets.GPG_PASSPHRASE }}'</gpg.passphrase></properties></profile></profiles></settings>" > /home/runner/.m2/settings.xml
cat /home/runner/.m2/settings.xml
- name: Build Maven Project
run: mvn clean install
- name: Publish to Apache Maven Central
run: mvn deploy

最佳答案

由于 GitHub Actions 基本上是一个运行命令的容器,您是否考虑过将您的 key 定义为您项目中的 secret ,然后将其导入您的 Github Action 定义中?
以下是我之前在项目中用于将生成的工件发布到 Sonatype 的临时存储库的步骤:

  • 打开终端窗口。
  • 如果您不知道您的 key ID,请通过电子邮件搜索:gpg --list-secret-keys user@example.com
  • 将您的 key 导出为 Base64:gpg --export-secret-keys YOUR_ID_HERE | base64 > private.key
  • 在您的 Github 项目中,创建一个名为 的新 Secret。 GPG_SIGNING_KEY 并粘贴您的 key 的 Base64 内容。
  • 在您的 yml 工作流文件中,包括从您刚刚定义的 key 导入 key 的步骤。
  • - name: Configure GPG Key
    run: |
    echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import
    env:
    GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
    到目前为止,它运行得很好,尽管有一些我无法解决的限制:
  • 您的 GPG key 不应受密码保护。我想不出一种方法来导入 protected key 而不被问及他们的 secret 。
  • 我找不到在此过程中使用我的 GitHub GPG key 的方法。

  • 以防万一, here是一个使用这种方法发布 Maven 工件的项目的工作示例。但是,与上述步骤的唯一区别是命令被外部化为 a bash script file .

    关于github - 如何在 github 操作中使用 GPG key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61096521/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com