Saltar al contenido
mypipelines
Pipelines Actions Gradle Buscar
Java (Spring Boot)· Reusable workflow ·on: workflow_call

Java Artifact Dependency Github

Java - Publish Dependency to GitHub Packages

.github/workflows/java-artifact-dependency-github.yml

.github/workflows/java-artifact-dependency-github.yml
name: Java - Publish Dependency to GitHub Packages
on:
workflow_call:
inputs:
runner:
description: 'Runner type'
required: false
type: string
default: 'ubuntu-latest'
java_version:
description: 'Java version'
required: false
type: string
default: '21'
java_distribution:
description: 'Java distribution'
required: false
type: string
default: 'temurin'
publish_task:
description: 'Gradle task to publish (e.g., publish, publishToGitHubPackages)'
required: false
type: string
default: 'publish'
outputs:
version:
description: 'Published artifact version'
value: ${{ jobs.publish.outputs.version }}
group:
description: 'Published artifact group'
value: ${{ jobs.publish.outputs.group }}
artifact_name:
description: 'Published artifact name'
value: ${{ jobs.publish.outputs.artifact_name }}
jobs:
publish:
name: Publish to GitHub Packages
runs-on: ${{ inputs.runner }}
timeout-minutes: 15
outputs:
version: ${{ steps.info.outputs.version }}
group: ${{ steps.info.outputs.group }}
artifact_name: ${{ steps.info.outputs.artifact_name }}
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup JDK ${{ inputs.java_version }}
uses: actions/setup-java@v5
with:
distribution: ${{ inputs.java_distribution }}
java-version: ${{ inputs.java_version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }}
- name: Get artifact info
id: info
run: |
VERSION=$(./gradlew properties --no-daemon -q | grep "^version:" | awk '{print $2}')
GROUP=$(./gradlew properties --no-daemon -q | grep "^group:" | awk '{print $2}')
NAME=$(./gradlew properties --no-daemon -q | grep "^name:" | awk '{print $2}')
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "group=$GROUP" >> $GITHUB_OUTPUT
echo "artifact_name=$NAME" >> $GITHUB_OUTPUT
echo "Artifact: ${GROUP}:${NAME}:${VERSION}"
- name: Build
run: ./gradlew clean build -x test --no-daemon --build-cache --parallel
- name: Publish to GitHub Packages
env:
GH_PACKAGES_USERNAME: ${{ secrets.GH_PACKAGES_USERNAME }}
GH_PACKAGES_TOKEN: ${{ secrets.GH_PACKAGES_TOKEN }}
run: ./gradlew ${{ inputs.publish_task }} --no-daemon --build-cache
- name: Summary
env:
VERSION: ${{ steps.info.outputs.version }}
GROUP: ${{ steps.info.outputs.group }}
ARTIFACT_NAME: ${{ steps.info.outputs.artifact_name }}
run: |
echo "### Java Dependency Published to GitHub Packages" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Property | Value |" >> $GITHUB_STEP_SUMMARY
echo "|----------|-------|" >> $GITHUB_STEP_SUMMARY
echo "| **Group** | $GROUP |" >> $GITHUB_STEP_SUMMARY
echo "| **Artifact** | $ARTIFACT_NAME |" >> $GITHUB_STEP_SUMMARY
echo "| **Version** | $VERSION |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Usage (Gradle):**" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`gradle" >> $GITHUB_STEP_SUMMARY
echo "implementation '${GROUP}:${ARTIFACT_NAME}:${VERSION}'" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY