Skip to content

deploy

deploy #15

Workflow file for this run

# GITHUB_TOKEN
# NEXUS_USER
# NEXUS_PASS64 (base64 NOTE: `base64` and `openssl base64` failed, had to use Java
# byte[] data = "{{password}}".getBytes(StandardCharsets.UTF_8);
# String encoded = new String(Base64.getEncoder().encode(data), StandardCharsets.UTF_8);
# System.out.println(encoded);
# GPG_PASSPHRASE
# GPG_KEY64 (base64)
# gpg --export-secret-keys --armor KEY_ID | openssl base64 | pbcopy
# GRADLE_KEY
# GRADLE_SECRET
name: deploy
on:
workflow_dispatch:
inputs:
to_publish:
description: 'What to publish'
required: true
default: 'all'
type: choice
options:
- plugin-gradle
- plugin-maven
- all
- lib
jobs:
build:
runs-on: ubuntu-latest
name: deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ORG_GRADLE_PROJECT_nexus_user: ${{ secrets.NEXUS_USER }}
ORG_GRADLE_PROJECT_nexus_pass64: ${{ secrets.NEXUS_PASS64 }}
ORG_GRADLE_PROJECT_gpg_passphrase: ${{ secrets.GPG_PASSPHRASE }}
ORG_GRADLE_PROJECT_gpg_key64: ${{ secrets.GPG_KEY64 }}
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # All tags should be fetched.
- name: jdk 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- name: Generate release name for lib
if: github.event.inputs.to_publish == 'all' || github.event.inputs.to_publish == 'lib'
run: |
# Find the latest tag in the lib/ namespace
export LIB_TAG=$(git tag --sort=-creatordate --list 'lib/*' | head -n 1)
echo "LIB_TAG=$LIB_TAG" >> $GITHUB_ENV
# Generate the release name looks like "Lib 1.2.3"
echo "LIB_NAME=Lib $(echo $LIB_TAG | cut -d'/' -f2)" >> $GITHUB_ENV
- name: Extract release notes for lib
if: github.event.inputs.to_publish == 'all' || github.event.inputs.to_publish == 'lib'
uses: ffurrer2/extract-release-notes@v2
with:
changelog_file: CHANGES.md
release_notes_file: RELEASE_NOTES_FOR_LIB.md
- name: Generate release name for Gradle plugin
if: github.event.inputs.to_publish == 'all' || github.event.inputs.to_publish == 'plugin-gradle'
run: |
# Find the latest tag in the gradle/ namespace
export PLUGIN_GRADLE_TAG=$(git tag --sort=-creatordate --list 'gradle/*' | head -n 1)
echo "PLUGIN_GRADLE_TAG=$PLUGIN_GRADLE_TAG" >> $GITHUB_ENV
# Generate the release name looks like "Gradle Plugin 1.2.3"
echo "PLUGIN_GRADLE_NAME=Gradle Plugin $(echo $PLUGIN_GRADLE_TAG | cut -d'/' -f2)" >> $GITHUB_ENV
- name: Extract release notes for Gradle plugin
if: github.event.inputs.to_publish == 'all' || github.event.inputs.to_publish == 'plugin-gradle'
uses: ffurrer2/extract-release-notes@v2
with:
changelog_file: plugin-gradle/CHANGES.md
release_notes_file: RELEASE_NOTES_FOR_PLUGIN_GRADLE.md
- name: Generate release name for Maven plugin
if: github.event.inputs.to_publish == 'all' || github.event.inputs.to_publish == 'plugin-maven'
run: |
# Find the latest tag in the maven/ namespace
export PLUGIN_MAVEN_TAG=$(git tag --sort=-creatordate --list 'maven/*' | head -n 1)
echo "PLUGIN_MAVEN_TAG=$PLUGIN_MAVEN_TAG" >> $GITHUB_ENV
# Generate the release name looks like "Maven Plugin 1.2.3"
echo "PLUGIN_MAVEN_NAME=Maven Plugin $(echo $PLUGIN_MAVEN_TAG | cut -d'/' -f2)" >> $GITHUB_ENV
- name: Extract release notes for Maven plugin
if: github.event.inputs.to_publish == 'all' || github.event.inputs.to_publish == 'plugin-maven'
uses: ffurrer2/extract-release-notes@v2
with:
changelog_file: plugin-maven/CHANGES.md
release_notes_file: RELEASE_NOTES_FOR_PLUGIN_MAVEN.md
- name: publish all
if: "${{ github.event.inputs.to_publish == 'all' }}"
run: |
gh release create ${{ env.LIB_TAG }} --title '${{ env.LIB_NAME }}' --notes-file RELEASE_NOTES_FOR_LIB.md
gh release create ${{ env.PLUGIN_GRADLE_TAG }} --title '${{ env.PLUGIN_GRADLE_NAME }}' --notes-file RELEASE_NOTES_FOR_PLUGIN_GRADLE.md
gh release create ${{ env.PLUGIN_MAVEN_TAG }} --title '${{ env.PLUGIN_MAVEN_NAME }}' --notes-file RELEASE_NOTES_FOR_PLUGIN_MAVEN.md
- name: publish just plugin-gradle
if: "${{ github.event.inputs.to_publish == 'plugin-gradle' }}"
run: |
gh release create ${{ env.PLUGIN_GRADLE_TAG }} --title '${{ env.PLUGIN_GRADLE_NAME }}' --notes-file RELEASE_NOTES_FOR_PLUGIN_GRADLE.md
- name: publish just plugin-maven
if: "${{ github.event.inputs.to_publish == 'plugin-maven' }}"
run: |
gh release create ${{ env.PLUGIN_MAVEN_TAG }} --title '${{ env.PLUGIN_MAVEN_NAME }}' --notes-file RELEASE_NOTES_FOR_PLUGIN_MAVEN.md
- name: publish just lib
if: "${{ github.event.inputs.to_publish == 'lib' }}"
run: |
gh release create ${{ env.LIB_TAG }} --title '${{ env.LIB_NAME }}' --notes-file RELEASE_NOTES_FOR_LIB.md