maven - 无论如何要在 github 操作工作流中签署 maven 包吗?
问题描述
我正在运行 GitHub Action 工作流程,并且在尝试运行 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 命令行。
相反,您可以使用How to Sign and Release to The Central Repository with GitHub Actions 中的说明,使用 GitHub 操作机密和 gpg 命令行来安装 gpg 密钥。
推荐阅读
- google-cloud-platform - GCP:是否可以将对象从源 BUCKET 复制/传输到在不同组织中创建的目标 BUCKET?
- cocos2d-x - 根据 onMouseMove 旋转精灵 cocos2d-x
- sql - SQL where 子句被忽略
- sharepoint - SSIS 2017 OData 源 - Sharepoint 2016 $expand
- c - 为什么在线程完成执行后我不能访问线程内分配的数组?
- docker - 为什么拉取带有“最新”标签的 Docker 镜像时,GitHub 上的“最新”版本会有所不同?
- python - 将不同子文件夹中同名的 csv 文件合并为一个 csv
- python - 有没有办法将所有类型的私钥表示为正则表达式?(不管它们是否有效)
- javascript - Firestore 不要求创建索引但查询有效
- reactjs - 如何将一个类的功能添加到组件中的另一个功能中?