diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index c3cf42d01..0549c688f 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -283,14 +283,13 @@ jobs: server-id: maven # Value of the distributionManagement/repository/id field of the pom.xml server-username: MAVEN_USERNAME # env variable for username in deploy server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import - gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase - name: Publish to Apache Maven Central - run: mvn deploy + run: mvn deploy -Dgpg.signer=bc env: MAVEN_USERNAME: maven_username123 MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }} + MAVEN_GPG_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} ``` @@ -326,10 +325,6 @@ The two `settings.xml` files created from the above example look like the follow ${env.MAVEN_USERNAME} ${env.MAVEN_CENTRAL_TOKEN} - - gpg.passphrase - ${env.MAVEN_GPG_PASSPHRASE} - ``` @@ -338,21 +333,6 @@ The two `settings.xml` files created from the above example look like the follow If you don't want to overwrite the `settings.xml` file, you can set `overwrite-settings: false` -### Extra setup for pom.xml: - -The Maven GPG Plugin configuration in the pom.xml file should contain the following structure to avoid possible issues like `Inappropriate ioctl for device` or `gpg: signing failed: No such file or directory`: - -```xml - - - - --pinentry-mode - loopback - - -``` -GPG 2.1 requires `--pinentry-mode` to be set to `loopback` in order to pick up the `gpg.passphrase` value defined in Maven `settings.xml`. - ### GPG If `gpg-private-key` input is provided, the private key will be written to a file in the runner's temp directory, the private key file will be imported into the GPG keychain, and then the file will be promptly removed before proceeding with the rest of the setup process. A cleanup step will remove the imported private key from the GPG keychain after the job completes regardless of the job status. This ensures that the private key is no longer accessible on self-hosted runners and cannot "leak" between jobs (hosted runners are always clean instances).