name: "Gradle Build Action"
description: 'Executes a Gradle build, caching useful state in the GitHub actions cache'

# https://help.github.com/en/articles/metadata-syntax-for-github-actions

inputs:
  gradle-executable:
    description: Path to the Gradle executable
    required: false

  gradle-version:
    description: Gradle version to use
    required: false

  build-root-directory:
    description: Path to the root directory of the build
    required: false

  arguments:
    description: Gradle command line arguments (supports multi-line input)
    required: false

  cache-disabled:
    description: When 'true', all caching is disabled. No entries will be written to or read from the cache.
    required: false
    default: false

  cache-read-only:
    description: When 'true', existing entries will be read from the cache but no entries will be written.
    required: false
    default: false 
  # e.g. Use the following setting to only write cache entries from your 'main' branch
  #     cache-read-only: ${{ github.ref != 'refs/heads/main' }}

  gradle-home-cache-includes:
    description: Paths within Gradle User Home to cache.
    required: false
    default: |
        caches
        notifications

  gradle-home-cache-excludes:
    description: Paths within Gradle User Home to exclude from cache.
    required: false
  
  # e.g. Use the following setting to prevent the local build cache from being saved/restored
  #      gradle-home-cache-excludes: |
  #           ["caches/build-cache-1"]

  # EXPERIMENTAL & INTERNAL CONFIGURATION PROPERTIES
  # The following action properties allow fine-grained tweaking of the action caching behaviour.
  # These properties are not designed for production use, and may change without notice in a subsequent release of `gradle-build-action`.
  # Use at your own risk!
  workflow-job-context:
    description: Used to uniquely identify the current job invocation. Defaults to the matrix values for this job; this should not be overridden by users (INTERNAL).
    required: false
    default: ${{ toJSON(matrix) }}
  gradle-home-cache-artifact-bundles:
    description: Names and patterns of artifact bundles to cache separately. (EXPERIMENTAL - may be changed/removed without notice)
    required: false
    default: |
        [
          ["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"],
          ["wrapper-zips", "wrapper/dists/*/*/*.zip"],
          ["dependencies", "caches/modules-*/files-*/*/*/*/*/"],
          ["instrumented-jars", "caches/jars-*/*/"],
          ["kotlin-dsl", "caches/*/kotlin-dsl/*/*/"]
        ]

outputs:
  build-scan-url:
    description: Link to the build scan if any

runs:
  using: 'node12'
  main: 'dist/main/index.js'
  post: 'dist/post/index.js'
  post-if: success()

branding:
  icon: 'box'
  color: 'gray-dark'
