name: "Gradle Build Action"
description: 'Configures Gradle for use in GitHub actions, caching useful state in the GitHub actions cache'

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

inputs:
  gradle-version:
    description: Gradle version to use
    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.
      By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches.
    required: false
    default: ${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}

  cache-write-only:
    description: |
      When 'true', entries will not be restored from the cache but will be saved at the end of the Job. 
      Setting this to 'true' implies cache-read-only will be 'false'.
    required: false
    default: false

  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

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

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

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

  generate-job-summary:
    description: When 'false', no Job Summary will be generated for the Job.
    required: false
    default: true

  # EXPERIMENTAL & INTERNAL ACTION INPUTS
  # The following action properties allow fine-grained tweaking of the action caching behaviour.
  # These properties are experimental and not (yet) designed for production use, and may change without notice in a subsequent release of `gradle-build-action`.
  # Use at your own risk!
  gradle-home-cache-strict-match:
    description: When 'true', the action will not attempt to restore the Gradle User Home entries from other Jobs.
    required: false
    default: false
  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-cleanup:
    description: When 'true', the action will attempt to remove any stale/unused entries from the Gradle User Home prior to saving to the GitHub Actions cache.
    required: false
    default: false

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

runs:
  using: 'node16'
  main: 'dist/main/index.js'
  post: 'dist/post/index.js'

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