mirror of
https://github.com/gradle/gradle-build-action.git
synced 2024-11-22 00:01:05 -05:00
269 lines
13 KiB
YAML
269 lines
13 KiB
YAML
name: "Gradle Build Action"
|
|
description: 'Configures Gradle for GitHub actions, caching state and generating a dependency graph via Dependency Submission.'
|
|
|
|
inputs:
|
|
gradle-version:
|
|
description: |
|
|
Gradle version to use. If specified, this Gradle version will be downloaded, added to the PATH and used for invoking Gradle.
|
|
If not provided, it is assumed that the project uses the Gradle Wrapper.
|
|
required: false
|
|
|
|
# Cache configuration
|
|
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
|
|
|
|
cache-overwrite-existing:
|
|
description: When 'true', a pre-existing Gradle User Home will not prevent the cache from being restored.
|
|
required: false
|
|
default: false
|
|
|
|
cache-encryption-key:
|
|
description: |
|
|
A base64 encoded AES key used to encrypt the configuration-cache data. The key is exported as 'GRADLE_ENCRYPTION_KEY' for later steps.
|
|
A suitable key can be generated with `openssl rand -base64 16`.
|
|
Configuration-cache data will not be saved/restored without an encryption key being provided.
|
|
required: 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
|
|
|
|
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
|
|
|
|
# Job summary configuration
|
|
add-job-summary:
|
|
description: Specifies when a Job Summary should be inluded in the action results. Valid values are 'never', 'always' (default), and 'on-failure'.
|
|
required: false
|
|
default: 'always'
|
|
|
|
add-job-summary-as-pr-comment:
|
|
description: Specifies when each Job Summary should be added as a PR comment. Valid values are 'never' (default), 'always', and 'on-failure'. No action will be taken if the workflow was not triggered from a pull request.
|
|
required: false
|
|
default: 'never'
|
|
|
|
# Dependency Graph configuration
|
|
dependency-graph:
|
|
description: |
|
|
Specifies if a GitHub dependency snapshot should be generated for each Gradle build, and if so, how.
|
|
Valid values are 'disabled' (default), 'generate', 'generate-and-submit', 'generate-and-upload', 'download-and-submit' and 'clear'.
|
|
required: false
|
|
default: 'disabled'
|
|
|
|
dependency-graph-continue-on-failure:
|
|
description: When 'false' a failure to generate or submit a dependency graph will fail the Step or Job. When 'true' a warning will be emitted but no failure will result.
|
|
required: false
|
|
default: true
|
|
|
|
artifact-retention-days:
|
|
description: Specifies the number of days to retain any artifacts generated by the action. If not set, the default retention settings for the repository will apply.
|
|
required: false
|
|
|
|
# Build Scan configuration
|
|
build-scan-publish:
|
|
description: |
|
|
Set to 'true' to automatically publish build results as a Build Scan on scans.gradle.com.
|
|
For publication to succeed without user input, you must also provide values for `build-scan-terms-of-use-url` and 'build-scan-terms-of-use-agree'.
|
|
required: false
|
|
default: false
|
|
|
|
build-scan-terms-of-use-url:
|
|
description: The URL to the Build Scan® terms of use. This input must be set to 'https://gradle.com/terms-of-service' or 'https://gradle.com/help/legal-terms-of-use'.
|
|
required: false
|
|
|
|
build-scan-terms-of-use-agree:
|
|
description: Indicate that you agree to the Build Scan® terms of use. This input value must be "yes".
|
|
required: false
|
|
|
|
develocity-access-key:
|
|
description: Develocity access key. Should be set to a secret containing the Develocity Access key.
|
|
required: false
|
|
|
|
develocity-token-expiry:
|
|
description: The Develocity short-lived access tokens expiry in hours. Default is 2 hours.
|
|
required: false
|
|
|
|
develocity-injection-enabled:
|
|
description: Enables Develocity injection.
|
|
required: false
|
|
|
|
develocity-url:
|
|
description: The URL for the Develocity server.
|
|
required: false
|
|
|
|
develocity-allow-untrusted-server:
|
|
description: Allow communication with an untrusted server; set to _true_ if your Develocity instance is using a self-signed.
|
|
required: false
|
|
|
|
develocity-capture-file-fingerprints:
|
|
description: Enables capturing the paths and content hashes of each individual input file.
|
|
required: false
|
|
|
|
develocity-enforce-url:
|
|
description: Enforce the configured Develocity URL over a URL configured in the project's build; set to _true_ to enforce publication of build scans to the configured Develocity URL.
|
|
required: false
|
|
|
|
develocity-plugin-version:
|
|
description: The version of the Develocity Gradle plugin to apply.
|
|
required: false
|
|
|
|
develocity-ccud-plugin-version:
|
|
description: The version of the Common Custom User Data Gradle plugin to apply, if any.
|
|
required: false
|
|
|
|
gradle-plugin-repository-url:
|
|
description: The URL of the repository to use when resolving the Develocity and CCUD plugins; the Gradle Plugin Portal is used by default.
|
|
required: false
|
|
|
|
gradle-plugin-repository-username:
|
|
description: The username for the repository URL to use when resolving the Develocity and CCUD.
|
|
required: false
|
|
|
|
gradle-plugin-repository-password:
|
|
description: The password for the repository URL to use when resolving the Develocity and CCUD plugins; Consider using secrets to pass the value to this variable.
|
|
required: false
|
|
|
|
# Wrapper validation configuration
|
|
validate-wrappers:
|
|
description: |
|
|
When 'true', the action will perform the 'wrapper-validation' action automatically.
|
|
If the wrapper checksums are not valid, the action will fail.
|
|
required: false
|
|
default: false
|
|
|
|
# DEPRECATED ACTION INPUTS
|
|
build-scan-terms-of-service-url:
|
|
description: The URL to the Build Scan® terms of use. This input must be set to 'https://gradle.com/terms-of-service'.
|
|
required: false
|
|
deprecation-message: The input has been renamed to align with the Develocity API. Use 'build-scan-terms-of-use-url' instead.
|
|
|
|
build-scan-terms-of-service-agree:
|
|
description: Indicate that you agree to the Build Scan® terms of use. This input value must be "yes".
|
|
required: false
|
|
deprecation-message: The input has been renamed to align with the Develocity API. Use 'build-scan-terms-of-use-agree' instead.
|
|
|
|
generate-job-summary:
|
|
description: When 'false', no Job Summary will be generated for the Job.
|
|
required: false
|
|
default: true
|
|
deprecation-message: Superceded by the new 'add-job-summary' and 'add-job-summary-as-pr-comment' parameters.
|
|
|
|
arguments:
|
|
description: Gradle command line arguments (supports multi-line input)
|
|
required: false
|
|
deprecation-message: Using the action to execute Gradle directly is deprecated in favor of using the action to setup Gradle, and executing Gradle in a subsequent Step.
|
|
|
|
build-root-directory:
|
|
description: Path to the root directory of the build. Default is the root of the GitHub workspace.
|
|
required: false
|
|
deprecation-message: Using the action to execute Gradle directly is deprecated in favor of using the action to setup Gradle, and executing Gradle in a subsequent Step.
|
|
|
|
# EXPERIMENTAL 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 `setup-gradle`.
|
|
# 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
|
|
|
|
# INTERNAL ACTION INPUTS
|
|
# These inputs should not be configured directly, and are only used to pass environmental information to the action
|
|
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) }}
|
|
|
|
github-token:
|
|
description: The GitHub token used to authenticate when submitting via the Dependency Submission API.
|
|
default: ${{ github.token }}
|
|
required: false
|
|
|
|
outputs:
|
|
build-scan-url:
|
|
description: Link to the Build Scan® generated by a Gradle build. Note that this output applies to a Step executing Gradle, not to the `setup-gradle` Step itself.
|
|
value: ${{ steps.setup-gradle.outputs.build-scan-url }}
|
|
dependency-graph-file:
|
|
description: Path to the GitHub Dependency Graph snapshot file generated by a Gradle build. Note that this output applies to a Step executing Gradle, not to the `setup-gradle` Step itself.
|
|
value: ${{ steps.setup-gradle.outputs.dependency-graph-file }}
|
|
gradle-version:
|
|
description: Version of Gradle that was setup by the action
|
|
value: ${{ steps.setup-gradle.outputs.gradle-version }}
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Setup Gradle
|
|
id: setup-gradle
|
|
uses: gradle/actions/setup-gradle@v3.5.0
|
|
with:
|
|
gradle-version: ${{ inputs.gradle-version }}
|
|
cache-disabled: ${{ inputs.cache-disabled }}
|
|
cache-read-only: ${{ inputs.cache-read-only }}
|
|
cache-write-only: ${{ inputs.cache-write-only }}
|
|
cache-overwrite-existing: ${{ inputs.cache-overwrite-existing }}
|
|
cache-encryption-key: ${{ inputs.cache-encryption-key }}
|
|
gradle-home-cache-includes: ${{ inputs.gradle-home-cache-includes }}
|
|
gradle-home-cache-excludes: ${{ inputs.gradle-home-cache-excludes }}
|
|
gradle-home-cache-cleanup: ${{ inputs.gradle-home-cache-cleanup }}
|
|
add-job-summary: ${{ inputs.add-job-summary }}
|
|
add-job-summary-as-pr-comment: ${{ inputs.add-job-summary-as-pr-comment }}
|
|
dependency-graph: ${{ inputs.dependency-graph }}
|
|
dependency-graph-continue-on-failure: ${{ inputs.dependency-graph-continue-on-failure }}
|
|
artifact-retention-days: ${{ inputs.artifact-retention-days }}
|
|
build-scan-publish: ${{ inputs.build-scan-publish }}
|
|
build-scan-terms-of-use-url: ${{ inputs.build-scan-terms-of-use-url }}
|
|
build-scan-terms-of-use-agree: ${{ inputs.build-scan-terms-of-use-agree }}
|
|
validate-wrappers: ${{ inputs.validate-wrappers }}
|
|
build-scan-terms-of-service-url: ${{ inputs.build-scan-terms-of-service-url }}
|
|
build-scan-terms-of-service-agree: ${{ inputs.build-scan-terms-of-service-agree }}
|
|
generate-job-summary: ${{ inputs.generate-job-summary }}
|
|
arguments: ${{ inputs.arguments }}
|
|
build-root-directory: ${{ inputs.build-root-directory }}
|
|
gradle-home-cache-strict-match: ${{ inputs.gradle-home-cache-strict-match }}
|
|
workflow-job-context: ${{ inputs.workflow-job-context }}
|
|
github-token: ${{ inputs.github-token }}
|
|
develocity-access-key: ${{ inputs.develocity-access-key }}
|
|
develocity-token-expiry: ${{ inputs.develocity-token-expiry }}
|
|
develocity-injection-enabled: ${{ inputs.develocity-injection-enabled }}
|
|
develocity-url: ${{ inputs.develocity-url }}
|
|
develocity-allow-untrusted-server: ${{ inputs.develocity-allow-untrusted-server }}
|
|
develocity-capture-file-fingerprints: ${{ inputs.develocity-capture-file-fingerprints }}
|
|
develocity-enforce-url: ${{ inputs.develocity-enforce-url }}
|
|
develocity-plugin-version: ${{ inputs.develocity-plugin-version }}
|
|
develocity-ccud-plugin-version: ${{ inputs.develocity-ccud-plugin-version }}
|
|
gradle-plugin-repository-url: ${{ inputs.gradle-plugin-repository-url }}
|
|
gradle-plugin-repository-username: ${{ inputs.gradle-plugin-repository-username }}
|
|
gradle-plugin-repository-password: ${{ inputs.gradle-plugin-repository-password }}
|
|
|
|
env:
|
|
GRADLE_ACTION_ID: gradle/gradle-build-action
|
|
|
|
branding:
|
|
icon: 'box'
|
|
color: 'gray-dark'
|