d068148857
The cache-cleanup operation works by executing Gradle on a dummy project and a custom init-script. The init-script requires at least Gradle 8.11 to work. Ideally, the version of Gradle used for cleanup should be no older than the newest one that wrote entries to Gradle User Home. If an older Gradle version is used for cache-cleanup, it will not remove entries written specifically for newer versions. With this change, we now attempt to ensure that cache-cleanup is run with the best Gradle version available. We inspect the Gradle version on PATH to see if it is new enough, otherwise we will provision a Gradle version equal to the newest one that ran in the Job. 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 (if any) to see if it is equal to or newer than the 'minimum version'. - If the version Gradle on PATH is new enough, use that version for cache-cleanup. - If not, attempt to provision Gradle with the 'minimum version'. Fixes #436 |
||
---|---|---|
.github | ||
dependency-submission | ||
dist | ||
docs | ||
setup-gradle | ||
sources | ||
wrapper-validation | ||
.gitignore | ||
action.yml | ||
actions.code-workspace | ||
build | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
RELEASING.md |
GitHub Actions for Gradle builds
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.