Skip to content

Ajuste da mensagem de release #15

Ajuste da mensagem de release

Ajuste da mensagem de release #15

name: Build, Publish & Release
on:
push:
branches: [ "pipeline" ]
release:
types: [created] # Dispara quando você cria uma Release na interface do GitHub
workflow_dispatch:
env:
JAVA_VERSION: ${{ vars.JAVA_VERSION }}
jobs:
# Build e Teste
build:
name: Build & Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
gradle-version: '8.5'
- name: Run Wrapper
run: gradle wrapper
- name: Run Tests
run: ./gradlew clean check assemble --no-daemon
# Publish (Central + GitHub + Release)
publish-and-release:
name: Publish & Release
runs-on: ubuntu-latest
needs: build
permissions:
contents: write # Para subir arquivos na Release
packages: write # Para publicar no GitHub Packages
steps:
- name: Get version konduto.properties
run: |
VERSION=$(grep 'version' src/main/resources/konduto.properties | cut -d'=' -f2 | tr -d '[:space:]')
echo "SDK_VERSION=$VERSION" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
gradle-version: '8.5'
- name: Run Wrapper
run: gradle wrapper
- name: Define Release Message
run: |
DATE=$(date +'%Y-%m-%d %H:%M:%S')
LINK_MAVEN="https://central.sonatype.com/artifact/com.konduto.sdk/java-sdk/${{ env.SDK_VERSION }}"
# Add msg do RELEASE_MSG.md
# echo "CUSTOM_RELEASE_MSG=🇧🇷 remoção da lib xyz e atualização para java 21<br><hr>🇺🇸 remove lib xyz and update to java 21<br><hr>✅ Publicado no Maven Central em: $DATE<br>🔗 [Visualizar no Portal]($LINK_MAVEN)" >> $GITHUB_ENV
echo "CUSTOM_RELEASE_MSG<<EOF" >> $GITHUB_ENV
cat RELEASE_MSG.md >> $GITHUB_ENV
echo "### ✅ Publicado no Maven Central em: $DATE<br>📦🔗 [Visualizar no Portal]($LINK_MAVEN)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
# ---------------------------------------------------
# Publish MAVEN CENTRAL
# ---------------------------------------------------
- name: Publish to Maven Central
env:
# Temp BASE64
GPG_BASE64: ${{ secrets.GPG_SIGNING_KEY }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USER }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASS }}
# ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_SIGNING_PASS }}
# Change to InMemory GPG
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SIGNING_PASS }}
run: |
# export ORG_GRADLE_PROJECT_signingKey=$(echo "$GPG_BASE64" | base64 -d)
export ORG_GRADLE_PROJECT_signingInMemoryKey=$(echo "$GPG_BASE64" | base64 -d)
./gradlew publishToMavenCentral --no-daemon
# # ---------------------------------------------------
# # Publish GITHUB PACKAGES
# # ---------------------------------------------------
# - name: Publish to GitHub Packages
# env:
# GITHUB_ACTOR: ${{ github.actor }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# # Assinar no packages tbm
# # ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_SIGNING_KEY }}
# # ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_SIGNING_PASS }}
# ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SIGNING_KEY }}
# ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SIGNING_PASS }}
# run: |
# export ORG_GRADLE_PROJECT_signingInMemoryKey=$(echo "$GPG_BASE64" | base64 -d)
# ./gradlew publishAllPublicationsToGitHubPackagesRepository --no-daemon
# ---------------------------------------------------
# ADD JARs na Pagina de RELEASE do GitHub
# ---------------------------------------------------
- name: Upload JARs to GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/pipeline'
with:
files: build/libs/*.jar
body: |
---
${{ env.CUSTOM_RELEASE_MSG }}
draft: true # Cria como rascunho apenas para mantedores
# prerelease: false # Se for release final, deixe false
# Garante o conteudo na variavel $env.CUSTOM_RELEASE_MSG
append_body: true