Есть ли способ подписать пакет maven в рабочих процессах действий github?

Я запускаю рабочий процесс 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?

2 ответа

Решение

Самый распространенный ответ, который вы получите, - это использовать https://github.com/samuelmeuli/action-maven-publish. У этого плагина есть две проблемы: он записывает файл секретного ключа на диск в домашнем каталоге и не позволяет вам максимально настраивать командную строку Apache Maven.

Вместо этого вы можете использовать секреты действий GitHub и командную строку gpg для установки секретного ключа gpg, используя инструкции из раздела Как подписать и передать в центральный репозиторий с помощью действий GitHub.

Другой способ — использовать плагин Sign Maven , который предназначен для использования в системах CI/CD.

Всю необходимую конфигурацию можно выполнить с помощью переменных среды.

Sign Maven Pluginне использует, поэтому вам не нужно делать никаких шагов с gpgинициализация.

Вы должны определить секреты

  • SIGN_KEY - бронированный ключ GPG/PGP - это обязательно
  • SIGN_KEY_ID - идентификатор ключа в шестнадцатеричном формате - необязательно, будет использоваться первый ключ из SIGN_KEY
  • SIGN_KEY_PASS — парольная фраза для расшифровки закрытого ключа подписи — необязательно, если ключ не зашифрован

В рабочем процессе GitHub Action вы передаете секреты для сборки:

       - 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 }}

Другие вопросы по тегам