Skip to content

dockerbakery/gradle-metadata-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

About

Gradle Metadata Action for Docker Buildx Bake.

Usage

Bake definition

This action also handles a bake definition file that can be used with the Docker Bake action. You just have to declare an empty target named gradle-metadata-action and inherit from it.

// docker-bake.hcl
target "docker-metadata-action" {}
target "gradle-metadata-action" {}

target "build" {
  inherits = ["docker-metadata-action", "gradle-metadata-action"]
  context = "./"
  dockerfile = "Dockerfile"
  platforms = [
    "linux/amd64",
    "linux/arm/v6",
    "linux/arm/v7",
    "linux/arm64",
    "linux/386"
  ]
}
name: ci

on:
  push:
    branches:
      - 'main'
    tags:
      - 'v*'
  pull_request:
    branches:
      - 'main'

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2

      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v4
        with:
          images: |
            name/app
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=sha

      - name: Gradle meta
        id: gradle-meta
        uses: dockerbakery/gradle-metadata-action@v2

      - uses: docker/bake-action@v2
        with:
          files: |
            ./docker-bake.hcl
            ${{ steps.meta.outputs.bake-file }}
            ${{ steps.gradle-meta.outputs.bake-file }}
          targets: build

Input

Following inputs can be used as step.with keys

Name Type Description
context String Where to get context data. Allowed options are: workflow (default "current directory).
version String Set the version of the Gradle project (override the version property)

Output

Output of docker buildx bake -f gradle-metadata-action.hcl --print gradle-metadata-action command.

{
  "group": {
    "default": {
      "targets": [
        "gradle-metadata-action"
      ]
    }
  },
  "target": {
    "gradle-metadata-action": {
      "args": {
        "GRADLE_VERSION": "7.6",
        "GRADLE_PROJECT_NAME": "example-project",
        "GRADLE_PROJECT_DESCRIPTION": "example-project",
        "GRADLE_PROJECT_GROUP": "com.example",
        "GRADLE_PROJECT_PROFILE": "dev",
        "GRADLE_PROJECT_VERSION": "1.0.0-SNAPSHOT",
        "GRADLE_PROJECT_PROFILE": "production",
        "GRADLE_BUILD_ARTIFACT_ID": "example-project-1.0.0-SNAPSHOT",
        "GRADLE_BUILD_ARTIFACT": "example-project-1.0.0-SNAPSHOT.jar",
        "GRADLE_TARGET_COMPATIBILITY": "11",
        "GRADLE_SOURCE_COMPATIBILITY": "11",
        "JAVA_VENDOR": "AdoptOpenJDK",
        "JAVA_VERSION": "11.0.11",
      }
    }
  }
}

Resources