A collection of GitHub Actions to accelerate your Gradle Builds on GitHub
Find a file
Daz DeBoer 91619fae90
Attempt to use gradle wrapper for cache cleanup (#525)
The cache-cleanup operation works by executing Gradle on a dummy project
and a custom init-script. The version of Gradle used should be at least
as high as the newest version used to run a build.

Previously, if the Gradle version on PATH didn't meet this requirement,
the action would download and install the required Gradle version.

With this PR, the action will now use an existing Gradle wrapper
distribution if it meets the requirement. This avoids unnecessary
downloads of Gradle versions that are already present on the runner.

The logic is:
- Determine the newest version of Gradle that was executed during the
Job. This is the 'minimum version' for cache cleanup.
- Inspect the Gradle version on PATH and any detected wrapper scripts to
see if they meet the 'minimum version'.
- The first executable that is found to meet the requirements will be
used for cache-cleanup.
- If no executable is found that meets the requirements, attempt to
provision Gradle with the 'minimum version'.

Fixes #515
2025-01-24 10:06:51 -07:00
.github Choose best Gradle version to use for cache cleanup (#526) 2025-01-24 06:16:52 -07:00
dependency-submission Save dependency-graph file as workflow artifact 2025-01-21 14:34:49 -07:00
dist [bot] Update dist directory 2025-01-24 13:18:07 +00:00
docs Uppercase cache-encryption-key 2025-01-24 08:56:35 -07:00
setup-gradle Save dependency-graph file as workflow artifact 2025-01-21 14:34:49 -07:00
sources Attempt to use gradle wrapper for cache cleanup (#525) 2025-01-24 10:06:51 -07:00
wrapper-validation Emphasise notice in wrapper-validation docs 2024-08-12 10:03:35 -06:00
.gitignore Include VS code workspace file 2024-04-12 15:39:30 -06:00
action.yml Move top-level action to 'setup-gradle' 2024-01-25 11:53:44 -07:00
actions.code-workspace Include VS code workspace file 2024-04-12 15:39:30 -06:00
build Make it easier to run NPM tests locally 2025-01-23 12:07:37 -07:00
CODE_OF_CONDUCT.md add code of conduct 2019-09-21 20:57:04 +02:00
CONTRIBUTING.md Improve local development script 2024-11-14 17:00:58 -07:00
LICENSE Update copyright notice 2023-06-30 08:57:49 -06:00
README.md docs: add badge 2024-11-13 16:37:41 -07:00
RELEASING.md Update RELEASING.md for v4 2024-08-07 11:41:14 -06:00

GitHub Actions for Gradle builds

OpenSSF Scorecard

This repository contains a set of GitHub Actions that are useful for building Gradle projects on GitHub.

The setup-gradle action

The setup-gradle action can be used to configure Gradle for optimal execution on any platform supported by GitHub Actions.

This replaces the previous gradle/gradle-build-action, which now delegates to this implementation.

The recommended way to execute any Gradle build is with the help of the Gradle Wrapper, and the examples assume that the Gradle Wrapper has been configured for the project. See this example if your project doesn't use the Gradle Wrapper.

Example usage

name: Build

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout sources
      uses: actions/checkout@v4
    - name: Setup Java
      uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: 17
    - name: Setup Gradle
      uses: gradle/actions/setup-gradle@v4
    - name: Build with Gradle
      run: ./gradlew build

See the full action documentation for more advanced usage scenarios.

The dependency-submission action

Generates and submits a dependency graph for a Gradle project, allowing GitHub to alert about reported vulnerabilities in your project dependencies.

The following workflow will generate a dependency graph for a Gradle project and submit it immediately to the repository via the Dependency Submission API. For most projects, this default configuration should be all that you need.

Simply add this as a new workflow file to your repository (eg .github/workflows/dependency-submission.yml).

name: Dependency Submission

on:
  push:
    branches: [ 'main' ]

permissions:
  contents: write

jobs:
  dependency-submission:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout sources
      uses: actions/checkout@v4
    - name: Setup Java
      uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: 17
    - name: Generate and submit dependency graph
      uses: gradle/actions/dependency-submission@v4

See the full action documentation for more advanced usage scenarios.

The wrapper-validation action

The wrapper-validation action validates the checksums of all Gradle Wrapper JAR files present in the repository and fails if any unknown Gradle Wrapper JAR files are found.

The action should be run in the root of the repository, as it will recursively search for any files named gradle-wrapper.jar.

Starting with v4 the setup-gradle action will perform wrapper validation on each execution. If you are using setup-gradle in your workflows, it is unlikely that you will need to use the wrapper-validation action.

Example workflow

name: "Validate Gradle Wrapper"

on:
  push:
  pull_request:

jobs:
  validation:
    name: "Validation"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: gradle/actions/wrapper-validation@v4

See the full action documentation for more advanced usage scenarios.