mirror of
https://github.com/gradle/actions.git
synced 2025-04-21 02:09:19 +08:00
Compare commits
No commits in common. "main" and "v3.0.0-rc.2" have entirely different histories.
main
...
v3.0.0-rc.
12
.github/actions/build-dist/action.yml
vendored
12
.github/actions/build-dist/action.yml
vendored
@ -3,11 +3,9 @@ name: 'Build and upload distribution'
|
|||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 20
|
node-version: 20
|
||||||
cache: npm
|
|
||||||
cache-dependency-path: sources/package-lock.json
|
|
||||||
- name: Build distribution
|
- name: Build distribution
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@ -16,14 +14,8 @@ runs:
|
|||||||
npm install
|
npm install
|
||||||
npm run build
|
npm run build
|
||||||
working-directory: sources
|
working-directory: sources
|
||||||
|
|
||||||
- name: Copy the generated sources/dist directory to the top-level dist
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
cp -r sources/dist .
|
|
||||||
|
|
||||||
- name: Upload distribution
|
- name: Upload distribution
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: dist
|
name: dist
|
||||||
path: dist/
|
path: dist/
|
||||||
|
12
.github/actions/download-dist/action.yml
vendored
Normal file
12
.github/actions/download-dist/action.yml
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
name: 'Download dist'
|
||||||
|
# Downloads a 'dist' directory artifact that was uploaded in an earlier step
|
||||||
|
# We control this with an environment variable to allow for easier global configuration.
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Download dist
|
||||||
|
if: ${{ env.DOWNLOAD_DIST == 'true' }}
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: dist
|
||||||
|
path: dist/
|
23
.github/actions/init-integ-test/action.yml
vendored
23
.github/actions/init-integ-test/action.yml
vendored
@ -1,23 +0,0 @@
|
|||||||
name: 'Initialize integ-test'
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: "composite"
|
|
||||||
steps:
|
|
||||||
- name: Setup Java
|
|
||||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 11
|
|
||||||
|
|
||||||
- name: Configure environment
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "ALLOWED_GRADLE_WRAPPER_CHECKSUMS=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" >> "$GITHUB_ENV"
|
|
||||||
|
|
||||||
# Downloads a 'dist' directory artifact that was uploaded in an earlier 'build-dist' step
|
|
||||||
- name: Download dist
|
|
||||||
if: ${{ env.SKIP_DIST != 'true' && !env.ACT }}
|
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
|
|
||||||
with:
|
|
||||||
name: dist
|
|
||||||
path: dist/
|
|
82
.github/dependabot.yml
vendored
82
.github/dependabot.yml
vendored
@ -5,45 +5,67 @@ registries:
|
|||||||
url: https://plugins.gradle.org/m2
|
url: https://plugins.gradle.org/m2
|
||||||
username: dummy # Required by dependabot
|
username: dummy # Required by dependabot
|
||||||
password: dummy # Required by dependabot
|
password: dummy # Required by dependabot
|
||||||
|
|
||||||
updates:
|
updates:
|
||||||
- package-ecosystem: "npm"
|
|
||||||
directory: "/sources"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
groups:
|
|
||||||
npm-dependencies:
|
|
||||||
patterns:
|
|
||||||
- "*"
|
|
||||||
|
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
# github-actions with directory: "/" only monitors .github/workflows
|
directory: "/"
|
||||||
# https://github.com/dependabot/dependabot-core/issues/6345
|
|
||||||
directories:
|
|
||||||
- "/"
|
|
||||||
- "/.github/actions/build-dist"
|
|
||||||
- "/.github/actions/init-integ-test"
|
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
groups:
|
groups:
|
||||||
github-actions:
|
github-actions:
|
||||||
patterns:
|
patterns:
|
||||||
- "*"
|
- "*"
|
||||||
|
|
||||||
|
- package-ecosystem: "npm"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
ignore:
|
||||||
|
- dependency-name: "@types/node" # Breaking change: update with next major release
|
||||||
|
- dependency-name: "@octokit/rest" # Tied to node version
|
||||||
|
groups:
|
||||||
|
npm-dependencies:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
|
||||||
- package-ecosystem: "gradle"
|
- package-ecosystem: "gradle"
|
||||||
directories:
|
directory: ".github/workflow-samples/gradle-plugin"
|
||||||
- ".github/workflow-samples/gradle-plugin"
|
|
||||||
- ".github/workflow-samples/groovy-dsl"
|
|
||||||
- ".github/workflow-samples/java-toolchain"
|
|
||||||
- ".github/workflow-samples/kotlin-dsl"
|
|
||||||
- ".github/workflow-samples/no-wrapper"
|
|
||||||
- ".github/workflow-samples/no-wrapper-gradle-5"
|
|
||||||
- "sources/test/init-scripts"
|
|
||||||
registries:
|
registries:
|
||||||
- gradle-plugin-portal
|
- gradle-plugin-portal
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "daily"
|
||||||
groups:
|
- package-ecosystem: "gradle"
|
||||||
gradle:
|
directory: ".github/workflow-samples/groovy-dsl"
|
||||||
patterns:
|
registries:
|
||||||
- "*"
|
- gradle-plugin-portal
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "gradle"
|
||||||
|
directory: ".github/workflow-samples/java-toolchain"
|
||||||
|
registries:
|
||||||
|
- gradle-plugin-portal
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "gradle"
|
||||||
|
directory: ".github/workflow-samples/kotlin-dsl"
|
||||||
|
registries:
|
||||||
|
- gradle-plugin-portal
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "gradle"
|
||||||
|
directory: ".github/workflow-samples/no-wrapper"
|
||||||
|
registries:
|
||||||
|
- gradle-plugin-portal
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "gradle"
|
||||||
|
directory: ".github/workflow-samples/no-wrapper-gradle-5"
|
||||||
|
registries:
|
||||||
|
- gradle-plugin-portal
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "gradle"
|
||||||
|
directory: "sources/test/init-scripts"
|
||||||
|
registries:
|
||||||
|
- gradle-plugin-portal
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
# This file was generated by the Gradle 'init' task.
|
|
||||||
# https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format
|
|
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78
|
distributionSha256Sum=9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
@ -15,8 +15,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
@ -57,7 +55,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@ -86,7 +84,7 @@ done
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
@ -205,7 +203,7 @@ fi
|
|||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
# Collect all arguments for the java command:
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# and any embedded shellness will be escaped.
|
# and any embedded shellness will be escaped.
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# treated as '${Hostname}' itself on the command line.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
@ -13,8 +13,6 @@
|
|||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@ -45,11 +43,11 @@ set JAVA_EXE=java.exe
|
|||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
@ -59,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
60
.github/workflow-samples/gradle-plugin/plugin/build.gradle
vendored
Normal file
60
.github/workflow-samples/gradle-plugin/plugin/build.gradle
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* This file was generated by the Gradle 'init' task.
|
||||||
|
*
|
||||||
|
* This generated file contains a sample Gradle plugin project to get you started.
|
||||||
|
* For more details take a look at the Writing Custom Plugins chapter in the Gradle
|
||||||
|
* User Manual available at https://docs.gradle.org/7.3/userguide/custom_plugins.html
|
||||||
|
* This project uses @Incubating APIs which are subject to change.
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
// Apply the Java Gradle plugin development plugin to add support for developing Gradle plugins
|
||||||
|
id 'java-gradle-plugin'
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
// Use Maven Central for resolving dependencies.
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
testing {
|
||||||
|
suites {
|
||||||
|
// Configure the built-in test suite
|
||||||
|
test {
|
||||||
|
// Use JUnit Jupiter test framework
|
||||||
|
useJUnitJupiter('5.7.2')
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new test suite
|
||||||
|
functionalTest(JvmTestSuite) {
|
||||||
|
dependencies {
|
||||||
|
// functionalTest test suite depends on the production code in tests
|
||||||
|
implementation(project(':plugin'))
|
||||||
|
}
|
||||||
|
|
||||||
|
targets {
|
||||||
|
all {
|
||||||
|
// This test suite should run after the built-in test suite has run its tests
|
||||||
|
testTask.configure { shouldRunAfter(test) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gradlePlugin {
|
||||||
|
// Define the plugin
|
||||||
|
plugins {
|
||||||
|
greeting {
|
||||||
|
id = 'org.example.gradle.plugin.greeting'
|
||||||
|
implementationClass = 'org.example.gradle.plugin.GradlePluginPlugin'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gradlePlugin.testSourceSets(sourceSets.functionalTest)
|
||||||
|
|
||||||
|
tasks.named('check') {
|
||||||
|
// Include functionalTest as part of the check lifecycle
|
||||||
|
dependsOn(testing.suites.functionalTest)
|
||||||
|
}
|
@ -1,40 +0,0 @@
|
|||||||
plugins {
|
|
||||||
`java-gradle-plugin`
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
testing {
|
|
||||||
suites {
|
|
||||||
val test by getting(JvmTestSuite::class) {
|
|
||||||
useJUnitJupiter()
|
|
||||||
}
|
|
||||||
|
|
||||||
val functionalTest by registering(JvmTestSuite::class) {
|
|
||||||
dependencies {
|
|
||||||
implementation(project())
|
|
||||||
}
|
|
||||||
|
|
||||||
targets {
|
|
||||||
all {
|
|
||||||
testTask.configure { shouldRunAfter(test) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gradlePlugin {
|
|
||||||
val greeting by plugins.creating {
|
|
||||||
id = "org.example.greeting"
|
|
||||||
implementationClass = "org.example.GradlePluginPlugin"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gradlePlugin.testSourceSets.add(sourceSets["functionalTest"])
|
|
||||||
|
|
||||||
tasks.named<Task>("check") {
|
|
||||||
dependsOn(testing.suites.named("functionalTest"))
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* This source file was generated by the Gradle 'init' task
|
* This Java source file was generated by the Gradle 'init' task.
|
||||||
*/
|
*/
|
||||||
package org.example;
|
package org.example.gradle.plugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -15,7 +15,7 @@ import org.junit.jupiter.api.io.TempDir;
|
|||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple functional test for the 'org.example.greeting' plugin.
|
* A simple functional test for the 'org.example.gradle.plugin.greeting' plugin.
|
||||||
*/
|
*/
|
||||||
class GradlePluginPluginFunctionalTest {
|
class GradlePluginPluginFunctionalTest {
|
||||||
@TempDir
|
@TempDir
|
||||||
@ -29,23 +29,24 @@ class GradlePluginPluginFunctionalTest {
|
|||||||
return new File(projectDir, "settings.gradle");
|
return new File(projectDir, "settings.gradle");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void canRunTask() throws IOException {
|
@Test void canRunTaskWithGradle691() throws IOException {
|
||||||
writeString(getSettingsFile(), "");
|
writeString(getSettingsFile(), "");
|
||||||
writeString(getBuildFile(),
|
writeString(getBuildFile(),
|
||||||
"plugins {" +
|
"plugins {" +
|
||||||
" id('org.example.greeting')" +
|
" id('org.example.gradle.plugin.greeting')" +
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
// Run the build
|
// Run the build
|
||||||
GradleRunner runner = GradleRunner.create();
|
GradleRunner runner = GradleRunner.create();
|
||||||
runner.forwardOutput();
|
runner.forwardOutput();
|
||||||
|
runner.withGradleVersion("6.9.1");
|
||||||
runner.withPluginClasspath();
|
runner.withPluginClasspath();
|
||||||
runner.withArguments("greeting");
|
runner.withArguments("greeting");
|
||||||
runner.withProjectDir(projectDir);
|
runner.withProjectDir(projectDir);
|
||||||
BuildResult result = runner.build();
|
BuildResult result = runner.build();
|
||||||
|
|
||||||
// Verify the result
|
// Verify the result
|
||||||
assertTrue(result.getOutput().contains("Hello from plugin 'org.example.greeting'"));
|
assertTrue(result.getOutput().contains("Hello from plugin 'org.example.gradle.plugin.greeting'"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeString(File file, String string) throws IOException {
|
private void writeString(File file, String string) throws IOException {
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* This source file was generated by the Gradle 'init' task
|
* This Java source file was generated by the Gradle 'init' task.
|
||||||
*/
|
*/
|
||||||
package org.example;
|
package org.example.gradle.plugin;
|
||||||
|
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
import org.gradle.api.Plugin;
|
import org.gradle.api.Plugin;
|
||||||
@ -13,7 +13,7 @@ public class GradlePluginPlugin implements Plugin<Project> {
|
|||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
// Register a task
|
// Register a task
|
||||||
project.getTasks().register("greeting", task -> {
|
project.getTasks().register("greeting", task -> {
|
||||||
task.doLast(s -> System.out.println("Hello from plugin 'org.example.greeting'"));
|
task.doLast(s -> System.out.println("Hello from plugin 'org.example.gradle.plugin.greeting'"));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* This source file was generated by the Gradle 'init' task
|
* This Java source file was generated by the Gradle 'init' task.
|
||||||
*/
|
*/
|
||||||
package org.example;
|
package org.example.gradle.plugin;
|
||||||
|
|
||||||
import org.gradle.testfixtures.ProjectBuilder;
|
import org.gradle.testfixtures.ProjectBuilder;
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
@ -9,13 +9,13 @@ import org.junit.jupiter.api.Test;
|
|||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple unit test for the 'org.example.greeting' plugin.
|
* A simple unit test for the 'org.example.gradle.plugin.greeting' plugin.
|
||||||
*/
|
*/
|
||||||
class GradlePluginPluginTest {
|
class GradlePluginPluginTest {
|
||||||
@Test void pluginRegistersATask() {
|
@Test void pluginRegistersATask() {
|
||||||
// Create a test project and apply the plugin
|
// Create a test project and apply the plugin
|
||||||
Project project = ProjectBuilder.builder().build();
|
Project project = ProjectBuilder.builder().build();
|
||||||
project.getPlugins().apply("org.example.greeting");
|
project.getPlugins().apply("org.example.gradle.plugin.greeting");
|
||||||
|
|
||||||
// Verify the result
|
// Verify the result
|
||||||
assertNotNull(project.getTasks().findByName("greeting"));
|
assertNotNull(project.getTasks().findByName("greeting"));
|
12
.github/workflow-samples/gradle-plugin/settings.gradle
vendored
Normal file
12
.github/workflow-samples/gradle-plugin/settings.gradle
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/*
|
||||||
|
* This file was generated by the Gradle 'init' task.
|
||||||
|
*
|
||||||
|
* The settings file is used to specify which projects to include in your build.
|
||||||
|
*
|
||||||
|
* Detailed information about configuring a multi-project build in Gradle can be found
|
||||||
|
* in the user manual at https://docs.gradle.org/7.3/userguide/multi_project_builds.html
|
||||||
|
* This project uses @Incubating APIs which are subject to change.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rootProject.name = 'gradle-plugin'
|
||||||
|
include('plugin')
|
@ -1,2 +0,0 @@
|
|||||||
rootProject.name = "gradle-plugin-2"
|
|
||||||
include("plugin")
|
|
@ -6,12 +6,8 @@ repositories {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
testing {
|
dependencies {
|
||||||
suites {
|
testImplementation('junit:junit:4.13.2')
|
||||||
test {
|
|
||||||
useJUnit()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named("test").configure {
|
tasks.named("test").configure {
|
||||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78
|
distributionSha256Sum=9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
8
.github/workflow-samples/groovy-dsl/gradlew
vendored
8
.github/workflow-samples/groovy-dsl/gradlew
vendored
@ -15,8 +15,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
@ -57,7 +55,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@ -86,7 +84,7 @@ done
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
@ -205,7 +203,7 @@ fi
|
|||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
# Collect all arguments for the java command:
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# and any embedded shellness will be escaped.
|
# and any embedded shellness will be escaped.
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# treated as '${Hostname}' itself on the command line.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
22
.github/workflow-samples/groovy-dsl/gradlew.bat
vendored
22
.github/workflow-samples/groovy-dsl/gradlew.bat
vendored
@ -13,8 +13,6 @@
|
|||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@ -45,11 +43,11 @@ set JAVA_EXE=java.exe
|
|||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
@ -59,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id "com.gradle.develocity" version "4.0"
|
id "com.gradle.enterprise" version "3.16.2"
|
||||||
id "com.gradle.common-custom-user-data-gradle-plugin" version "2.2.1"
|
id "com.gradle.common-custom-user-data-gradle-plugin" version "1.12.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
develocity {
|
gradleEnterprise {
|
||||||
buildScan {
|
buildScan {
|
||||||
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
|
termsOfServiceUrl = "https://gradle.com/terms-of-service"
|
||||||
termsOfUseAgree = "yes"
|
termsOfServiceAgree = "yes"
|
||||||
|
publishAlways()
|
||||||
uploadInBackground = false
|
uploadInBackground = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
java
|
id 'java'
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@ -12,10 +12,6 @@ repositories {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
testing {
|
dependencies {
|
||||||
suites {
|
testImplementation('junit:junit:4.13.2')
|
||||||
val test by getting(JvmTestSuite::class) {
|
|
||||||
useJUnit()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78
|
distributionSha256Sum=9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
@ -15,8 +15,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
@ -57,7 +55,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@ -86,7 +84,7 @@ done
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
@ -205,7 +203,7 @@ fi
|
|||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
# Collect all arguments for the java command:
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# and any embedded shellness will be escaped.
|
# and any embedded shellness will be escaped.
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# treated as '${Hostname}' itself on the command line.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
@ -13,8 +13,6 @@
|
|||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@ -45,11 +43,11 @@ set JAVA_EXE=java.exe
|
|||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
@ -59,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
5
.github/workflow-samples/java-toolchain/settings.gradle
vendored
Normal file
5
.github/workflow-samples/java-toolchain/settings.gradle
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("org.gradle.toolchains.foojay-resolver-convention") version("0.7.0")
|
||||||
|
}
|
||||||
|
|
||||||
|
rootProject.name = 'basic'
|
@ -1,6 +0,0 @@
|
|||||||
plugins {
|
|
||||||
// Apply the foojay-resolver plugin to allow automatic download of JDKs
|
|
||||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.10.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
rootProject.name = "java-toolchains"
|
|
@ -8,15 +8,13 @@ repositories {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api("org.apache.commons:commons-math3:3.6.1")
|
api("org.apache.commons:commons-math3:3.6.1")
|
||||||
implementation("com.google.guava:guava:33.4.8-jre")
|
implementation("com.google.guava:guava:33.0.0-jre")
|
||||||
|
|
||||||
|
testImplementation("org.junit.jupiter:junit-jupiter:5.10.1")
|
||||||
}
|
}
|
||||||
|
|
||||||
testing {
|
tasks.test {
|
||||||
suites {
|
useJUnitPlatform()
|
||||||
val test by getting(JvmTestSuite::class) {
|
|
||||||
useJUnitJupiter()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named("test").configure {
|
tasks.named("test").configure {
|
||||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78
|
distributionSha256Sum=9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
8
.github/workflow-samples/kotlin-dsl/gradlew
vendored
8
.github/workflow-samples/kotlin-dsl/gradlew
vendored
@ -15,8 +15,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
@ -57,7 +55,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@ -86,7 +84,7 @@ done
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
@ -205,7 +203,7 @@ fi
|
|||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
# Collect all arguments for the java command:
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# and any embedded shellness will be escaped.
|
# and any embedded shellness will be escaped.
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# treated as '${Hostname}' itself on the command line.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
22
.github/workflow-samples/kotlin-dsl/gradlew.bat
vendored
22
.github/workflow-samples/kotlin-dsl/gradlew.bat
vendored
@ -13,8 +13,6 @@
|
|||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@ -45,11 +43,11 @@ set JAVA_EXE=java.exe
|
|||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
@ -59,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
echo. 1>&2
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("com.gradle.develocity") version "4.0"
|
id("com.gradle.enterprise") version "3.16.2"
|
||||||
id("com.gradle.common-custom-user-data-gradle-plugin") version "2.2.1"
|
id("com.gradle.common-custom-user-data-gradle-plugin") version "1.12.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
develocity {
|
gradleEnterprise {
|
||||||
buildScan {
|
buildScan {
|
||||||
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
|
termsOfServiceUrl = "https://gradle.com/terms-of-service"
|
||||||
termsOfUseAgree = "yes"
|
termsOfServiceAgree = "yes"
|
||||||
uploadInBackground = false
|
publishAlways()
|
||||||
|
isUploadInBackground = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id "com.gradle.develocity" version "4.0"
|
id "com.gradle.build-scan" version "3.16.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
develocity {
|
gradleEnterprise {
|
||||||
buildScan {
|
buildScan {
|
||||||
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
|
termsOfServiceUrl = "https://gradle.com/terms-of-service"
|
||||||
termsOfUseAgree = "yes"
|
termsOfServiceAgree = "yes"
|
||||||
|
publishAlways()
|
||||||
uploadInBackground = false
|
uploadInBackground = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id "com.gradle.develocity" version "4.0"
|
id "com.gradle.enterprise" version "3.16.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
develocity {
|
gradleEnterprise {
|
||||||
buildScan {
|
buildScan {
|
||||||
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
|
termsOfServiceUrl = "https://gradle.com/terms-of-service"
|
||||||
termsOfUseAgree = "yes"
|
termsOfServiceAgree = "yes"
|
||||||
|
publishAlways()
|
||||||
uploadInBackground = false
|
uploadInBackground = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
// Required to keep dependabot happy
|
|
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
distributionSha256Sum=57dafb5c2622c6cc08b993c85b7c06956a2f53536432a30ead46166dbca0f1e9
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
|
|
||||||
networkTimeout=10000
|
|
||||||
validateDistributionUrl=true
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
@ -1,252 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright © 2015-2021 the original authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
#
|
|
||||||
# Gradle start up script for POSIX generated by Gradle.
|
|
||||||
#
|
|
||||||
# Important for running:
|
|
||||||
#
|
|
||||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
|
||||||
# noncompliant, but you have some other compliant shell such as ksh or
|
|
||||||
# bash, then to run this script, type that shell name before the whole
|
|
||||||
# command line, like:
|
|
||||||
#
|
|
||||||
# ksh Gradle
|
|
||||||
#
|
|
||||||
# Busybox and similar reduced shells will NOT work, because this script
|
|
||||||
# requires all of these POSIX shell features:
|
|
||||||
# * functions;
|
|
||||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
|
||||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
|
||||||
# * compound commands having a testable exit status, especially «case»;
|
|
||||||
# * various built-in commands including «command», «set», and «ulimit».
|
|
||||||
#
|
|
||||||
# Important for patching:
|
|
||||||
#
|
|
||||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
|
||||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
|
||||||
#
|
|
||||||
# The "traditional" practice of packing multiple parameters into a
|
|
||||||
# space-separated string is a well documented source of bugs and security
|
|
||||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
|
||||||
# options in "$@", and eventually passing that to Java.
|
|
||||||
#
|
|
||||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
|
||||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
|
||||||
# see the in-line comments for details.
|
|
||||||
#
|
|
||||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
|
||||||
# Darwin, MinGW, and NonStop.
|
|
||||||
#
|
|
||||||
# (3) This script is generated from the Groovy template
|
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
|
||||||
# within the Gradle project.
|
|
||||||
#
|
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
app_path=$0
|
|
||||||
|
|
||||||
# Need this for daisy-chained symlinks.
|
|
||||||
while
|
|
||||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
|
||||||
[ -h "$app_path" ]
|
|
||||||
do
|
|
||||||
ls=$( ls -ld "$app_path" )
|
|
||||||
link=${ls#*' -> '}
|
|
||||||
case $link in #(
|
|
||||||
/*) app_path=$link ;; #(
|
|
||||||
*) app_path=$APP_HOME$link ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# This is normally unused
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
APP_BASE_NAME=${0##*/}
|
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
|
||||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
|
|
||||||
' "$PWD" ) || exit
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD=maximum
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
} >&2
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
} >&2
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "$( uname )" in #(
|
|
||||||
CYGWIN* ) cygwin=true ;; #(
|
|
||||||
Darwin* ) darwin=true ;; #(
|
|
||||||
MSYS* | MINGW* ) msys=true ;; #(
|
|
||||||
NONSTOP* ) nonstop=true ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
|
||||||
else
|
|
||||||
JAVACMD=$JAVA_HOME/bin/java
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD=java
|
|
||||||
if ! command -v java >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|
||||||
case $MAX_FD in #(
|
|
||||||
max*)
|
|
||||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
|
||||||
# shellcheck disable=SC2039,SC3045
|
|
||||||
MAX_FD=$( ulimit -H -n ) ||
|
|
||||||
warn "Could not query maximum file descriptor limit"
|
|
||||||
esac
|
|
||||||
case $MAX_FD in #(
|
|
||||||
'' | soft) :;; #(
|
|
||||||
*)
|
|
||||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
|
||||||
# shellcheck disable=SC2039,SC3045
|
|
||||||
ulimit -n "$MAX_FD" ||
|
|
||||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, stacking in reverse order:
|
|
||||||
# * args from the command line
|
|
||||||
# * the main class name
|
|
||||||
# * -classpath
|
|
||||||
# * -D...appname settings
|
|
||||||
# * --module-path (only if needed)
|
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if "$cygwin" || "$msys" ; then
|
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
|
||||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
|
||||||
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
for arg do
|
|
||||||
if
|
|
||||||
case $arg in #(
|
|
||||||
-*) false ;; # don't mess with options #(
|
|
||||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
|
||||||
[ -e "$t" ] ;; #(
|
|
||||||
*) false ;;
|
|
||||||
esac
|
|
||||||
then
|
|
||||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
|
||||||
fi
|
|
||||||
# Roll the args list around exactly as many times as the number of
|
|
||||||
# args, so each arg winds up back in the position where it started, but
|
|
||||||
# possibly modified.
|
|
||||||
#
|
|
||||||
# NB: a `for` loop captures its iteration list before it begins, so
|
|
||||||
# changing the positional parameters here affects neither the number of
|
|
||||||
# iterations, nor the values presented in `arg`.
|
|
||||||
shift # remove old arg
|
|
||||||
set -- "$@" "$arg" # push replacement arg
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
|
||||||
# and any embedded shellness will be escaped.
|
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
|
||||||
# treated as '${Hostname}' itself on the command line.
|
|
||||||
|
|
||||||
set -- \
|
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
org.gradle.wrapper.GradleWrapperMain \
|
|
||||||
"$@"
|
|
||||||
|
|
||||||
# Stop when "xargs" is not available.
|
|
||||||
if ! command -v xargs >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
die "xargs is not available"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use "xargs" to parse quoted args.
|
|
||||||
#
|
|
||||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
|
||||||
#
|
|
||||||
# In Bash we could simply go:
|
|
||||||
#
|
|
||||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
|
||||||
# set -- "${ARGS[@]}" "$@"
|
|
||||||
#
|
|
||||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
|
||||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
|
||||||
# character that might be a shell metacharacter, then use eval to reverse
|
|
||||||
# that process (while maintaining the separation between arguments), and wrap
|
|
||||||
# the whole thing up as a single "set" statement.
|
|
||||||
#
|
|
||||||
# This will of course break if any of these variables contains a newline or
|
|
||||||
# an unmatched quote.
|
|
||||||
#
|
|
||||||
|
|
||||||
eval "set -- $(
|
|
||||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
|
||||||
xargs -n1 |
|
|
||||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
|
||||||
tr '\n' ' '
|
|
||||||
)" '"$@"'
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
@ -1,94 +0,0 @@
|
|||||||
@rem
|
|
||||||
@rem Copyright 2015 the original author or authors.
|
|
||||||
@rem
|
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
@rem you may not use this file except in compliance with the License.
|
|
||||||
@rem You may obtain a copy of the License at
|
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@rem
|
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
@rem See the License for the specific language governing permissions and
|
|
||||||
@rem limitations under the License.
|
|
||||||
@rem
|
|
||||||
@rem SPDX-License-Identifier: Apache-2.0
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%"=="" set DIRNAME=.
|
|
||||||
@rem This is normally unused
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
|
||||||
|
|
||||||
echo. 1>&2
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
|
||||||
echo. 1>&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
||||||
echo location of your Java installation. 1>&2
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
|
||||||
|
|
||||||
echo. 1>&2
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
|
||||||
echo. 1>&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
||||||
echo location of your Java installation. 1>&2
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
set EXIT_CODE=%ERRORLEVEL%
|
|
||||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
|
||||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
|
||||||
exit /b %EXIT_CODE%
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
@ -1,20 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id "com.gradle.develocity" version "4.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
develocity {
|
|
||||||
buildScan {
|
|
||||||
termsOfUseUrl = "https://gradle.com/help/legal-terms-of-use"
|
|
||||||
termsOfUseAgree = "yes"
|
|
||||||
uploadInBackground = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
rootProject.name = 'no-wrapper'
|
|
||||||
|
|
||||||
println "Using Gradle version: ${gradle.gradleVersion}"
|
|
||||||
|
|
||||||
def gradleVersionCheck = System.properties.gradleVersionCheck
|
|
||||||
if (gradleVersionCheck && gradle.gradleVersion != gradleVersionCheck) {
|
|
||||||
throw new RuntimeException("Got the wrong version: expected ${gradleVersionCheck} but was ${gradle.gradleVersion}")
|
|
||||||
}
|
|
57
.github/workflows/ci-check-and-unit-test.yml
vendored
57
.github/workflows/ci-check-and-unit-test.yml
vendored
@ -1,57 +0,0 @@
|
|||||||
name: CI-check-and-unit-test
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
- 'release/**'
|
|
||||||
paths-ignore:
|
|
||||||
- 'dist/**'
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-format-and-unit-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
cache: npm
|
|
||||||
cache-dependency-path: sources/package-lock.json
|
|
||||||
- name: Setup Gradle
|
|
||||||
# Use a released version to avoid breakages
|
|
||||||
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4.3.1
|
|
||||||
env:
|
|
||||||
ALLOWED_GRADLE_WRAPPER_CHECKSUMS: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 # Invalid wrapper jar used for testing
|
|
||||||
with:
|
|
||||||
gradle-version: '8.13'
|
|
||||||
|
|
||||||
- name: Install npm dependencies
|
|
||||||
run: |
|
|
||||||
npm clean-install
|
|
||||||
working-directory: sources
|
|
||||||
|
|
||||||
- name: Check formatting and compile
|
|
||||||
run: |
|
|
||||||
npm run check
|
|
||||||
npm run compile
|
|
||||||
working-directory: sources
|
|
||||||
env:
|
|
||||||
NODE_OPTIONS: '-r @gradle/develocity-agent/preload'
|
|
||||||
DEVELOCITY_URL: 'https://ge.solutions-team.gradle.com'
|
|
||||||
DEVELOCITY_ACCESS_KEY: '${{ secrets.DV_SOLUTIONS_ACCESS_KEY }}'
|
|
||||||
|
|
||||||
- name: Run unit tests
|
|
||||||
run: |
|
|
||||||
npm test
|
|
||||||
working-directory: sources
|
|
||||||
env:
|
|
||||||
NODE_OPTIONS: '-r @gradle/develocity-agent/preload'
|
|
||||||
DEVELOCITY_URL: 'https://ge.solutions-team.gradle.com'
|
|
||||||
DEVELOCITY_ACCESS_KEY: '${{ secrets.DV_SOLUTIONS_ACCESS_KEY }}'
|
|
40
.github/workflows/ci-check-no-dist-update.yml
vendored
40
.github/workflows/ci-check-no-dist-update.yml
vendored
@ -1,40 +0,0 @@
|
|||||||
name: CI-check-no-dist-update
|
|
||||||
|
|
||||||
# Prohibit any change to 'dist/**' on a non-release branch
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- 'dist/**'
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
fail-on-dist-update:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Get changed files
|
|
||||||
id: changed-files
|
|
||||||
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
dist/**
|
|
||||||
|
|
||||||
- name: Print changes to dist directory
|
|
||||||
env:
|
|
||||||
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
for file in ${ALL_CHANGED_FILES}; do
|
|
||||||
echo "$file was changed"
|
|
||||||
done
|
|
||||||
|
|
||||||
- run: |
|
|
||||||
echo "The 'dist' directory is automatically updated by the release process."
|
|
||||||
echo "It should not be updated manually in a non-release branch or a pull request."
|
|
||||||
exit 1
|
|
17
.github/workflows/ci-codeql.yml
vendored
17
.github/workflows/ci-codeql.yml
vendored
@ -2,19 +2,12 @@ name: CI-codeql
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches: [ "main" ]
|
||||||
- 'main'
|
|
||||||
- 'release/**'
|
|
||||||
- 'dev/**' # Allow running Code QL on dev branches without a PR
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches: [ "main" ]
|
||||||
- 'main'
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '25 23 * * 2'
|
- cron: '25 23 * * 2'
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze:
|
analyze:
|
||||||
name: Analyze
|
name: Analyze
|
||||||
@ -31,11 +24,11 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
|
uses: github/codeql-action/init@v3
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
config: |
|
config: |
|
||||||
@ -43,4 +36,4 @@ jobs:
|
|||||||
- sources/src
|
- sources/src
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
|
uses: github/codeql-action/analyze@v3
|
||||||
|
24
.github/workflows/ci-combine-bot-prs.yml
vendored
24
.github/workflows/ci-combine-bot-prs.yml
vendored
@ -1,24 +0,0 @@
|
|||||||
name: Combine Bot PRs
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
combine-wrapperbot-prs:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
pull-requests: write
|
|
||||||
checks: read
|
|
||||||
if: github.repository == 'gradle/actions'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: combine-wrapperbot-prs
|
|
||||||
uses: github/combine-prs@2909f404763c3177a456e052bdb7f2e85d3a7cb3 # v5.2.0
|
|
||||||
with:
|
|
||||||
branch_prefix: wrapperbot
|
|
||||||
combine_branch_name: wrapperbot/combined-wrapper-updates
|
|
||||||
pr_title: 'Bump Gradle Wrappers'
|
|
||||||
ci_required: "false"
|
|
20
.github/workflows/ci-dependency-review.yml
vendored
Normal file
20
.github/workflows/ci-dependency-review.yml
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Dependency Review Action
|
||||||
|
#
|
||||||
|
# This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
|
||||||
|
#
|
||||||
|
# Source repository: https://github.com/actions/dependency-review-action
|
||||||
|
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
||||||
|
name: CI-dependency-review
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-review:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Checkout Repository'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: 'Dependency Review'
|
||||||
|
uses: actions/dependency-review-action@v4
|
107
.github/workflows/ci-full-check.yml
vendored
Normal file
107
.github/workflows/ci-full-check.yml
vendored
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
name: CI-full-check
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- assigned
|
||||||
|
- review_requested
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- release/**
|
||||||
|
paths:
|
||||||
|
- '.github/**'
|
||||||
|
- 'dist/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
action-inputs:
|
||||||
|
uses: ./.github/workflows/integ-test-action-inputs.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
cache-cleanup:
|
||||||
|
uses: ./.github/workflows/integ-test-cache-cleanup.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
caching-config:
|
||||||
|
uses: ./.github/workflows/integ-test-caching-config.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
dependency-graph:
|
||||||
|
uses: ./.github/workflows/integ-test-dependency-graph.yml
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
dependency-graph-failures:
|
||||||
|
uses: ./.github/workflows/integ-test-dependency-graph-failures.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
execution-with-caching:
|
||||||
|
uses: ./.github/workflows/integ-test-execution-with-caching.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
execution:
|
||||||
|
uses: ./.github/workflows/integ-test-execution.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
develocity-injection:
|
||||||
|
uses: ./.github/workflows/integ-test-inject-develocity.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
secrets:
|
||||||
|
DEVELOCITY_ACCESS_KEY: ${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }}
|
||||||
|
|
||||||
|
provision-gradle-versions:
|
||||||
|
uses: ./.github/workflows/integ-test-provision-gradle-versions.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
restore-configuration-cache:
|
||||||
|
uses: ./.github/workflows/integ-test-restore-configuration-cache.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
secrets:
|
||||||
|
GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
|
||||||
|
restore-custom-gradle-home:
|
||||||
|
uses: ./.github/workflows/integ-test-restore-custom-gradle-home.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
restore-containerized-gradle-home:
|
||||||
|
uses: ./.github/workflows/integ-test-restore-containerized-gradle-home.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
restore-gradle-home:
|
||||||
|
uses: ./.github/workflows/integ-test-restore-gradle-home.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
restore-java-toolchain:
|
||||||
|
uses: ./.github/workflows/integ-test-restore-java-toolchain.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
sample-kotlin-dsl:
|
||||||
|
uses: ./.github/workflows/integ-test-sample-kotlin-dsl.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
sample-gradle-plugin:
|
||||||
|
uses: ./.github/workflows/integ-test-sample-gradle-plugin.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
||||||
|
|
||||||
|
toolchain-detection:
|
||||||
|
uses: ./.github/workflows/integ-test-detect-java-toolchains.yml
|
||||||
|
with:
|
||||||
|
cache-key-prefix: ${{github.run_number}}-
|
20
.github/workflows/ci-init-script-check.yml
vendored
20
.github/workflows/ci-init-script-check.yml
vendored
@ -2,37 +2,25 @@ name: CI-init-script-check
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
- 'release/**'
|
|
||||||
paths-ignore:
|
|
||||||
- 'dist/**'
|
|
||||||
pull_request:
|
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/ci-init-script-check.yml'
|
- '.github/workflows/ci-init-script-check.yml'
|
||||||
- 'sources/src/resources/init-scripts/**'
|
- 'sources/src/resources/init-scripts/**'
|
||||||
- 'sources/test/init-scripts/**'
|
- 'sources/test/init-scripts/**'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test-init-scripts:
|
test-init-scripts:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
java-version: 11
|
java-version: 8
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
# Use a released version to avoid breakages
|
uses: gradle/actions/setup-gradle@v3 # Use a released version to avoid breakages
|
||||||
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4.3.1
|
|
||||||
env:
|
|
||||||
ALLOWED_GRADLE_WRAPPER_CHECKSUMS: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 # Invalid wrapper jar used for testing
|
|
||||||
- name: Run integration tests
|
- name: Run integration tests
|
||||||
working-directory: sources/test/init-scripts
|
working-directory: sources/test/init-scripts
|
||||||
run: ./gradlew check
|
run: ./gradlew check
|
||||||
|
39
.github/workflows/ci-integ-test-full.yml
vendored
39
.github/workflows/ci-integ-test-full.yml
vendored
@ -1,39 +0,0 @@
|
|||||||
name: CI-integ-test-full
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
paths:
|
|
||||||
- 'dist/**'
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: integ-test
|
|
||||||
cancel-in-progress: false
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
caching-integ-tests:
|
|
||||||
uses: ./.github/workflows/suite-integ-test-caching.yml
|
|
||||||
concurrency:
|
|
||||||
group: CI-integ-test-full
|
|
||||||
cancel-in-progress: false
|
|
||||||
with:
|
|
||||||
runner-os: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
|
||||||
skip-dist: true
|
|
||||||
secrets: inherit
|
|
||||||
|
|
||||||
other-integ-tests:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
uses: ./.github/workflows/suite-integ-test-other.yml
|
|
||||||
concurrency:
|
|
||||||
group: CI-integ-test-full
|
|
||||||
cancel-in-progress: false
|
|
||||||
with:
|
|
||||||
runner-os: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
|
||||||
skip-dist: true
|
|
||||||
secrets: inherit
|
|
45
.github/workflows/ci-integ-test.yml
vendored
45
.github/workflows/ci-integ-test.yml
vendored
@ -1,45 +0,0 @@
|
|||||||
name: CI-integ-test
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
- 'release/**'
|
|
||||||
- 'dev/**' # Allow running tests on dev branches without a PR
|
|
||||||
paths-ignore:
|
|
||||||
- 'dist/**'
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: integ-test
|
|
||||||
cancel-in-progress: false
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-distribution:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Build and upload distribution
|
|
||||||
if: ${{ needs.determine-suite.outputs.suite != 'full' }}
|
|
||||||
uses: ./.github/actions/build-dist
|
|
||||||
|
|
||||||
caching-integ-tests:
|
|
||||||
needs: build-distribution
|
|
||||||
uses: ./.github/workflows/suite-integ-test-caching.yml
|
|
||||||
with:
|
|
||||||
skip-dist: false
|
|
||||||
secrets: inherit
|
|
||||||
|
|
||||||
other-integ-tests:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
needs: build-distribution
|
|
||||||
uses: ./.github/workflows/suite-integ-test-other.yml
|
|
||||||
with:
|
|
||||||
skip-dist: false
|
|
||||||
secrets: inherit
|
|
57
.github/workflows/ci-ossf-scorecard.yml
vendored
57
.github/workflows/ci-ossf-scorecard.yml
vendored
@ -1,57 +0,0 @@
|
|||||||
name: CI-ossf-scorecard
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 5 * * 1'
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analysis:
|
|
||||||
name: Scorecard analysis
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
# Needed to upload the results to code-scanning dashboard.
|
|
||||||
security-events: write
|
|
||||||
# Needed to publish results and get a badge (see publish_results below).
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: 'Checkout code'
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
show-progress: false
|
|
||||||
|
|
||||||
- name: 'Run analysis'
|
|
||||||
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
|
||||||
with:
|
|
||||||
results_file: results.sarif
|
|
||||||
results_format: sarif
|
|
||||||
|
|
||||||
# Public repositories:
|
|
||||||
# - Publish results to OpenSSF REST API for easy access by consumers
|
|
||||||
# - Allows the repository to include the Scorecard badge.
|
|
||||||
# - See https://github.com/ossf/scorecard-action#publishing-results.
|
|
||||||
# For private repositories:
|
|
||||||
# - `publish_results` will always be set to `false`, regardless
|
|
||||||
# of the value entered here.
|
|
||||||
publish_results: true
|
|
||||||
|
|
||||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
|
||||||
# format to the repository Actions tab.
|
|
||||||
- name: 'Upload artifact'
|
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
||||||
with:
|
|
||||||
name: SARIF file
|
|
||||||
path: results.sarif
|
|
||||||
retention-days: 5
|
|
||||||
|
|
||||||
# Upload the results to GitHub's code scanning dashboard.
|
|
||||||
- name: 'Upload to code-scanning'
|
|
||||||
uses: github/codeql-action/upload-sarif@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
|
|
||||||
with:
|
|
||||||
sarif_file: results.sarif
|
|
156
.github/workflows/ci-quick-check.yml
vendored
Normal file
156
.github/workflows/ci-quick-check.yml
vendored
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
name: CI-quick-check
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- main
|
||||||
|
- release/**
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-distribution:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Build and upload distribution
|
||||||
|
uses: ./.github/actions/build-dist
|
||||||
|
|
||||||
|
run-unit-tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Configure Gradle as default for unit test
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
gradle-version: 8.5
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm run all
|
||||||
|
working-directory: sources
|
||||||
|
|
||||||
|
action-inputs:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-action-inputs.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
cache-cleanup:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-cache-cleanup.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
cache-key-prefix: ${{github.run_number}}- # Requires a fresh cache entry each run
|
||||||
|
|
||||||
|
caching-config:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-caching-config.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
dependency-graph:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-dependency-graph.yml
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
dependency-graph-failures:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-dependency-graph-failures.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
execution-with-caching:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-execution-with-caching.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
execution:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-execution.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
develocity-injection:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-inject-develocity.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
secrets:
|
||||||
|
DEVELOCITY_ACCESS_KEY: ${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }}
|
||||||
|
|
||||||
|
provision-gradle-versions:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-provision-gradle-versions.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
restore-configuration-cache:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-restore-configuration-cache.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
secrets:
|
||||||
|
GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
|
||||||
|
restore-containerized-gradle-home:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-restore-containerized-gradle-home.yml
|
||||||
|
with:
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
restore-custom-gradle-home:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-restore-custom-gradle-home.yml
|
||||||
|
with:
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
restore-gradle-home:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-restore-gradle-home.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
restore-java-toolchain:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-restore-java-toolchain.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
sample-kotlin-dsl:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-sample-kotlin-dsl.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
sample-gradle-plugin:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-sample-gradle-plugin.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
||||||
|
|
||||||
|
toolchain-detection:
|
||||||
|
needs: build-distribution
|
||||||
|
uses: ./.github/workflows/integ-test-detect-java-toolchains.yml
|
||||||
|
with:
|
||||||
|
runner-os: '["ubuntu-latest"]'
|
||||||
|
download-dist: true
|
75
.github/workflows/ci-update-dist.yml
vendored
75
.github/workflows/ci-update-dist.yml
vendored
@ -1,75 +0,0 @@
|
|||||||
name: CI-update-dist
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
- 'prerelease/**'
|
|
||||||
- 'release/**'
|
|
||||||
paths-ignore:
|
|
||||||
- 'dist/**'
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-dist:
|
|
||||||
# Only run for the Gradle repository; otherwise when users create pull requests from their `main` branch
|
|
||||||
# it would erroneously update `dist` on their branch (and the pull request)
|
|
||||||
if: github.repository == 'gradle/actions'
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.BOT_GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
cache: npm
|
|
||||||
cache-dependency-path: sources/package-lock.json
|
|
||||||
|
|
||||||
- name: Install npm dependencies
|
|
||||||
run: |
|
|
||||||
npm clean-install
|
|
||||||
working-directory: sources
|
|
||||||
|
|
||||||
- name: Build distribution
|
|
||||||
run: |
|
|
||||||
npm run check
|
|
||||||
npm run compile
|
|
||||||
working-directory: sources
|
|
||||||
env:
|
|
||||||
NODE_OPTIONS: '-r @gradle/develocity-agent/preload'
|
|
||||||
DEVELOCITY_URL: 'https://ge.solutions-team.gradle.com'
|
|
||||||
DEVELOCITY_ACCESS_KEY: '${{ secrets.DV_SOLUTIONS_ACCESS_KEY }}'
|
|
||||||
|
|
||||||
- name: Copy the generated sources/dist directory to the top-level dist
|
|
||||||
run: |
|
|
||||||
cp -r sources/dist .
|
|
||||||
|
|
||||||
- name: Import GPG key to sign commits
|
|
||||||
uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0
|
|
||||||
with:
|
|
||||||
gpg_private_key: ${{ secrets.GH_BOT_PGP_PRIVATE_KEY }}
|
|
||||||
passphrase: ${{ secrets.GH_BOT_PGP_PASSPHRASE }}
|
|
||||||
git_user_signingkey: true
|
|
||||||
git_commit_gpgsign: true
|
|
||||||
git_config_global: true
|
|
||||||
|
|
||||||
# Commit and push changes; has no effect if the files did not change
|
|
||||||
# Important: The push event will not trigger any other workflows, see
|
|
||||||
# https://github.com/stefanzweifel/git-auto-commit-action?tab=readme-ov-file#commits-made-by-this-action-do-not-trigger-new-workflow-runs
|
|
||||||
- name: Commit & push changes
|
|
||||||
uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # v5.1.0
|
|
||||||
with:
|
|
||||||
commit_author: bot-githubaction <bot-githubaction@gradle.com>
|
|
||||||
commit_user_name: bot-githubaction
|
|
||||||
commit_user_email: bot-githubaction@gradle.com
|
|
||||||
commit_message: '[bot] Update dist directory'
|
|
||||||
file_pattern: dist
|
|
17
.github/workflows/ci-validate-wrappers.yml
vendored
17
.github/workflows/ci-validate-wrappers.yml
vendored
@ -1,17 +0,0 @@
|
|||||||
name: CI-validate-wrappers
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
validation:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- uses: gradle/actions/wrapper-validation@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4.3.1
|
|
||||||
with:
|
|
||||||
allow-checksums: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
|
45
.github/workflows/ci-verify-outputs.yml
vendored
Normal file
45
.github/workflows/ci-verify-outputs.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
name: CI-verify-outputs
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- assigned
|
||||||
|
- review_requested
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- release/**
|
||||||
|
- dependabot/**
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
npm -v
|
||||||
|
node -v
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
working-directory: sources
|
||||||
|
|
||||||
|
- name: Compare the expected and actual dist/ directories
|
||||||
|
run: |
|
||||||
|
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
|
||||||
|
echo "Detected uncommitted changes after build. See status below:"
|
||||||
|
git diff
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
id: diff
|
||||||
|
|
||||||
|
# If index.js was different than expected, upload the expected version as an artifact
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||||
|
with:
|
||||||
|
name: dist
|
||||||
|
path: dist/
|
43
.github/workflows/demo-failure-cases.yml
vendored
Normal file
43
.github/workflows/demo-failure-cases.yml
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
name: demo-failure-cases
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
failing-build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Test build failure
|
||||||
|
uses: ./setup-gradle
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
build-root-directory: .github/workflow-samples/kotlin-dsl
|
||||||
|
arguments: not-a-valid-task
|
||||||
|
|
||||||
|
wrapper-missing:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Test wrapper missing
|
||||||
|
uses: ./setup-gradle
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
build-root-directory: .github/workflow-samples/no-wrapper
|
||||||
|
arguments: help
|
||||||
|
|
||||||
|
bad-configuration:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Test bad config value
|
||||||
|
uses: ./setup-gradle
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
build-root-directory: .github/workflow-samples/no-wrapper
|
||||||
|
arguments: help
|
||||||
|
cache-disabled: yes
|
75
.github/workflows/demo-job-summary.yml
vendored
75
.github/workflows/demo-job-summary.yml
vendored
@ -2,33 +2,25 @@ name: Demo Job Summary, for Gradle builds
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
|
||||||
permissions:
|
env:
|
||||||
contents: read
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-distribution:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Build and upload distribution
|
|
||||||
uses: ./.github/actions/build-dist
|
|
||||||
|
|
||||||
many-gradle-builds:
|
many-gradle-builds:
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Build distribution
|
||||||
uses: ./.github/actions/init-integ-test
|
shell: bash
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
working-directory: sources
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
|
||||||
cache-read-only: false
|
|
||||||
cache-cleanup: 'on-success'
|
|
||||||
- name: Build kotlin-dsl project
|
- name: Build kotlin-dsl project
|
||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
working-directory: .github/workflow-samples/kotlin-dsl
|
||||||
run: ./gradlew assemble
|
run: ./gradlew assemble
|
||||||
@ -46,26 +38,22 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
./gradlew tasks --no-daemon
|
./gradlew tasks --no-daemon
|
||||||
./gradlew help check
|
./gradlew help check
|
||||||
./gradlew wrapper --gradle-version 8.7 --gradle-distribution-sha256-sum 544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
|
|
||||||
- name: Fail groovy-dsl project
|
- name: Fail groovy-dsl project
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: ./gradlew not-a-real-task
|
run: ./gradlew not-a-real-task
|
||||||
- name: Dependency submission
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
dependency-graph: generate-and-upload
|
|
||||||
|
|
||||||
successful-builds-with-no-summary:
|
successful-builds-with-no-summary:
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Build distribution
|
||||||
uses: ./.github/actions/init-integ-test
|
shell: bash
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
working-directory: sources
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -78,14 +66,16 @@ jobs:
|
|||||||
run: ./gradlew assemble check --no-scan
|
run: ./gradlew assemble check --no-scan
|
||||||
|
|
||||||
pre-existing-gradle-home:
|
pre-existing-gradle-home:
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Build distribution
|
||||||
uses: ./.github/actions/init-integ-test
|
shell: bash
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
working-directory: sources
|
||||||
- name: Pre-create Gradle User Home
|
- name: Pre-create Gradle User Home
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@ -97,20 +87,3 @@ jobs:
|
|||||||
- name: Run build
|
- name: Run build
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: ./gradlew assemble
|
run: ./gradlew assemble
|
||||||
|
|
||||||
cache-read-only:
|
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
cache-read-only: true
|
|
||||||
- name: Build kotlin-dsl project
|
|
||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
|
||||||
run: ./gradlew assemble
|
|
||||||
|
40
.github/workflows/demo-pr-build-scan-comment.yml
vendored
40
.github/workflows/demo-pr-build-scan-comment.yml
vendored
@ -4,28 +4,14 @@ on:
|
|||||||
types: [assigned, review_requested]
|
types: [assigned, review_requested]
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-distribution:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Build and upload distribution
|
|
||||||
uses: ./.github/actions/build-dist
|
|
||||||
|
|
||||||
successful-build-with-always-comment:
|
successful-build-with-always-comment:
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout project sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -36,16 +22,10 @@ jobs:
|
|||||||
run: ./gradlew build --scan
|
run: ./gradlew build --scan
|
||||||
|
|
||||||
successful-build-with-comment-on-failure:
|
successful-build-with-comment-on-failure:
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout project sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -56,16 +36,10 @@ jobs:
|
|||||||
run: ./gradlew build --scan
|
run: ./gradlew build --scan
|
||||||
|
|
||||||
failing-build-with-comment-on-failure:
|
failing-build-with-comment-on-failure:
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
needs: build-distribution
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout project sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
25
.github/workflows/dependency-submission-save.yml
vendored
Normal file
25
.github/workflows/dependency-submission-save.yml
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
name: Test dependency-submission save
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
env:
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-submission-save:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and save dependency graph
|
||||||
|
uses: ./dependency-submission
|
||||||
|
with:
|
||||||
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
dependency-graph: generate-and-upload
|
||||||
|
env:
|
||||||
|
GITHUB_DEPENDENCY_GRAPH_REF: 'refs/tags/v0.0.1' # Use a different ref to avoid updating the real dependency graph for the repository
|
23
.github/workflows/dependency-submission-submit.yml
vendored
Normal file
23
.github/workflows/dependency-submission-submit.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
name: Test dependency-submission submit
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: ['Test dependency-submission save']
|
||||||
|
types: [completed]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-submission-submit:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download and submit dependency graph
|
||||||
|
uses: ./dependency-submission
|
||||||
|
with:
|
||||||
|
dependency-graph: download-and-submit
|
24
.github/workflows/dependency-submission.yml
vendored
Normal file
24
.github/workflows/dependency-submission.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
name: Test dependency-submission
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-dependency-submission:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and submit dependencies
|
||||||
|
uses: ./dependency-submission
|
||||||
|
with:
|
||||||
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
env:
|
||||||
|
GITHUB_DEPENDENCY_GRAPH_REF: 'refs/tags/v0.0.1' # Use a different ref to avoid updating the real dependency graph for the repository
|
41
.github/workflows/integ-test-action-inputs.yml
vendored
Normal file
41
.github/workflows/integ-test-action-inputs.yml
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
name: Test action inputs
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
cache-key-prefix:
|
||||||
|
type: string
|
||||||
|
runner-os:
|
||||||
|
type: string
|
||||||
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
|
download-dist:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: action-inputs-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
action-inputs:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Invoke with multi-line arguments
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
arguments: |
|
||||||
|
--configuration-cache
|
||||||
|
--build-cache
|
||||||
|
-DsystemProperty=FOO
|
||||||
|
-PgradleProperty=BAR
|
||||||
|
test
|
||||||
|
jar
|
@ -1,56 +0,0 @@
|
|||||||
name: Test develocity injection
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
cache-key-prefix:
|
|
||||||
type: string
|
|
||||||
default: '0'
|
|
||||||
runner-os:
|
|
||||||
type: string
|
|
||||||
default: '["ubuntu-latest"]'
|
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: build-scan-publish-${{ inputs.cache-key-prefix }}
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-scan-publish:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
gradle: ['current', '7.6.2', '6.9.4', '5.6.4']
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
|
||||||
id: setup-gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
||||||
gradle-version: ${{ matrix.gradle }}
|
|
||||||
build-scan-publish: true
|
|
||||||
build-scan-terms-of-use-url: 'https://gradle.com/terms-of-service'
|
|
||||||
build-scan-terms-of-use-agree: 'yes'
|
|
||||||
- name: Run Gradle build
|
|
||||||
id: gradle
|
|
||||||
working-directory: .github/workflow-samples/no-ge
|
|
||||||
run: gradle help
|
|
||||||
- name: Check Build Scan url
|
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
core.setFailed('No Build Scan detected')
|
|
||||||
|
|
70
.github/workflows/integ-test-cache-cleanup.yml
vendored
70
.github/workflows/integ-test-cache-cleanup.yml
vendored
@ -5,103 +5,83 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
# Requires a fresh cache entry each run
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: integ-test-cache-cleanup-${{ inputs.cache-key-prefix }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: cache-cleanup-${{ inputs.cache-key-prefix }}-${{github.run_number}}
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
cache-cleanup-full-build:
|
full-build:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
- name: Build with 3.1
|
- name: Build with 3.1
|
||||||
working-directory: sources/test/jest/resources/cache-cleanup
|
working-directory: sources/test/jest/resources/cache-cleanup
|
||||||
run: ./gradlew --no-daemon --build-cache -Dcommons_math3_version="3.1" build
|
run: gradle --no-daemon --build-cache -Dcommons_math3_version="3.1" build
|
||||||
|
|
||||||
# Second build will use the cache from the first build, but cleanup should remove unused artifacts
|
# Second build will use the cache from the first build, but cleanup should remove unused artifacts
|
||||||
cache-cleanup-assemble-build:
|
assemble-build:
|
||||||
needs: cache-cleanup-full-build
|
needs: full-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false
|
cache-read-only: false
|
||||||
cache-cleanup: 'on-success'
|
gradle-home-cache-cleanup: true
|
||||||
- name: Build with 3.1.1
|
- name: Build with 3.1.1
|
||||||
working-directory: sources/test/jest/resources/cache-cleanup
|
working-directory: sources/test/jest/resources/cache-cleanup
|
||||||
run: ./gradlew --no-daemon --build-cache -Dcommons_math3_version="3.1.1" build
|
run: gradle --no-daemon --build-cache -Dcommons_math3_version="3.1.1" build
|
||||||
|
|
||||||
cache-cleanup-check-clean-cache:
|
check-clean-cache:
|
||||||
needs: cache-cleanup-assemble-build
|
needs: assemble-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
- name: Report Gradle User Home
|
- name: Report Gradle User Home
|
||||||
shell: bash
|
run: du -hc ~/.gradle/caches/modules-2
|
||||||
run: |
|
|
||||||
du -hc $GRADLE_USER_HOME/caches/modules-2
|
|
||||||
du -hc $GRADLE_USER_HOME/wrapper/dists
|
|
||||||
- name: Verify cleaned cache
|
- name: Verify cleaned cache
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if [ ! -e $GRADLE_USER_HOME/caches/modules-2/files-2.1/org.apache.commons/commons-math3/3.1.1 ]; then
|
if [ ! -e ~/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-math3/3.1.1 ]; then
|
||||||
echo "::error ::Should find commons-math3 3.1.1 in cache"
|
echo "::error ::Should find commons-math3 3.1.1 in cache"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ -e $GRADLE_USER_HOME/caches/modules-2/files-2.1/org.apache.commons/commons-math3/3.1 ]; then
|
if [ -e ~/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-math3/3.1 ]; then
|
||||||
echo "::error ::Should NOT find commons-math3 3.1 in cache"
|
echo "::error ::Should NOT find commons-math3 3.1 in cache"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ ! -e $GRADLE_USER_HOME/wrapper/dists/gradle-8.0.2-bin ]; then
|
|
||||||
echo "::error ::Should find gradle-8.0.2 in wrapper/dists"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
109
.github/workflows/integ-test-caching-config.yml
vendored
109
.github/workflows/integ-test-caching-config.yml
vendored
@ -5,43 +5,37 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: caching-config-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: action-inputs-caching-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
caching-config-seed-build:
|
seed-build:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
# Add "application" to main cache entry but omit "notifications"
|
# Add "enterprise" to main cache entry but omit "notifications"
|
||||||
gradle-home-cache-includes: |
|
gradle-home-cache-includes: |
|
||||||
caches
|
caches
|
||||||
application
|
enterprise
|
||||||
# Exclude build-cache from main cache entry
|
# Exclude build-cache from main cache entry
|
||||||
gradle-home-cache-excludes: |
|
gradle-home-cache-excludes: |
|
||||||
caches/build-cache-*
|
caches/build-cache-*
|
||||||
@ -51,27 +45,24 @@ jobs:
|
|||||||
run: ./gradlew test
|
run: ./gradlew test
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
||||||
caching-config-verify-build:
|
verify-build:
|
||||||
needs: caching-config-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
# Use the same configuration as used in the seed build
|
# Use the same configuration as used in the seed build
|
||||||
gradle-home-cache-includes: |
|
gradle-home-cache-includes: |
|
||||||
caches
|
caches
|
||||||
application
|
enterprise
|
||||||
gradle-home-cache-excludes: |
|
gradle-home-cache-excludes: |
|
||||||
caches/build-cache-*
|
caches/build-cache-*
|
||||||
caches/*/executionHistory
|
caches/*/executionHistory
|
||||||
@ -81,74 +72,67 @@ jobs:
|
|||||||
run: ./gradlew test --offline
|
run: ./gradlew test --offline
|
||||||
|
|
||||||
# Test that build scans are captured when caching is explicitly disabled
|
# Test that build scans are captured when caching is explicitly disabled
|
||||||
caching-config-cache-disabled:
|
cache-disabled:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-disabled: true
|
cache-disabled: true
|
||||||
- name: Build using Gradle wrapper
|
- name: Run Gradle build
|
||||||
id: gradle
|
id: gradle
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }}
|
||||||
run: ./gradlew help
|
run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}"
|
||||||
- name: Check Build Scan url is captured
|
- name: Check Build Scan url is captured
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
core.setFailed('No Build Scan detected')
|
core.setFailed('No Build Scan detected')
|
||||||
|
|
||||||
# Test that build scans are captured when caching is disabled because Gradle User Home already exists
|
# Test that build scans are captured when caching is disabled because Gradle User Home already exists
|
||||||
caching-config-cache-disabled-pre-existing-gradle-home:
|
cache-disabled-pre-existing-gradle-home:
|
||||||
runs-on: ubuntu-latest # This test only runs on Ubuntu
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Create dummy Gradle User Home
|
- name: Create dummy Gradle User Home
|
||||||
run: mkdir -p ~/.gradle/caches
|
run: mkdir -p ~/.gradle/caches
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
- name: Build using Gradle wrapper
|
- name: Run Gradle build
|
||||||
id: gradle
|
id: gradle
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }}
|
||||||
run: ./gradlew help
|
run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}"
|
||||||
- name: Check Build Scan url is captured
|
- name: Check Build Scan url is captured
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
core.setFailed('No Build Scan detected')
|
core.setFailed('No Build Scan detected')
|
||||||
|
|
||||||
# Test seed the cache with cache-write-only and verify with cache-read-only
|
# Test seed the cache with cache-write-only and verify with cache-read-only
|
||||||
caching-config-seed-write-only:
|
seed-build-write-only:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: caching-config-write-only-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{ inputs.cache-key-prefix }}-write-only-
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -157,22 +141,19 @@ jobs:
|
|||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: ./gradlew test
|
run: ./gradlew test
|
||||||
|
|
||||||
caching-config-verify-write-only:
|
verify-write-only-build:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: caching-config-write-only-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{ inputs.cache-key-prefix }}-write-only-
|
||||||
needs: caching-config-seed-write-only
|
needs: seed-build-write-only
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
103
.github/workflows/integ-test-dependency-graph-failures.yml
vendored
Normal file
103
.github/workflows/integ-test-dependency-graph-failures.yml
vendored
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
name: Test dependency graph
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
cache-key-prefix:
|
||||||
|
type: string
|
||||||
|
runner-os:
|
||||||
|
type: string
|
||||||
|
default: '["ubuntu-latest"]'
|
||||||
|
download-dist:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: dependency-graph-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
unsupported-gradle-version-warning:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Gradle for dependency-graph generate
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
gradle-version: 7.0.1
|
||||||
|
dependency-graph: generate
|
||||||
|
dependency-graph-continue-on-failure: true
|
||||||
|
- name: Run with unsupported Gradle version
|
||||||
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
run: |
|
||||||
|
if gradle help | grep -q 'warning::Dependency Graph is not supported for Gradle 7.0.1. No dependency snapshot will be generated.';
|
||||||
|
then
|
||||||
|
echo "Got the expected warning"
|
||||||
|
else
|
||||||
|
echo "Did not get the expected warning"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
unsupported-gradle-version-failure:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Gradle for dependency-graph generate
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
gradle-version: 7.0.1
|
||||||
|
dependency-graph: generate
|
||||||
|
dependency-graph-continue-on-failure: false
|
||||||
|
- name: Run with unsupported Gradle version
|
||||||
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
run: |
|
||||||
|
if gradle help; then
|
||||||
|
echo "Expected build to fail with Gradle 7.0.1"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
insufficient-permissions-warning:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Gradle for dependency-graph generate
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
dependency-graph: generate-and-submit
|
||||||
|
dependency-graph-continue-on-failure: true
|
||||||
|
- name: Run with insufficient permissions
|
||||||
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
run: ./gradlew help
|
||||||
|
# This test is primarily for demonstration: it's unclear how to check for warnings emitted in the post-action
|
||||||
|
|
||||||
|
SHOULD_FAIL-insufficient-permissions-failure:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
continue-on-error: true
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Gradle for dependency-graph generate
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
dependency-graph: generate-and-submit
|
||||||
|
dependency-graph-continue-on-failure: false
|
||||||
|
- name: Run with insufficient permissions
|
||||||
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
run: ./gradlew help
|
||||||
|
# This test is primarily for demonstration: it's unclear how to check for a failure in the post-action
|
140
.github/workflows/integ-test-dependency-graph.yml
vendored
140
.github/workflows/integ-test-dependency-graph.yml
vendored
@ -5,31 +5,32 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: dependency-graph-${{ inputs.cache-key-prefix }}
|
|
||||||
GITHUB_DEPENDENCY_GRAPH_REF: 'refs/tags/v0.0.1' # Use a different ref to avoid updating the real dependency graph for the repository
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: dependency-graph-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
dependency-graph-groovy-upload:
|
groovy-generate:
|
||||||
runs-on: "ubuntu-latest"
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle for dependency-graph generate
|
- name: Setup Gradle for dependency-graph generate
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -38,34 +39,16 @@ jobs:
|
|||||||
run: ./gradlew build
|
run: ./gradlew build
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
|
||||||
dependency-graph-groovy-submit:
|
kotlin-generate:
|
||||||
permissions:
|
strategy:
|
||||||
contents: write
|
matrix:
|
||||||
needs: [dependency-graph-groovy-upload]
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Submit dependency graphs
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
dependency-graph: download-and-submit
|
|
||||||
env:
|
|
||||||
DEPENDENCY_GRAPH_DOWNLOAD_ARTIFACT_NAME: groovy-upload
|
|
||||||
|
|
||||||
dependency-graph-kotlin-generate-and-submit:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle for dependency-graph generate
|
- name: Setup Gradle for dependency-graph generate
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -74,16 +57,29 @@ jobs:
|
|||||||
run: ./gradlew build
|
run: ./gradlew build
|
||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
working-directory: .github/workflow-samples/kotlin-dsl
|
||||||
|
|
||||||
dependency-graph-multiple-builds:
|
submit:
|
||||||
permissions:
|
needs: [groovy-generate]
|
||||||
contents: write
|
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-latest"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Submit dependency graphs
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
dependency-graph: download-and-submit
|
||||||
|
|
||||||
|
multiple-builds:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
- name: Setup Gradle for dependency-graph generate
|
- name: Setup Gradle for dependency-graph generate
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -117,16 +113,13 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dependency-graph-config-cache:
|
config-cache:
|
||||||
permissions:
|
runs-on: ubuntu-latest
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest # Test is not compatible with Windows
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle for dependency-graph generate
|
- name: Setup Gradle for dependency-graph generate
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -153,40 +146,3 @@ jobs:
|
|||||||
ls -l dependency-graph-reports
|
ls -l dependency-graph-reports
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dependency-graph-generate-submit-and-upload:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle for dependency-graph generate
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
dependency-graph: generate-submit-and-upload
|
|
||||||
- name: Run gradle build
|
|
||||||
id: gradle-build
|
|
||||||
run: ./gradlew build
|
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
|
|
||||||
dependency-graph-generate-submit-and-upload-check:
|
|
||||||
needs: [dependency-graph-generate-submit-and-upload]
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
steps:
|
|
||||||
- name: Download dependency-graph artifact
|
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
|
|
||||||
with:
|
|
||||||
path: downloaded-dependency-graphs
|
|
||||||
pattern: dependency-graph_*dependency-graph-generate-submit-and-upload.json
|
|
||||||
- name: Check for downloaded dependency graphs
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
ls -A "${{ github.workspace }}/downloaded-dependency-graphs"
|
|
||||||
if [ -z "$(ls -A "${{ github.workspace }}/downloaded-dependency-graphs")" ]; then
|
|
||||||
echo "No dependency graph files found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
name: Test dependency submission failures
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
cache-key-prefix:
|
|
||||||
type: string
|
|
||||||
default: '0'
|
|
||||||
runner-os:
|
|
||||||
type: string
|
|
||||||
default: '["ubuntu-latest"]'
|
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: dependency-submission-failures-${{ inputs.cache-key-prefix }}
|
|
||||||
GITHUB_DEPENDENCY_GRAPH_REF: 'refs/tags/v0.0.1' # Use a different ref to avoid updating the real dependency graph for the repository
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
dependency-submission-failures-failing-build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Submit with failing build
|
|
||||||
id: gradle-build
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
additional-arguments: fail
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Check step failed
|
|
||||||
if: steps.gradle-build.outcome != 'failure'
|
|
||||||
run: |
|
|
||||||
echo "Expected dependency submission step to fail"
|
|
||||||
exit 1
|
|
||||||
- name: Check no dependency graph is generated
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -z "$(ls -A dependency-graph-reports)" ]; then
|
|
||||||
echo "Expected no dependency graph files to be generated"
|
|
||||||
ls -l dependency-graph-reports
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dependency-submission-failures-unsupported-gradle-version:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Submit with unsupported Gradle version
|
|
||||||
id: gradle-build
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
gradle-version: '7.0.1'
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Check step failed
|
|
||||||
if: steps.gradle-build.outcome != 'failure'
|
|
||||||
run: |
|
|
||||||
echo "Expected dependency submission step to fail"
|
|
||||||
exit 1
|
|
||||||
- name: Check no dependency graph is generated
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -z "$(ls -A dependency-graph-reports)" ]; then
|
|
||||||
echo "Expected no dependency graph files to be generated"
|
|
||||||
ls -l dependency-graph-reports
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dependency-submission-failures-insufficient-permissions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Submit with insufficient permissions
|
|
||||||
id: gradle-build
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Check step failed
|
|
||||||
if: steps.gradle-build.outcome != 'failure'
|
|
||||||
run: |
|
|
||||||
echo "Expected dependency submission step to fail"
|
|
||||||
exit 1
|
|
@ -1,407 +0,0 @@
|
|||||||
name: Test dependency submission
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
cache-key-prefix:
|
|
||||||
type: string
|
|
||||||
default: '0'
|
|
||||||
runner-os:
|
|
||||||
type: string
|
|
||||||
default: '["ubuntu-latest"]'
|
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: dependency-submission-${{ inputs.cache-key-prefix }}
|
|
||||||
GITHUB_DEPENDENCY_GRAPH_REF: 'refs/tags/v0.0.1' # Use a different ref to avoid updating the real dependency graph for the repository
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
dependency-submission-groovy-generate-and-upload:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Generate dependency graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: generate-and-upload
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
cache-read-only: false
|
|
||||||
env:
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: groovy-dependency-submission
|
|
||||||
|
|
||||||
dependency-submission-groovy-restore-cache:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
needs: [dependency-submission-groovy-generate-and-upload]
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Restore dependency graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
additional-arguments: --offline
|
|
||||||
env:
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: groovy-dependency-submission
|
|
||||||
|
|
||||||
dependency-submission-groovy-download-and-submit:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
needs: [dependency-submission-groovy-generate-and-upload]
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Submit dependency graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: download-and-submit
|
|
||||||
env:
|
|
||||||
DEPENDENCY_GRAPH_DOWNLOAD_ARTIFACT_NAME: groovy-generate-and-upload-${{ matrix.os }}
|
|
||||||
|
|
||||||
dependency-submission-kotlin-generate-and-submit:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Generate and submit dependency graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/kotlin-dsl
|
|
||||||
|
|
||||||
dependency-submission-multiple-builds:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- id: kotlin-dsl
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/kotlin-dsl
|
|
||||||
- id: groovy-dsl
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
- id: groovy-dsl-again
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
dependency-resolution-task: assemble
|
|
||||||
- name: Check generated dependency graphs
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "kotlin-dsl report file: ${{ steps.kotlin-dsl.outputs.dependency-graph-file }}"
|
|
||||||
echo "groovy-dsl report file: ${{ steps.groovy-dsl.outputs.dependency-graph-file }}"
|
|
||||||
echo "groovy-dsl-again report file: ${{ steps.groovy-dsl-again.outputs.dependency-graph-file }}"
|
|
||||||
ls -l dependency-graph-reports
|
|
||||||
if [ ! -e "${{ steps.kotlin-dsl.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find kotlin-dsl dependency graph file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ ! -e "${{ steps.groovy-dsl.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find groovy-dsl dependency graph file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ ! -e "${{ steps.groovy-dsl-again.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find groovy-dsl-again dependency graph file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dependency-submission-multiple-builds-upload:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- id: kotlin-dsl
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: generate-and-upload
|
|
||||||
build-root-directory: .github/workflow-samples/kotlin-dsl
|
|
||||||
- id: groovy-dsl
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: generate-and-upload
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
|
|
||||||
dependency-submission-config-cache:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest # Test is not compatible with Windows
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- id: config-cache-store
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
additional-arguments: --configuration-cache
|
|
||||||
- name: Check and delete generated dependency graph
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -e "${{ steps.config-cache-store.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find config-cache-store dependency graph files"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
rm ${{ steps.config-cache-store.outputs.dependency-graph-file }}*
|
|
||||||
- id: config-cache-reuse
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
additional-arguments: --configuration-cache
|
|
||||||
- name: Check no dependency graph is generated
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -z "$(ls -A dependency-graph-reports)" ]; then
|
|
||||||
echo "Expected no dependency graph files to be generated"
|
|
||||||
ls -l dependency-graph-reports
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dependency-submission-gradle-versions:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
gradle: ['8.0.2', '7.6.4', '7.1.1', '6.9.4', '6.0.1', '5.6.4', '5.2.1']
|
|
||||||
include:
|
|
||||||
- gradle: '5.6.4'
|
|
||||||
build-root-suffix: -gradle-5
|
|
||||||
- gradle: '5.2.1'
|
|
||||||
build-root-suffix: -gradle-5
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Generate and submit dependencies
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
gradle-version: ${{ matrix.gradle }}
|
|
||||||
build-root-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }}
|
|
||||||
|
|
||||||
dependency-submission-with-setup-gradle:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest # Test is not compatible with Windows
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
- name: Generate and submit dependencies
|
|
||||||
id: dependency-submission
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
- name: Check and delete generated dependency graph
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -e "${{ steps.dependency-submission.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find generated dependency graph files"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
rm ${{ steps.dependency-submission.outputs.dependency-graph-file }}*
|
|
||||||
- name: Run Gradle build
|
|
||||||
run: ./gradlew build
|
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
- name: Check no dependency graph is generated
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -z "$(ls -A dependency-graph-reports)" ]; then
|
|
||||||
echo "Expected no dependency graph files to be generated"
|
|
||||||
ls -l dependency-graph-reports
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dependency-submission-with-includes-and-excludes:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest # Test is not compatible with Windows
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Generate and submit dependencies
|
|
||||||
id: dependency-submission
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
dependency-graph-exclude-projects: excluded-project
|
|
||||||
dependency-graph-include-projects: included-project
|
|
||||||
dependency-graph-exclude-configurations: excluded-configuration
|
|
||||||
dependency-graph-include-configurations: included-configuration
|
|
||||||
- name: Check generated dependency graph and env vars
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ ! -e "${{ steps.dependency-submission.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find generated dependency graph file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$DEPENDENCY_GRAPH_EXCLUDE_PROJECTS" != "excluded-project" ] ||
|
|
||||||
[ "$DEPENDENCY_GRAPH_INCLUDE_PROJECTS" != "included-project" ] ||
|
|
||||||
[ "$DEPENDENCY_GRAPH_EXCLUDE_CONFIGURATIONS" != "excluded-configuration" ] ||
|
|
||||||
[ "$DEPENDENCY_GRAPH_INCLUDE_CONFIGURATIONS" != "included-configuration" ]; then
|
|
||||||
echo "Did not set expected environment variables"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
dependency-submission-custom-report-dir-submit:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Generate dependency graph
|
|
||||||
id: dependency-graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: generate-and-submit
|
|
||||||
dependency-graph-report-dir: '${{ github.workspace }}/custom/report-dir'
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
- name: Check generated dependency graphs
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "report file: ${{ steps.dependency-graph.outputs.dependency-graph-file }}"
|
|
||||||
|
|
||||||
if [ ! -e "${{ steps.dependency-graph.outputs.dependency-graph-file }}" ]; then
|
|
||||||
echo "Did not find dependency graph file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$(ls -A "${{ github.workspace }}/custom/report-dir")" ]; then
|
|
||||||
echo "No dependency graph files found in custom directory"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dependency-submission-custom-report-dir-upload:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Generate and upload dependency graph
|
|
||||||
id: dependency-graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: generate-and-upload
|
|
||||||
dependency-graph-report-dir: '${{ github.workspace }}/custom/report-dir'
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
|
|
||||||
custom-report-dir-download-and-submit:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
needs: [dependency-submission-custom-report-dir-upload]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Download and submit dependency graph
|
|
||||||
uses: ./dependency-submission
|
|
||||||
with:
|
|
||||||
dependency-graph: download-and-submit
|
|
||||||
dependency-graph-report-dir: '${{ github.workspace }}/custom/report-dir'
|
|
||||||
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
env:
|
|
||||||
DEPENDENCY_GRAPH_DOWNLOAD_ARTIFACT_NAME: custom-report-dir-upload # For testing, to avoid downloading artifacts from other worklfows
|
|
||||||
|
|
||||||
- name: Check downloaded dependency graph
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ -z "$(ls -A "${{ github.workspace }}/custom/report-dir")" ]; then
|
|
||||||
echo "No dependency graph files found in custom directory"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
@ -5,24 +5,21 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: detect-java-toolchain-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: detect-java-toolchain-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Test that pre-installed runner JDKs are detected
|
# Test that pre-installed runner JDKs are detected
|
||||||
detect-toolchains-pre-installed-jdks:
|
pre-installed-toolchains:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@ -30,17 +27,16 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
- name: List detected toolchains
|
- name: List detected toolchains
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: |
|
run: |
|
||||||
./gradlew --info javaToolchains > output.txt
|
gradle --info javaToolchains > output.txt
|
||||||
cat output.txt
|
cat output.txt
|
||||||
- name: Verify detected toolchains
|
- name: Verify detected toolchains
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -52,7 +48,7 @@ jobs:
|
|||||||
grep -q 'Eclipse Temurin JDK 21' output.txt || (echo "::error::Did not detect preinstalled JDK 21" && exit 1)
|
grep -q 'Eclipse Temurin JDK 21' output.txt || (echo "::error::Did not detect preinstalled JDK 21" && exit 1)
|
||||||
|
|
||||||
# Test that JDKs provisioned by setup-java are detected
|
# Test that JDKs provisioned by setup-java are detected
|
||||||
detect-toolchains-setup-java-jdks:
|
setup-java-installed-toolchain:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@ -60,27 +56,26 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Java 20
|
- name: Setup Java 20
|
||||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
java-version: 20
|
java-version: '20'
|
||||||
- name: Setup Java 16
|
- name: Setup Java 16
|
||||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
java-version: 16
|
java-version: '16'
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
- name: List detected toolchains
|
- name: List detected toolchains
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: |
|
run: |
|
||||||
./gradlew --info javaToolchains > output.txt
|
gradle --info javaToolchains > output.txt
|
||||||
cat output.txt
|
cat output.txt
|
||||||
- name: Verify setup JDKs are detected
|
- name: Verify setup JDKs are detected
|
||||||
shell: bash
|
shell: bash
|
56
.github/workflows/integ-test-execution-with-caching.yml
vendored
Normal file
56
.github/workflows/integ-test-execution-with-caching.yml
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
name: Test execution with caching
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
cache-key-prefix:
|
||||||
|
type: string
|
||||||
|
runner-os:
|
||||||
|
type: string
|
||||||
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
|
download-dist:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: execution-with-caching-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
seed-build:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Execute Gradle build
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
arguments: test
|
||||||
|
|
||||||
|
# Test that the gradle-user-home is restored
|
||||||
|
verify-build:
|
||||||
|
needs: seed-build
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Execute Gradle build
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
cache-read-only: true
|
||||||
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
||||||
|
arguments: test --offline -DverifyCachedBuild=true
|
||||||
|
|
88
.github/workflows/integ-test-execution.yml
vendored
Normal file
88
.github/workflows/integ-test-execution.yml
vendored
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
name: Test execution
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
cache-key-prefix:
|
||||||
|
type: string
|
||||||
|
runner-os:
|
||||||
|
type: string
|
||||||
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
|
download-dist:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: execution-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Tests for executing with different Gradle versions.
|
||||||
|
# Each build verifies that it is executed with the expected Gradle version.
|
||||||
|
gradle-execution:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
include:
|
||||||
|
- os: windows-latest
|
||||||
|
script-suffix: '.bat'
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Test use defined Gradle version
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
|
gradle-version: 6.9
|
||||||
|
build-root-directory: .github/workflow-samples/no-wrapper
|
||||||
|
arguments: help -DgradleVersionCheck=6.9
|
||||||
|
- name: Test use Gradle version alias
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
gradle-version: release-candidate
|
||||||
|
build-root-directory: .github/workflow-samples/no-wrapper
|
||||||
|
arguments: help
|
||||||
|
|
||||||
|
gradle-versions:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
gradle: [7.5.1, 6.9.2, 5.6.4, 4.10.3, 3.5.1]
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
include:
|
||||||
|
- gradle: 5.6.4
|
||||||
|
build-root-suffix: -gradle-5
|
||||||
|
- gradle: 4.10.3
|
||||||
|
build-root-suffix: -gradle-4
|
||||||
|
- gradle: 3.5.1
|
||||||
|
build-root-suffix: -gradle-4
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: 8
|
||||||
|
- name: Run Gradle build
|
||||||
|
uses: ./setup-gradle
|
||||||
|
id: gradle
|
||||||
|
with:
|
||||||
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
|
gradle-version: ${{matrix.gradle}}
|
||||||
|
build-root-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }}
|
||||||
|
arguments: help -DgradleVersionCheck=${{matrix.gradle}}
|
||||||
|
- name: Check Build Scan url
|
||||||
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
core.setFailed('No Build Scan detected')
|
||||||
|
|
||||||
|
|
194
.github/workflows/integ-test-inject-develocity.yml
vendored
194
.github/workflows/integ-test-inject-develocity.yml
vendored
@ -5,11 +5,10 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
secrets:
|
secrets:
|
||||||
@ -17,39 +16,33 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: inject-develocity-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: provision-gradle-versions-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
inject-develocity:
|
inject-develocity:
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
gradle: ['current', '7.6.2', '6.9.4', '5.6.4']
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
plugin-version: ['3.16.2', '4.0']
|
|
||||||
include:
|
|
||||||
- plugin-version: '3.16.2'
|
|
||||||
accessKeyEnv: GRADLE_ENTERPRISE_ACCESS_KEY
|
|
||||||
- plugin-version: '4.0'
|
|
||||||
accessKeyEnv: DEVELOCITY_ACCESS_KEY
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
env:
|
env:
|
||||||
DEVELOCITY_INJECTION_ENABLED: true
|
DEVELOCITY_INJECTION_ENABLED: true
|
||||||
DEVELOCITY_INJECTION_URL: https://ge.solutions-team.gradle.com
|
DEVELOCITY_URL: https://ge.solutions-team.gradle.com
|
||||||
DEVELOCITY_INJECTION_DEVELOCITY_PLUGIN_VERSION: ${{ matrix.plugin-version }}
|
DEVELOCITY_PLUGIN_VERSION: 3.16.2
|
||||||
DEVELOCITY_INJECTION_CCUD_PLUGIN_VERSION: '2.2.1'
|
DEVELOCITY_CCUD_PLUGIN_VERSION: 1.12.1
|
||||||
${{matrix.accessKeyEnv}}: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} # This env var has not (yet) been renamed/aliased in GE plugin 3.16.2
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
gradle: [current, 7.6.2, 6.9.4, 5.6.4]
|
||||||
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: 8
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
id: setup-gradle
|
id: setup-gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
@ -62,124 +55,43 @@ jobs:
|
|||||||
run: gradle help
|
run: gradle help
|
||||||
- name: Check Build Scan url
|
- name: Check Build Scan url
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
core.setFailed('No Build Scan detected')
|
core.setFailed('No Build Scan detected')
|
||||||
- name: Check short lived token (DEVELOCITY_ACCESS_KEY)
|
|
||||||
run: "[ ${#DEVELOCITY_ACCESS_KEY} -gt 500 ] || (echo 'DEVELOCITY_ACCESS_KEY does not look like a short lived token'; exit 1)"
|
|
||||||
- name: Check short lived token (GRADLE_ENTERPRISE_ACCESS_KEY)
|
|
||||||
run: "[ ${#GRADLE_ENTERPRISE_ACCESS_KEY} -gt 500 ] || (echo 'GRADLE_ENTERPRISE_ACCESS_KEY does not look like a short lived token'; exit 1)"
|
|
||||||
|
|
||||||
inject-develocity-with-access-key:
|
build-scan-publish:
|
||||||
env:
|
|
||||||
DEVELOCITY_INJECTION_ENABLED: true
|
|
||||||
DEVELOCITY_INJECTION_URL: 'https://ge.solutions-team.gradle.com'
|
|
||||||
DEVELOCITY_INJECTION_DEVELOCITY_PLUGIN_VERSION: ${{ matrix.plugin-version }}
|
|
||||||
DEVELOCITY_INJECTION_CCUD_PLUGIN_VERSION: '2.2.1'
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
gradle: ['current', '7.6.2', '6.9.4', '5.6.4']
|
gradle: [current, 7.6.2, 6.9.4, 5.6.4]
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
plugin-version: ['3.16.2', '4.0']
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
- name: Setup Gradle
|
|
||||||
id: setup-gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
||||||
gradle-version: ${{ matrix.gradle }}
|
|
||||||
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
|
||||||
develocity-token-expiry: 1
|
|
||||||
- name: Run Gradle build
|
|
||||||
id: gradle
|
|
||||||
working-directory: .github/workflow-samples/no-ge
|
|
||||||
run: gradle help
|
|
||||||
- name: Check short lived token (DEVELOCITY_ACCESS_KEY)
|
|
||||||
run: "[ ${#DEVELOCITY_ACCESS_KEY} -gt 500 ] || (echo 'DEVELOCITY_ACCESS_KEY does not look like a short lived token'; exit 1)"
|
|
||||||
- name: Check short lived token (GRADLE_ENTERPRISE_ACCESS_KEY)
|
|
||||||
run: "[ ${#GRADLE_ENTERPRISE_ACCESS_KEY} -gt 500 ] || (echo 'GRADLE_ENTERPRISE_ACCESS_KEY does not look like a short lived token'; exit 1)"
|
|
||||||
- name: Check Build Scan url
|
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
core.setFailed('No Build Scan detected')
|
|
||||||
|
|
||||||
inject-develocity-short-lived-token-failed:
|
|
||||||
env:
|
|
||||||
DEVELOCITY_INJECTION_ENABLED: true
|
|
||||||
DEVELOCITY_INJECTION_URL: 'https://localhost:3333/'
|
|
||||||
DEVELOCITY_INJECTION_DEVELOCITY_PLUGIN_VERSION: ${{ matrix.plugin-version }}
|
|
||||||
DEVELOCITY_INJECTION_CCUD_PLUGIN_VERSION: '2.1'
|
|
||||||
# Access key also set as an env var, we want to check it does not leak
|
|
||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
|
||||||
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
gradle: ['current', '7.6.2', '6.9.4', '5.6.4']
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
plugin-version: [ '3.16.2', '4.0' ]
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: 8
|
||||||
|
- name: Setup Gradle
|
||||||
|
id: setup-gradle
|
||||||
|
uses: ./setup-gradle
|
||||||
|
with:
|
||||||
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
|
gradle-version: ${{ matrix.gradle }}
|
||||||
|
build-scan-publish: true
|
||||||
|
build-scan-terms-of-service-url: "https://gradle.com/terms-of-service"
|
||||||
|
build-scan-terms-of-service-agree: "yes"
|
||||||
|
- name: Run Gradle build
|
||||||
|
id: gradle
|
||||||
|
working-directory: .github/workflow-samples/no-ge
|
||||||
|
run: gradle help
|
||||||
|
- name: Check Build Scan url
|
||||||
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
core.setFailed('No Build Scan detected')
|
||||||
|
|
||||||
- name: Setup Gradle
|
|
||||||
id: setup-gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
||||||
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
|
||||||
- name: Run Gradle build
|
|
||||||
id: gradle
|
|
||||||
working-directory: .github/workflow-samples/no-ge
|
|
||||||
run: gradle help
|
|
||||||
- name: Check access key is not blank (DEVELOCITY_ACCESS_KEY)
|
|
||||||
run: "[ \"${DEVELOCITY_ACCESS_KEY}\" != \"\" ] || (echo 'using DEVELOCITY_ACCESS_KEY!'; exit 1)"
|
|
||||||
- name: Check access key is not blank (GRADLE_ENTERPRISE_ACCESS_KEY)
|
|
||||||
run: "[ \"${GRADLE_ENTERPRISE_ACCESS_KEY}\" != \"\" ] || (echo 'GRADLE_ENTERPRISE_ACCESS_KEY is still supported in v3!'; exit 1)"
|
|
||||||
|
|
||||||
inject-develocity-with-access-key-from-input-actions:
|
|
||||||
env:
|
|
||||||
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
gradle: ['current', '7.6.2', '6.9.4', '5.6.4']
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
plugin-version: [ '3.16.2', '4.0' ]
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
- name: Setup Gradle
|
|
||||||
id: setup-gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
||||||
gradle-version: ${{ matrix.gradle }}
|
|
||||||
develocity-injection-enabled: true
|
|
||||||
develocity-url: 'https://ge.solutions-team.gradle.com'
|
|
||||||
develocity-plugin-version: ${{ matrix.plugin-version }}
|
|
||||||
- name: Run Gradle build
|
|
||||||
id: gradle
|
|
||||||
working-directory: .github/workflow-samples/no-ge
|
|
||||||
run: gradle help
|
|
||||||
- name: Check Build Scan url
|
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
core.setFailed('No Build Scan detected')
|
|
||||||
|
@ -5,50 +5,46 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: provision-gradle-versions-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: provision-gradle-versions-${{ inputs.cache-key-prefix }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Tests for executing with different Gradle versions.
|
# Tests for executing with different Gradle versions.
|
||||||
# Each build verifies that it is executed with the expected Gradle version.
|
# Each build verifies that it is executed with the expected Gradle version.
|
||||||
provision-gradle:
|
provision-gradle:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
|
include:
|
||||||
|
- os: windows-latest
|
||||||
|
script-suffix: '.bat'
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle with v6.9
|
- name: Setup Gradle with v6.9
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
gradle-version: '6.9'
|
gradle-version: 6.9
|
||||||
- name: Test uses Gradle v6.9
|
- name: Test uses Gradle v6.9
|
||||||
working-directory: .github/workflow-samples/no-wrapper
|
working-directory: .github/workflow-samples/no-wrapper
|
||||||
run: gradle help "-DgradleVersionCheck=6.9"
|
run: gradle help "-DgradleVersionCheck=6.9"
|
||||||
- name: Setup Gradle with v7.1.1
|
- name: Setup Gradle with v7.1.1
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
gradle-version: '7.1.1'
|
gradle-version: 7.1.1
|
||||||
- name: Test uses Gradle v7.1.1
|
- name: Test uses Gradle v7.1.1
|
||||||
working-directory: .github/workflow-samples/no-wrapper
|
working-directory: .github/workflow-samples/no-wrapper
|
||||||
run: gradle help "-DgradleVersionCheck=7.1.1"
|
run: gradle help "-DgradleVersionCheck=7.1.1"
|
||||||
@ -64,46 +60,36 @@ jobs:
|
|||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
gradle-version: current
|
gradle-version: current
|
||||||
- name: Test use current
|
|
||||||
working-directory: .github/workflow-samples/no-wrapper
|
|
||||||
run: gradle help
|
|
||||||
- name: Check current version output parameter
|
- name: Check current version output parameter
|
||||||
if: ${{ !startsWith(steps.gradle-current.outputs.gradle-version , '8.') }}
|
if: ${{ !startsWith(steps.gradle-current.outputs.gradle-version , '8.') }}
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
core.setFailed('Gradle version parameter not set correctly: value was "${{ steps.gradle-current.outputs.gradle-version }}"')
|
core.setFailed('Gradle version parameter not set correctly: value was "${{ steps.gradle-current.outputs.gradle-version }}"')
|
||||||
|
|
||||||
provision-gradle-version:
|
gradle-versions:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
gradle: ['8.13', '8.12', '8.12-rc-1', '8.9', '8.1', '7.6.4', '6.9.4', '5.6.4', '4.10.3', '3.5.1']
|
gradle: [7.3, 6.9, 5.6.4, 4.10.3, 3.5.1]
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
include:
|
include:
|
||||||
- java-version: 11
|
- gradle: 5.6.4
|
||||||
- gradle: '5.6.4'
|
|
||||||
build-root-suffix: -gradle-5
|
build-root-suffix: -gradle-5
|
||||||
- gradle: '4.10.3'
|
- gradle: 4.10.3
|
||||||
build-root-suffix: -gradle-4
|
build-root-suffix: -gradle-4
|
||||||
- gradle: '3.5.1'
|
- gradle: 3.5.1
|
||||||
build-root-suffix: -gradle-4
|
build-root-suffix: -gradle-4
|
||||||
java-version: 8
|
|
||||||
exclude:
|
|
||||||
- os: macos-latest # Java 8 is not supported on macos-latest, so we cannot test Gradle 3.5.1
|
|
||||||
gradle: '3.5.1'
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
java-version: ${{ matrix.java-version }}
|
java-version: 8
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
id: setup-gradle
|
id: setup-gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
@ -112,7 +98,7 @@ jobs:
|
|||||||
gradle-version: ${{ matrix.gradle }}
|
gradle-version: ${{ matrix.gradle }}
|
||||||
- name: Check output parameter
|
- name: Check output parameter
|
||||||
if: ${{ steps.setup-gradle.outputs.gradle-version != matrix.gradle }}
|
if: ${{ steps.setup-gradle.outputs.gradle-version != matrix.gradle }}
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
core.setFailed('Gradle version parameter not set correctly: value was "${{ steps.setup-gradle.outputs.gradle-version }}"')
|
core.setFailed('Gradle version parameter not set correctly: value was "${{ steps.setup-gradle.outputs.gradle-version }}"')
|
||||||
@ -122,7 +108,7 @@ jobs:
|
|||||||
run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}"
|
run: gradle help "-DgradleVersionCheck=${{matrix.gradle}}"
|
||||||
- name: Check Build Scan url
|
- name: Check Build Scan url
|
||||||
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
if: ${{ !steps.gradle.outputs.build-scan-url }}
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
core.setFailed('No Build Scan detected')
|
core.setFailed('No Build Scan detected')
|
||||||
|
@ -5,11 +5,10 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
secrets:
|
secrets:
|
||||||
@ -17,126 +16,94 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-configuration-cache-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-configuration-cache-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
restore-cc-seed-build-groovy:
|
seed-build-groovy:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java to ensure consistency
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'liberica'
|
||||||
|
java-version: '21'
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
cache-write-only: true # Ensure we start with a clean cache entry
|
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
gradle-version: 8.6-rc-1
|
||||||
- name: Groovy build with configuration-cache enabled
|
- name: Groovy build with configuration-cache enabled
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: gradle test --configuration-cache
|
run: gradle test --configuration-cache
|
||||||
|
|
||||||
restore-cc-verify-build-groovy:
|
verify-build-groovy:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB_EXECUTION: ${{github.sha}}_1
|
needs: seed-build-groovy
|
||||||
needs: restore-cc-seed-build-groovy
|
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java to ensure consistency
|
||||||
- name: Setup Gradle
|
uses: actions/setup-java@v4
|
||||||
uses: ./setup-gradle
|
|
||||||
with:
|
with:
|
||||||
cache-read-only: false
|
distribution: 'liberica'
|
||||||
cache-cleanup: on-success
|
java-version: '21'
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
||||||
- name: Groovy build with configuration-cache enabled
|
|
||||||
id: execute
|
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
|
||||||
run: gradle test --configuration-cache
|
|
||||||
- name: Verify configuration-cache hit
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ -e ".github/workflow-samples/groovy-dsl/task-configured.txt" ]; then
|
|
||||||
echo "Configuration cache was not used - task was configured unexpectedly"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure that cache-cleanup doesn't remove all necessary files
|
|
||||||
restore-cc-verify-no-cache-cleanup-groovy:
|
|
||||||
env:
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB_EXECUTION: ${{github.sha}}_2
|
|
||||||
needs: restore-cc-verify-build-groovy
|
|
||||||
strategy:
|
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
gradle-version: 8.6-rc-1
|
||||||
- name: Groovy build with configuration-cache enabled
|
- name: Groovy build with configuration-cache enabled
|
||||||
id: execute
|
id: execute
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: gradle test --configuration-cache
|
run: gradle test --configuration-cache
|
||||||
- name: Verify configuration-cache hit
|
- name: Check that configuration-cache was used
|
||||||
shell: bash
|
uses: actions/github-script@v7
|
||||||
run: |
|
with:
|
||||||
if [ -e ".github/workflow-samples/groovy-dsl/task-configured.txt" ]; then
|
script: |
|
||||||
echo "Configuration cache was not used - task was configured unexpectedly"
|
const fs = require('fs')
|
||||||
exit 1
|
if (fs.existsSync('.github/workflow-samples/groovy-dsl/task-configured.txt')) {
|
||||||
fi
|
core.setFailed('Configuration cache was not used - task was configured unexpectedly')
|
||||||
|
}
|
||||||
|
|
||||||
# Check that the build can run when no extracted cache entries are restored
|
# Check that the build can run when no extracted cache entries are restored
|
||||||
restore-cc-gradle-user-home-not-fully-restored:
|
gradle-user-home-not-fully-restored:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB_EXECUTION: ${{github.sha}}_x
|
needs: seed-build-groovy
|
||||||
needs: restore-cc-seed-build-groovy
|
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java to ensure consistency
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'liberica'
|
||||||
|
java-version: '21'
|
||||||
- name: Setup Gradle with no extracted cache entries restored
|
- name: Setup Gradle with no extracted cache entries restored
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
env:
|
env:
|
||||||
@ -144,92 +111,101 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
gradle-version: 8.6-rc-1
|
||||||
- name: Check execute Gradle build with configuration cache enabled (but not restored)
|
- name: Check execute Gradle build with configuration cache enabled (but not restored)
|
||||||
working-directory: .github/workflow-samples/groovy-dsl
|
working-directory: .github/workflow-samples/groovy-dsl
|
||||||
run: gradle test --configuration-cache
|
run: gradle test --configuration-cache
|
||||||
|
|
||||||
restore-cc-seed-build-kotlin:
|
seed-build-kotlin:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java to ensure consistency
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'liberica'
|
||||||
|
java-version: '21'
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
cache-write-only: true # Ensure we start with a clean cache entry
|
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
gradle-version: 8.6-rc-1
|
||||||
- name: Execute 'help' with configuration-cache enabled
|
- name: Execute 'help' with configuration-cache enabled
|
||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
working-directory: .github/workflow-samples/kotlin-dsl
|
||||||
run: gradle help --configuration-cache
|
run: gradle help --configuration-cache
|
||||||
|
|
||||||
restore-cc-modify-build-kotlin:
|
modify-build-kotlin:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin-modified
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB_EXECUTION: ${{github.sha}}_1
|
needs: seed-build-kotlin
|
||||||
needs: restore-cc-seed-build-kotlin
|
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java to ensure consistency
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'liberica'
|
||||||
|
java-version: '21'
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
gradle-version: 8.6-rc-1
|
||||||
- name: Execute 'test' with configuration-cache enabled
|
- name: Execute 'test' with configuration-cache enabled
|
||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
working-directory: .github/workflow-samples/kotlin-dsl
|
||||||
run: gradle test --configuration-cache
|
run: gradle test --configuration-cache
|
||||||
|
|
||||||
# Test restore configuration-cache from the third build invocation
|
# Test restore configuration-cache from the third build invocation
|
||||||
restore-cc-verify-build-kotlin:
|
verify-build-kotlin:
|
||||||
env:
|
env:
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin-modified
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB_EXECUTION: ${{github.sha}}_2
|
needs: modify-build-kotlin
|
||||||
needs: restore-cc-modify-build-kotlin
|
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java to ensure consistency
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'liberica'
|
||||||
|
java-version: '21'
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
gradle-version: 8.6-rc-1
|
||||||
- name: Execute 'test' again with configuration-cache enabled
|
- name: Execute 'test' again with configuration-cache enabled
|
||||||
id: execute
|
id: execute
|
||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
working-directory: .github/workflow-samples/kotlin-dsl
|
||||||
run: gradle test --configuration-cache
|
run: gradle test --configuration-cache
|
||||||
- name: Verify configuration-cache hit
|
- name: Check that configuration-cache was used
|
||||||
shell: bash
|
uses: actions/github-script@v7
|
||||||
run: |
|
with:
|
||||||
if [ -e ".github/workflow-samples/kotlin-dsl/task-configured.txt" ]; then
|
script: |
|
||||||
echo "Configuration cache was not used - task was configured unexpectedly"
|
const fs = require('fs')
|
||||||
exit 1
|
if (fs.existsSync('.github/workflow-samples/kotlin-dsl/task-configured.txt')) {
|
||||||
fi
|
core.setFailed('Configuration cache was not used - task was configured unexpectedly')
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -5,28 +5,29 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
download-dist:
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-containerized-gradle-home-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-custom-gradle-home-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
restore-containerized-seed-build:
|
seed-build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: fedora:latest
|
container: fedora:latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
distribution: temurin
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -36,16 +37,20 @@ jobs:
|
|||||||
run: ./gradlew test
|
run: ./gradlew test
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
||||||
restore-containerized-dependencies-cache:
|
dependencies-cache:
|
||||||
needs: restore-containerized-seed-build
|
needs: seed-build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: fedora:latest
|
container: fedora:latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
distribution: temurin
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
@ -5,31 +5,27 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
download-dist:
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-custom-gradle-home-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-custom-gradle-home-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
restore-custom-gradle-home-seed-build:
|
seed-build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Set Gradle User Home
|
- name: Set Gradle User Home
|
||||||
run: |
|
run: |
|
||||||
mkdir -p $GITHUB_WORKSPACE/gradle-user-home
|
mkdir -p $GITHUB_WORKSPACE/gradle-user-home
|
||||||
echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV
|
echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -39,19 +35,18 @@ jobs:
|
|||||||
run: ./gradlew test --info
|
run: ./gradlew test --info
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
||||||
restore-custom-gradle-home-dependencies-cache:
|
dependencies-cache:
|
||||||
needs: restore-custom-gradle-home-seed-build
|
needs: seed-build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Set Gradle User Home
|
- name: Set Gradle User Home
|
||||||
run: |
|
run: |
|
||||||
mkdir -p $GITHUB_WORKSPACE/gradle-user-home
|
mkdir -p $GITHUB_WORKSPACE/gradle-user-home
|
||||||
echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV
|
echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -61,19 +56,18 @@ jobs:
|
|||||||
run: ./gradlew test --offline --info
|
run: ./gradlew test --offline --info
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache and restore local build-cache
|
# Test that the gradle-user-home cache will cache and restore local build-cache
|
||||||
restore-custom-gradle-home-build-cache:
|
build-cache:
|
||||||
needs: restore-custom-gradle-home-seed-build
|
needs: seed-build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Set Gradle User Home
|
- name: Set Gradle User Home
|
||||||
run: |
|
run: |
|
||||||
mkdir -p $GITHUB_WORKSPACE/gradle-user-home
|
mkdir -p $GITHUB_WORKSPACE/gradle-user-home
|
||||||
echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV
|
echo "GRADLE_USER_HOME=$GITHUB_WORKSPACE/gradle-user-home" >> $GITHUB_ENV
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Download distribution if required
|
||||||
|
uses: ./.github/actions/download-dist
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
@ -5,36 +5,30 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-gradle-home-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-gradle-home-${{ inputs.cache-key-prefix }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-gradle-home
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-gradle-home
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
restore-gradle-home-seed-build:
|
seed-build:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -44,20 +38,17 @@ jobs:
|
|||||||
run: ./gradlew test
|
run: ./gradlew test
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
# Test that the gradle-user-home cache will cache dependencies, by running build with --offline
|
||||||
restore-gradle-home-dependencies-cache:
|
dependencies-cache:
|
||||||
needs: restore-gradle-home-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -67,20 +58,17 @@ jobs:
|
|||||||
run: ./gradlew test --offline
|
run: ./gradlew test --offline
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache and restore local build-cache
|
# Test that the gradle-user-home cache will cache and restore local build-cache
|
||||||
restore-gradle-home-build-cache:
|
build-cache:
|
||||||
needs: restore-gradle-home-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -90,20 +78,17 @@ jobs:
|
|||||||
run: ./gradlew test -DverifyCachedBuild=true
|
run: ./gradlew test -DverifyCachedBuild=true
|
||||||
|
|
||||||
# Check that the build can run when Gradle User Home is not fully restored
|
# Check that the build can run when Gradle User Home is not fully restored
|
||||||
restore-gradle-home-no-extracted-cache-entries-restored:
|
no-extracted-cache-entries-restored:
|
||||||
needs: restore-gradle-home-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle with no extracted cache entries restored
|
- name: Setup Gradle with no extracted cache entries restored
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
env:
|
env:
|
||||||
@ -115,20 +100,17 @@ jobs:
|
|||||||
run: ./gradlew test
|
run: ./gradlew test
|
||||||
|
|
||||||
# Test that a pre-existing gradle-user-home can be overwritten by the restored cache
|
# Test that a pre-existing gradle-user-home can be overwritten by the restored cache
|
||||||
restore-gradle-home-pre-existing-gradle-home:
|
pre-existing-gradle-home:
|
||||||
needs: restore-gradle-home-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Pre-create Gradle User Home
|
- name: Pre-create Gradle User Home
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
@ -5,35 +5,29 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-java-toolchain-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-java-toolchain-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
restore-java-toolchain-seed-build:
|
seed-build:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -43,20 +37,17 @@ jobs:
|
|||||||
run: ./gradlew test --info
|
run: ./gradlew test --info
|
||||||
|
|
||||||
# Test that the gradle-user-home cache will cache the toolchain, by running build with --offline
|
# Test that the gradle-user-home cache will cache the toolchain, by running build with --offline
|
||||||
restore-java-toolchain-verify-build:
|
toolchain-cache:
|
||||||
needs: restore-java-toolchain-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
@ -5,35 +5,29 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: sample-gradle-plugin-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: sample-gradle-plugin-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
sample-gradle-plugin-seed-build:
|
seed-build:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -42,20 +36,17 @@ jobs:
|
|||||||
working-directory: .github/workflow-samples/gradle-plugin
|
working-directory: .github/workflow-samples/gradle-plugin
|
||||||
run: ./gradlew build
|
run: ./gradlew build
|
||||||
|
|
||||||
sample-gradle-plugin-verify-build:
|
verify-build:
|
||||||
needs: sample-gradle-plugin-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
@ -5,35 +5,29 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
cache-key-prefix:
|
cache-key-prefix:
|
||||||
type: string
|
type: string
|
||||||
default: '0'
|
|
||||||
runner-os:
|
runner-os:
|
||||||
type: string
|
type: string
|
||||||
default: '["ubuntu-latest"]'
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
||||||
skip-dist:
|
download-dist:
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
||||||
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: sample-kotlin-dsl-${{ inputs.cache-key-prefix }}
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: sample-kotlin-dsl-${{ inputs.cache-key-prefix }}
|
||||||
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
sample-kotlin-dsl-seed-build:
|
seed-build:
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
@ -42,20 +36,17 @@ jobs:
|
|||||||
working-directory: .github/workflow-samples/kotlin-dsl
|
working-directory: .github/workflow-samples/kotlin-dsl
|
||||||
run: ./gradlew build
|
run: ./gradlew build
|
||||||
|
|
||||||
sample-kotlin-dsl-verify-build:
|
verify-build:
|
||||||
needs: sample-kotlin-dsl-seed-build
|
needs: seed-build
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 1
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
os: ${{fromJSON(inputs.runner-os)}}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: Initialize integ-test
|
- name: Download distribution if required
|
||||||
uses: ./.github/actions/init-integ-test
|
uses: ./.github/actions/download-dist
|
||||||
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: ./setup-gradle
|
uses: ./setup-gradle
|
||||||
with:
|
with:
|
||||||
|
168
.github/workflows/integ-test-wrapper-validation.yml
vendored
168
.github/workflows/integ-test-wrapper-validation.yml
vendored
@ -1,168 +0,0 @@
|
|||||||
name: Test wrapper validation
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
runner-os:
|
|
||||||
type: string
|
|
||||||
default: '["ubuntu-latest"]'
|
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
wrapper-validation-setup-gradle:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: ${{fromJSON(inputs.runner-os)}}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Run wrapper-validation-action
|
|
||||||
id: setup-gradle
|
|
||||||
uses: ./setup-gradle
|
|
||||||
env:
|
|
||||||
ALLOWED_GRADLE_WRAPPER_CHECKSUMS: ''
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Check failure
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ "${{ steps.setup-gradle.outcome}}" != "failure" ] ; then
|
|
||||||
echo "Expected validation to fail, but it didn't"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
wrapper-validation-success:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Run wrapper-validation-action
|
|
||||||
id: action-test
|
|
||||||
uses: ./wrapper-validation
|
|
||||||
with:
|
|
||||||
# to allow the invalid wrapper jar present in test data
|
|
||||||
allow-checksums: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
|
||||||
min-wrapper-count: 10
|
|
||||||
|
|
||||||
- name: Check outcome
|
|
||||||
env:
|
|
||||||
# Evaluate workflow expressions here as env variable values instead of inside shell script
|
|
||||||
# below to not accidentally inject code into shell script or break its syntax
|
|
||||||
FAILED_WRAPPERS: ${{ steps.action-test.outputs.failed-wrapper }}
|
|
||||||
FAILED_WRAPPERS_MATCHES: ${{ steps.action-test.outputs.failed-wrapper == '' }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ "$FAILED_WRAPPERS_MATCHES" != "true" ] ; then
|
|
||||||
echo "'outputs.failed-wrapper' has unexpected content: $FAILED_WRAPPERS"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
wrapper-validation-error:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Run wrapper-validation-action
|
|
||||||
id: action-test
|
|
||||||
uses: ./wrapper-validation
|
|
||||||
# Expected to fail; validated below
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Check outcome
|
|
||||||
env:
|
|
||||||
# Evaluate workflow expressions here as env variable values instead of inside shell script
|
|
||||||
# below to not accidentally inject code into shell script or break its syntax
|
|
||||||
VALIDATION_FAILED: ${{ steps.action-test.outcome == 'failure' }}
|
|
||||||
FAILED_WRAPPERS: ${{ steps.action-test.outputs.failed-wrapper }}
|
|
||||||
FAILED_WRAPPERS_MATCHES: ${{ steps.action-test.outputs.failed-wrapper == 'sources/test/jest/wrapper-validation/data/invalid/gradle-wrapper.jar|sources/test/jest/wrapper-validation/data/invalid/gradlе-wrapper.jar' }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ "$VALIDATION_FAILED" != "true" ] ; then
|
|
||||||
echo "Expected validation to fail, but it didn't"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$FAILED_WRAPPERS_MATCHES" != "true" ] ; then
|
|
||||||
echo "'outputs.failed-wrapper' has unexpected content: $FAILED_WRAPPERS"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
wrapper-validation-minimum-wrapper-count:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Run wrapper-validation-action
|
|
||||||
id: action-test
|
|
||||||
uses: ./wrapper-validation
|
|
||||||
with:
|
|
||||||
# to allow the invalid wrapper jar present in test data
|
|
||||||
allow-checksums: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
|
||||||
min-wrapper-count: 11
|
|
||||||
# Expected to fail; validated below
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Check outcome
|
|
||||||
env:
|
|
||||||
# Evaluate workflow expressions here as env variable values instead of inside shell script
|
|
||||||
# below to not accidentally inject code into shell script or break its syntax
|
|
||||||
VALIDATION_FAILED: ${{ steps.action-test.outcome == 'failure' }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ "$VALIDATION_FAILED" != "true" ] ; then
|
|
||||||
echo "Expected validation to fail, but it didn't"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
wrapper-validation-zero-wrappers:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout sources
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 # Checkout the repository with no wrappers
|
|
||||||
with:
|
|
||||||
sparse-checkout: |
|
|
||||||
.github/actions
|
|
||||||
dist
|
|
||||||
wrapper-validation
|
|
||||||
- name: Initialize integ-test
|
|
||||||
uses: ./.github/actions/init-integ-test
|
|
||||||
|
|
||||||
- name: Run wrapper-validation-action
|
|
||||||
id: action-test
|
|
||||||
uses: ./wrapper-validation
|
|
||||||
# Expected to fail; validated below
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Check outcome
|
|
||||||
env:
|
|
||||||
# Evaluate workflow expressions here as env variable values instead of inside shell script
|
|
||||||
# below to not accidentally inject code into shell script or break its syntax
|
|
||||||
VALIDATION_FAILED: ${{ steps.action-test.outcome == 'failure' }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ "$VALIDATION_FAILED" != "true" ] ; then
|
|
||||||
echo "Expected validation to fail, but it didn't"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
55
.github/workflows/suite-integ-test-caching.yml
vendored
55
.github/workflows/suite-integ-test-caching.yml
vendored
@ -1,55 +0,0 @@
|
|||||||
name: suite-integ-test-caching
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
runner-os:
|
|
||||||
type: string
|
|
||||||
default: '["ubuntu-latest"]'
|
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
cache-cleanup:
|
|
||||||
uses: ./.github/workflows/integ-test-cache-cleanup.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
caching-config:
|
|
||||||
uses: ./.github/workflows/integ-test-caching-config.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
restore-configuration-cache:
|
|
||||||
if: ${{ ! github.event.pull_request.head.repo.fork }}
|
|
||||||
uses: ./.github/workflows/integ-test-restore-configuration-cache.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
secrets:
|
|
||||||
GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
||||||
|
|
||||||
restore-containerized-gradle-home:
|
|
||||||
uses: ./.github/workflows/integ-test-restore-containerized-gradle-home.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
restore-custom-gradle-home:
|
|
||||||
uses: ./.github/workflows/integ-test-restore-custom-gradle-home.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
restore-gradle-home:
|
|
||||||
uses: ./.github/workflows/integ-test-restore-gradle-home.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
restore-java-toolchain:
|
|
||||||
uses: ./.github/workflows/integ-test-restore-java-toolchain.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
85
.github/workflows/suite-integ-test-other.yml
vendored
85
.github/workflows/suite-integ-test-other.yml
vendored
@ -1,85 +0,0 @@
|
|||||||
name: suite-integ-test-other
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
runner-os:
|
|
||||||
type: string
|
|
||||||
default: '["ubuntu-latest"]'
|
|
||||||
skip-dist:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-scan-publish:
|
|
||||||
uses: ./.github/workflows/integ-test-build-scan-publish.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
dependency-graph:
|
|
||||||
if: ${{ ! github.event.pull_request.head.repo.fork }}
|
|
||||||
uses: ./.github/workflows/integ-test-dependency-graph.yml
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
dependency-submission:
|
|
||||||
if: ${{ ! github.event.pull_request.head.repo.fork }}
|
|
||||||
uses: ./.github/workflows/integ-test-dependency-submission.yml
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
dependency-submission-failures:
|
|
||||||
if: ${{ ! github.event.pull_request.head.repo.fork }}
|
|
||||||
uses: ./.github/workflows/integ-test-dependency-submission-failures.yml
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
develocity-injection:
|
|
||||||
if: ${{ ! github.event.pull_request.head.repo.fork }}
|
|
||||||
uses: ./.github/workflows/integ-test-inject-develocity.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
secrets:
|
|
||||||
DEVELOCITY_ACCESS_KEY: ${{ secrets.DV_SOLUTIONS_ACCESS_KEY }}
|
|
||||||
|
|
||||||
provision-gradle-versions:
|
|
||||||
uses: ./.github/workflows/integ-test-provision-gradle-versions.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
sample-kotlin-dsl:
|
|
||||||
uses: ./.github/workflows/integ-test-sample-kotlin-dsl.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
sample-gradle-plugin:
|
|
||||||
uses: ./.github/workflows/integ-test-sample-gradle-plugin.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
toolchain-detection:
|
|
||||||
uses: ./.github/workflows/integ-test-detect-toolchains.yml
|
|
||||||
with:
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
||||||
|
|
||||||
wrapper-validation:
|
|
||||||
uses: ./.github/workflows/integ-test-wrapper-validation.yml
|
|
||||||
with:
|
|
||||||
runner-os: '${{ inputs.runner-os }}'
|
|
||||||
skip-dist: ${{ inputs.skip-dist }}
|
|
94
.github/workflows/update-checksums-file.js
vendored
94
.github/workflows/update-checksums-file.js
vendored
@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* Updates the `wrapper-checksums.json` file
|
|
||||||
*
|
|
||||||
* This is intended to be executed by the GitHub workflow, but can also be run
|
|
||||||
* manually.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
const httpm = require('../../sources/node_modules/typed-rest-client/HttpClient')
|
|
||||||
|
|
||||||
const path = require('path')
|
|
||||||
const fs = require('fs')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {Promise<void>}
|
|
||||||
*/
|
|
||||||
async function main() {
|
|
||||||
const httpc = new httpm.HttpClient(
|
|
||||||
'gradle/wrapper-validation-action/update-checksums-workflow',
|
|
||||||
undefined,
|
|
||||||
{allowRetries: true, maxRetries: 3}
|
|
||||||
)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} url
|
|
||||||
* @returns {Promise<string>}
|
|
||||||
*/
|
|
||||||
async function httpGetText(url) {
|
|
||||||
const response = await httpc.get(url)
|
|
||||||
return await response.readBody()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} ApiVersionEntry
|
|
||||||
* @property {string} version - version name
|
|
||||||
* @property {string=} wrapperChecksumUrl - wrapper checksum URL; not present for old versions
|
|
||||||
* @property {boolean} snapshot - whether this is a snapshot version
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {Promise<ApiVersionEntry[]>}
|
|
||||||
*/
|
|
||||||
async function httpGetVersions() {
|
|
||||||
return JSON.parse(
|
|
||||||
await httpGetText('https://services.gradle.org/versions/all')
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const versions = (await httpGetVersions())
|
|
||||||
// Only include versions with checksum
|
|
||||||
.filter(e => e.wrapperChecksumUrl !== undefined)
|
|
||||||
// Ignore snapshots; they are changing frequently so no point in including them in checksums file
|
|
||||||
.filter(e => !e.snapshot)
|
|
||||||
console.info(`Got ${versions.length} relevant Gradle versions`)
|
|
||||||
|
|
||||||
// Note: For simplicity don't sort the entries but keep the order from the API; this also has the
|
|
||||||
// advantage that the latest versions come first, so compared to appending versions at the end
|
|
||||||
// this will not cause redundant Git diff due to trailing `,` being forbidden by JSON
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} FileVersionEntry
|
|
||||||
* @property {string} version
|
|
||||||
* @property {string} checksum
|
|
||||||
*/
|
|
||||||
/** @type {FileVersionEntry[]} */
|
|
||||||
const fileVersions = []
|
|
||||||
for (const entry of versions) {
|
|
||||||
/** @type {string} */
|
|
||||||
// @ts-ignore
|
|
||||||
const checksumUrl = entry.wrapperChecksumUrl
|
|
||||||
const checksum = await httpGetText(checksumUrl)
|
|
||||||
fileVersions.push({version: entry.version, checksum})
|
|
||||||
}
|
|
||||||
|
|
||||||
const jsonPath = path.resolve(
|
|
||||||
__dirname,
|
|
||||||
'..',
|
|
||||||
'..',
|
|
||||||
'sources',
|
|
||||||
'src',
|
|
||||||
'wrapper-validation',
|
|
||||||
'wrapper-checksums.json'
|
|
||||||
)
|
|
||||||
console.info(`Writing checksums file to ${jsonPath}`)
|
|
||||||
// Write pretty-printed JSON (and add trailing line break)
|
|
||||||
fs.writeFileSync(jsonPath, JSON.stringify(fileVersions, null, 2) + '\n')
|
|
||||||
}
|
|
||||||
|
|
||||||
main().catch(e => {
|
|
||||||
console.error(e)
|
|
||||||
// Manually set error exit code, otherwise error is logged but script exits successfully
|
|
||||||
process.exitCode = 1
|
|
||||||
})
|
|
68
.github/workflows/update-checksums-file.yml
vendored
68
.github/workflows/update-checksums-file.yml
vendored
@ -1,68 +0,0 @@
|
|||||||
name: 'Update Wrapper checksums file'
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Run weekly (at arbitrary time)
|
|
||||||
schedule:
|
|
||||||
- cron: '24 5 * * 6'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-checksums:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
pull-requests: write
|
|
||||||
name: Update checksums
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
cache: npm
|
|
||||||
cache-dependency-path: sources/package-lock.json
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
npm clean-install typed-rest-client@1.8.11 --no-save
|
|
||||||
working-directory: sources
|
|
||||||
|
|
||||||
- name: Update checksums file
|
|
||||||
run: node ../.github/workflows/update-checksums-file.js
|
|
||||||
working-directory: sources
|
|
||||||
|
|
||||||
- name: Import GPG key to sign commits
|
|
||||||
uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0
|
|
||||||
with:
|
|
||||||
gpg_private_key: ${{ secrets.GH_BOT_PGP_PRIVATE_KEY }}
|
|
||||||
passphrase: ${{ secrets.GH_BOT_PGP_PASSPHRASE }}
|
|
||||||
git_user_signingkey: true
|
|
||||||
git_commit_gpgsign: true
|
|
||||||
git_config_global: true
|
|
||||||
|
|
||||||
# If there are no changes, this action will not create a pull request
|
|
||||||
- name: Create or update pull request
|
|
||||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
|
||||||
with:
|
|
||||||
branch: bot/wrapper-checksums-update
|
|
||||||
author: bot-githubaction <bot-githubaction@gradle.com>
|
|
||||||
committer: bot-githubaction <bot-githubaction@gradle.com>
|
|
||||||
commit-message: Update known wrapper checksums
|
|
||||||
title: Update known wrapper checksums
|
|
||||||
# Note: Unfortunately this action cannot trigger the regular workflows for the PR automatically, see
|
|
||||||
# https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs
|
|
||||||
# Therefore suggest below to close and then reopen the PR
|
|
||||||
body: |
|
|
||||||
Automatically generated pull request to update the known wrapper checksums.
|
|
||||||
|
|
||||||
In case of conflicts, manually run the workflow from the [Actions tab](https://github.com/gradle/actions/actions/workflows/update-checksums-file.yml), the changes will then be force-pushed onto this pull request branch.
|
|
||||||
Do not manually update the pull request branch; those changes might get overwritten.
|
|
||||||
|
|
||||||
> [!IMPORTANT]
|
|
||||||
> GitHub workflows have not been executed for this pull request yet. Before merging, close and then directly reopen this pull request to trigger the workflows.
|
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
.git
|
|
||||||
.vscode
|
|
@ -1,34 +1,14 @@
|
|||||||
## Building
|
### How to merge a Dependabot PR
|
||||||
|
|
||||||
The `build` script in the project root provides a convenient way to perform many local build tasks:
|
The "distribution" for a GitHub Action is checked into the repository itself.
|
||||||
1. `./build` will lint and compile typescript sources
|
In the case of these actions, the transpiled sources are committed to the `dist` directory.
|
||||||
2. `./build all` will lint and compile typescript and run unit tests
|
Any production dependencies are inlined into the distribution.
|
||||||
3. `./build install` will install npm packages followed by lint and compile
|
So if a Dependabot PR updates a production dependency (or a dev dependency that changes the distribution, like the Typescript compiler),
|
||||||
4. `./build init-scripts` will run the init-script integration tests
|
then a manual step is required to rebuild the dist and commit.
|
||||||
5. `./build act <act-commands>` will run `act` after building local changes (see below)
|
|
||||||
|
|
||||||
## Using `act` to run integ-test workflows locally
|
The simplest process to follow is:
|
||||||
|
1. Checkout the dependabot branch locally eg: `git checkout dependabot/npm_and_yarn/actions/github-5.1.0`
|
||||||
It's possible to run GitHub Actions workflows locally with https://nektosact.com/.
|
2. In the `sources` directory, run `npm install` to download NPM dependencies
|
||||||
Many of the test workflows from this repository can be run in this way, making it easier to
|
3. In the `sources` directory, run `npm run build` to regenerate the distribution
|
||||||
test local changes without pushing to a branch.
|
4. Push the changes to the dependabot branch
|
||||||
|
5. If/when the checks pass, you can merge the dependabot PR
|
||||||
This feature is most useful to run a single `integ-test-*` workflow. Avoid running `ci-quick-test` or other aggregating workflows unless you want to use your local machine as a heater!
|
|
||||||
|
|
||||||
Example running a single workflow:
|
|
||||||
`./build act -W .github/workflows/integ-test-caching-config.yml`
|
|
||||||
|
|
||||||
Example running a single job:
|
|
||||||
`./build act -W .github/workflows/integ-test-caching-config.yml -j cache-disabled-pre-existing-gradle-home`
|
|
||||||
|
|
||||||
Known issues:
|
|
||||||
- `integ-test-detect-java-toolchains.yml` fails when running on a `linux/amd64` container, since the expected pre-installed JDKs are not present. Should be fixed by #89.
|
|
||||||
- `act` is not yet compatible with `actions/upload-artifact@v4` (or related toolkit functions)
|
|
||||||
- See https://github.com/nektos/act/pull/2224
|
|
||||||
- Workflows run by `act` cannot submit to the dependency-submission API, as no `GITHUB_TOKEN` is available by default.
|
|
||||||
|
|
||||||
Tips:
|
|
||||||
- Add the following lines to `~/.actrc`:
|
|
||||||
- `--container-daemon-socket -` : Prevents "error while creating mount source path", and yes that's a solitary dash at the end
|
|
||||||
- `--matrix os:ubuntu-latest` : Avoids a lot of logging about unsupported runners being skipped
|
|
||||||
- Runners don't have `java` installed by default, so all workflows that run Gradle require a `setup-java` step.
|
|
||||||
|
60
README.md
60
README.md
@ -1,24 +1,17 @@
|
|||||||
# GitHub Actions for Gradle builds
|
# GitHub Actions for Gradle builds
|
||||||
|
|
||||||
[](https://scorecard.dev/viewer/?uri=github.com/gradle/actions)
|
|
||||||
|
|
||||||
This repository contains a set of GitHub Actions that are useful for building Gradle projects on GitHub.
|
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
|
||||||
|
|
||||||
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.
|
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](https://docs.gradle.org/current/userguide/gradle_wrapper.html), and the examples assume that the Gradle Wrapper has been configured for the project. See [this example](docs/setup-gradle.md#build-with-a-specific-gradle-version) if your project doesn't use the Gradle Wrapper.
|
|
||||||
|
|
||||||
### Example usage
|
### Example usage
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: Build
|
name: Build
|
||||||
|
|
||||||
on:
|
on: [ push ]
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@ -26,18 +19,13 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/actions/setup-gradle@v4
|
uses: gradle/actions/setup-gradle@v3
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: ./gradlew build
|
run: ./gradlew build
|
||||||
```
|
```
|
||||||
|
|
||||||
See the [full action documentation](docs/setup-gradle.md) for more advanced usage scenarios.
|
See the [full action documentation](setup-gradle/README.md) for more advanced usage scenarios.
|
||||||
|
|
||||||
## The `dependency-submission` action
|
## The `dependency-submission` action
|
||||||
|
|
||||||
@ -51,9 +39,7 @@ Simply add this as a new workflow file to your repository (eg `.github/workflows
|
|||||||
```yaml
|
```yaml
|
||||||
name: Dependency Submission
|
name: Dependency Submission
|
||||||
|
|
||||||
on:
|
on: [ push ]
|
||||||
push:
|
|
||||||
branches: [ 'main' ]
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@ -64,42 +50,8 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
- name: Generate and submit dependency graph
|
- name: Generate and submit dependency graph
|
||||||
uses: gradle/actions/dependency-submission@v4
|
uses: gradle/actions/dependency-submission@v3
|
||||||
```
|
```
|
||||||
|
|
||||||
See the [full action documentation](docs/dependency-submission.md) for more advanced usage scenarios.
|
See the [full action documentation](dependency-submission/README.md) for more advanced usage scenarios.
|
||||||
|
|
||||||
## The `wrapper-validation` action
|
|
||||||
|
|
||||||
The `wrapper-validation` action validates the checksums of _all_ [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html) 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](docs/setup-gradle.md#gradle-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
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
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](docs/wrapper-validation.md) for more advanced usage scenarios.
|
|
||||||
|
32
RELEASING.md
32
RELEASING.md
@ -1,32 +0,0 @@
|
|||||||
# Gradle GitHub Actions release process
|
|
||||||
|
|
||||||
## Preparation
|
|
||||||
- Push any outstanding changes to branch main.
|
|
||||||
- Check that https://github.com/gradle/actions/actions is green for all workflows for the main branch.
|
|
||||||
- This should include any workflows triggered by `[bot] Update dist directory`
|
|
||||||
- Decide on the version number to use for the release. The action releases should follow semantic versioning.
|
|
||||||
- By default, a patch release is assumed (eg. `4.0.0` → `4.0.1`)
|
|
||||||
- If new features have been added, bump the minor version (eg `4.1.1` → `4.2.0`)
|
|
||||||
- If a new major release is required, bump the major version (eg `4.1.1` → `5.0.0`)
|
|
||||||
- Note: The gradle actions follow the GitHub Actions convention of including a .0 patch number for the first release of a minor version, unlike the Gradle convention which omits the trailing .0.
|
|
||||||
|
|
||||||
## Release gradle/actions
|
|
||||||
- Create a tag for the release. The tag should have the format `v4.1.0`
|
|
||||||
- From CLI: `git tag -s -m "v4.1.0" v4.1.0 && git push --tags`
|
|
||||||
- Note that we sign the tag and set the commit message for the tag to the newly released version.
|
|
||||||
- Go to https://github.com/gradle/actions/releases and "Draft new release"
|
|
||||||
- Use the newly created tag and copy the tag name exactly as the release title.
|
|
||||||
- Craft release notes content based on issues closed, PRs merged and commits
|
|
||||||
- Include a Full changelog link in the format https://github.com/gradle/actions/compare/v2.12.0...v3.0.0
|
|
||||||
- Publish the release.
|
|
||||||
- Force push the `v4` tag (or current major version) to point to the new release. It is conventional for users to bind to a major release version using this tag.
|
|
||||||
- From CLI: `git tag -f -s -a -m "v4.0.0" v4 v4.0.0 && git push -f --tags`
|
|
||||||
- Note that we sign the tag and set the commit message for the tag to the newly released version.
|
|
||||||
|
|
||||||
## Post release steps
|
|
||||||
|
|
||||||
Submit PRs to update the GitHub starter workflow. Starter workflows contain content that should reference the Git hash of the current gradle/actions release:
|
|
||||||
https://github.com/actions/starter-workflows has [gradle](https://github.com/actions/starter-workflows/blob/main/ci/gradle.yml) and [gradle-publish](https://github.com/actions/starter-workflows/blob/main/ci/gradle-publish.yml): see [the v4.0.0 update PR](https://github.com/actions/starter-workflows/pull/2468) for an example.
|
|
||||||
|
|
||||||
Submit PRs to update the GitHub documentation. The documentation contains content that should reference the Git hash of the current gradle/actions release:
|
|
||||||
https://github.com/github/docs has [building-and-testing-java-with-gradle](https://github.com/github/docs/blob/main/content/actions/automating-builds-and-tests/building-and-testing-java-with-gradle.md) and [publishing-java-packages-with-gradle](https://github.com/github/docs/blob/main/content/actions/publishing-packages/publishing-java-packages-with-gradle.md) : see [the v4.0.0 update PR](https://github.com/github/docs/pull/34239) for an example.
|
|
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"folders": [
|
|
||||||
{
|
|
||||||
"path": "."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "sources"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": {}
|
|
||||||
}
|
|
46
build
46
build
@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd sources
|
|
||||||
|
|
||||||
if [[ -f ~/.gradle/develocity/keys.properties ]]; then
|
|
||||||
export NODE_OPTIONS='-r @gradle/develocity-agent/preload'
|
|
||||||
export DEVELOCITY_URL=https://ge.solutions-team.gradle.com
|
|
||||||
export DEVELOCITY_ACCESS_KEY=$(paste -sd ';' ~/.gradle/develocity/keys.properties)
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
all)
|
|
||||||
npm run all
|
|
||||||
;;
|
|
||||||
act)
|
|
||||||
# Build and copy outputs to the dist directory
|
|
||||||
npm run build
|
|
||||||
cd ..
|
|
||||||
cp -r sources/dist .
|
|
||||||
# Run act
|
|
||||||
$@
|
|
||||||
# Revert the changes to the dist directory
|
|
||||||
git checkout -- dist
|
|
||||||
;;
|
|
||||||
dist)
|
|
||||||
npm clean-install
|
|
||||||
npm run build
|
|
||||||
cd ..
|
|
||||||
cp -r sources/dist .
|
|
||||||
;;
|
|
||||||
init-scripts)
|
|
||||||
cd test/init-scripts
|
|
||||||
./gradlew check
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
npm clean-install
|
|
||||||
npm run build
|
|
||||||
;;
|
|
||||||
test)
|
|
||||||
shift
|
|
||||||
npm test -- $@
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
npm run build
|
|
||||||
;;
|
|
||||||
esac
|
|
@ -1,6 +1,19 @@
|
|||||||
## The `dependency-submission` action
|
# 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 `gradle/actions/dependency-submission` action provides the simplest (and recommended) way to generate a
|
||||||
|
dependency graph for your project. This action will attempt to detect all dependencies used by your build
|
||||||
|
without building and testing the project itself.
|
||||||
|
|
||||||
|
The dependency graph snapshot is generated via integration with the [GitHub Dependency Graph Gradle Plugin](https://plugins.gradle.org/plugin/org.gradle.github-dependency-graph-gradle-plugin), and submitted to your repository via the
|
||||||
|
[GitHub Dependency Submission API](https://docs.github.com/en/rest/dependency-graph/dependency-submission).
|
||||||
|
The generated snapshot files can be submitted in the same job, or saved for submission in a subsequent job.
|
||||||
|
|
||||||
|
The generated dependency graph includes all of the dependencies in your build, and is used by GitHub to generate
|
||||||
|
[Dependabot Alerts](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)
|
||||||
|
for vulnerable dependencies, as well as to populate the
|
||||||
|
[Dependency Graph insights view](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository#viewing-the-dependency-graph).
|
||||||
|
|
||||||
|
## General usage
|
||||||
|
|
||||||
The following workflow will generate a dependency graph for a Gradle project and submit it immediately to the repository via the
|
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.
|
Dependency Submission API. For most projects, this default configuration should be all that you need.
|
||||||
@ -10,9 +23,7 @@ Simply add this as a new workflow file to your repository (eg `.github/workflows
|
|||||||
```yaml
|
```yaml
|
||||||
name: Dependency Submission
|
name: Dependency Submission
|
||||||
|
|
||||||
on:
|
on: [ push ]
|
||||||
push:
|
|
||||||
branches: ['main']
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@ -23,13 +34,252 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
- name: Generate and submit dependency graph
|
- name: Generate and submit dependency graph
|
||||||
uses: gradle/actions/dependency-submission@v4
|
uses: gradle/actions/dependency-submission@v3
|
||||||
```
|
```
|
||||||
|
|
||||||
See the [full action documentation](../docs/dependency-submission.md) for more advanced usage scenarios.
|
### Configuration parameters
|
||||||
|
|
||||||
|
In some cases, the default action configuration will not be sufficient, and additional action parameters will need to be specified.
|
||||||
|
|
||||||
|
See the example below for a summary, and the [Action Metadata file](action.yml) for a more detailed description of each input parameter.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Dependency Submission with advanced config
|
||||||
|
|
||||||
|
on: [ push ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-submission:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and save dependency graph
|
||||||
|
uses: gradle/actions/dependency-submission@v3
|
||||||
|
with:
|
||||||
|
# Use a particular Gradle version instead of the configured wrapper.
|
||||||
|
gradle-version: 8.6-rc-2
|
||||||
|
|
||||||
|
# The gradle project is not in the root of the repository.
|
||||||
|
build-root-directory: my-gradle-project
|
||||||
|
|
||||||
|
# Enable configuration-cache reuse for this build.
|
||||||
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
||||||
|
|
||||||
|
# Do not attempt to submit the dependency-graph. Save it as a workflow artifact.
|
||||||
|
dependency-graph: generate-and-upload
|
||||||
|
```
|
||||||
|
|
||||||
|
## Limiting the scope of the dependency graph
|
||||||
|
|
||||||
|
By default, the `dependency-submission` action attempts to detect all dependencies declared and used by your Gradle build.
|
||||||
|
At times it may helpful to limit the dependencies reported to GitHub, to avoid security alerts for dependencies that
|
||||||
|
don't form a critical part of your product. For example, a vulnerability in the tool you use to generate documentation
|
||||||
|
may not be as important as a vulnerability in one of your runtime dependencies.
|
||||||
|
|
||||||
|
The `dependency-submission` action provides a convenient mechanism to filter the projects and configurations that
|
||||||
|
contribute to the dependency graph.
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Ideally, all dependencies involved in building and testing a project will be extracted and reported in a dependency graph.
|
||||||
|
> These dependencies would be assigned to different scopes (eg development, runtime, testing) and the GitHub UI would make it easy to opt-in to security alerts for different dependency scopes.
|
||||||
|
> However, this functionality does not yet exist.
|
||||||
|
|
||||||
|
### Excluding certain Gradle projects from to the dependency graph
|
||||||
|
|
||||||
|
If you do not want the dependency graph to include dependencies from every project in your build,
|
||||||
|
you can easily exclude certain projects from the dependency extraction process.
|
||||||
|
|
||||||
|
To restrict which Gradle subprojects contribute to the report, specify which projects to exclude via a regular expression.
|
||||||
|
You can provide this value via the `DEPENDENCY_GRAPH_EXCLUDE_PROJECTS` environment variable or system property.
|
||||||
|
|
||||||
|
Note that excluding a project in this way only removes dependencies that are _resolved_ as part of that project, and may
|
||||||
|
not necessarily remove all dependencies _declared_ in that project. If another project depends on the excluded project
|
||||||
|
then it may transitively resolve dependencies declared in the excluded project: these dependencies will still be included
|
||||||
|
in the generated dependency graph.
|
||||||
|
|
||||||
|
### Excluding certain Gradle configurations from to the dependency graph
|
||||||
|
|
||||||
|
Similarly to Gradle projects, it is possible to exclude a set of configuration instances from dependency graph generation,
|
||||||
|
so that dependencies resolved by those configurations are not included.
|
||||||
|
|
||||||
|
To restrict which Gradle configurations contribute to the report, specify which configurations to exclude via a regular expression.
|
||||||
|
You can provide this value via the `DEPENDENCY_GRAPH_EXCLUDE_CONFIGURATIONS` environment variable or system property.
|
||||||
|
|
||||||
|
Note that configuration exclusion applies to the configuration in which the dependency is _resolved_ which is not necessarily
|
||||||
|
the configuration where the dependency is _declared_. For example if you decare a dependency as `implementation` in
|
||||||
|
a Java project, that dependency will be resolved in `compileClasspath`, `runtimeClasspath` and possibly other configurations.
|
||||||
|
|
||||||
|
### Example of project and configuration filtering
|
||||||
|
|
||||||
|
For example, if you want to exclude dependencies in the `buildSrc` project, and exclude dependencies from the `testCompileClasspath` and `testRuntimeClasspath` configurations, you would use the following configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and submit dependency graph
|
||||||
|
uses: gradle/actions/dependency-submission@v3
|
||||||
|
env:
|
||||||
|
DEPENDENCY_GRAPH_EXCLUDE_PROJECTS: ':buildSrc'
|
||||||
|
DEPENDENCY_GRAPH_EXCLUDE_CONFIGURATIONS: 'test(Compile|Runtime)Classpath'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Other configuration options
|
||||||
|
|
||||||
|
The [GitHub Dependency Graph Gradle Plugin](https://plugins.gradle.org/plugin/org.gradle.github-dependency-graph-gradle-plugin)
|
||||||
|
has other filtering options that may be useful.
|
||||||
|
See [the docs](https://github.com/gradle/github-dependency-graph-gradle-plugin?tab=readme-ov-file#filtering-which-gradle-configurations-contribute-to-the-dependency-graph) for details.
|
||||||
|
|
||||||
|
## Advance usage scenarios
|
||||||
|
|
||||||
|
### Using a custom plugin repository
|
||||||
|
|
||||||
|
By default, the action downloads the `github-dependency-graph-gradle-plugin` from the Gradle Plugin Portal (https://plugins.gradle.org). If your GitHub Actions environment does not have access to this URL, you can specify a custom plugin repository to use.
|
||||||
|
Do so by setting the `GRADLE_PLUGIN_REPOSITORY_URL` environment variable.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and submit dependency graph
|
||||||
|
uses: gradle/actions/dependency-submission@v3
|
||||||
|
env:
|
||||||
|
GRADLE_PLUGIN_REPOSITORY_URL: "https://gradle-plugins-proxy.mycorp.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Integrating the `dependency-review-action`
|
||||||
|
|
||||||
|
The GitHub [dependency-review-action](https://github.com/actions/dependency-review-action) helps you
|
||||||
|
understand dependency changes (and the security impact of these changes) for a pull request,
|
||||||
|
by comparing the dependency graph for the pull-request with that of the HEAD commit.
|
||||||
|
|
||||||
|
Example of a pull request workflow that executes a build for a pull request and runs the `dependency-review-action`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Dependency review for pull requests
|
||||||
|
|
||||||
|
on: [ pull_request ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-submission:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and submit dependency graph
|
||||||
|
uses: gradle/actions/dependency-submission@v3
|
||||||
|
|
||||||
|
dependency-review:
|
||||||
|
needs: dependency-submission
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Perform dependency review
|
||||||
|
uses: actions/dependency-review-action@v3
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that the `dependency-submission` action submits the dependency graph at the completion of the workflow Job.
|
||||||
|
For this reason, the `dependency-review-action` must be executed in a dependent job, and not as a subsequent step in the job that generates the dependency graph.
|
||||||
|
|
||||||
|
### Usage with pull requests from public forked repositories
|
||||||
|
|
||||||
|
This `contents: write` permission is [not available for any workflow that is triggered by a pull request submitted from a public forked repository](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token).
|
||||||
|
This limitation is designed to prevent a malicious pull request from effecting repository changes.
|
||||||
|
|
||||||
|
Because of this restriction, we require 2 separate workflows in order to generate and submit a dependency graph:
|
||||||
|
1. The first workflow runs directly against the pull request sources and will `generate-and-upload` the dependency graph.
|
||||||
|
2. The second workflow is triggered on `workflow_run` of the first workflow, and will `download-and-submit` the previously saved dependency graph.
|
||||||
|
|
||||||
|
***Main workflow file***
|
||||||
|
```yaml
|
||||||
|
name: Generate and save dependency graph
|
||||||
|
|
||||||
|
on: [ pull_request ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read # 'write' permission is not available
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-submission:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Generate and save dependency graph
|
||||||
|
uses: gradle/actions/dependency-submission@v3
|
||||||
|
with:
|
||||||
|
dependency-graph: generate-and-upload
|
||||||
|
```
|
||||||
|
|
||||||
|
***Dependent workflow file***
|
||||||
|
```yaml
|
||||||
|
name: Download and submit dependency graph
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: ['Generate and save dependency graph']
|
||||||
|
types: [completed]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
submit-dependency-graph:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Download and submit dependency graph
|
||||||
|
uses: gradle/actions/dependency-submission@v3
|
||||||
|
with:
|
||||||
|
dependency-graph: download-and-submit # Download saved dependency-graph and submit
|
||||||
|
```
|
||||||
|
|
||||||
|
### Integrating `dependency-review-action` for pull requests from public forked repositories
|
||||||
|
|
||||||
|
To integrate the `dependency-review-action` into the pull request workflows above, a third workflow file is required.
|
||||||
|
This workflow will be triggered directly on `pull_request`, but will wait until the dependency graph results are
|
||||||
|
submitted before the dependency review can complete. The period to wait is controlled by the `retry-on-snapshot-warnings` input parameters.
|
||||||
|
|
||||||
|
Here's an example of a separate "Dependency Review" workflow that will wait for 10 minutes for the above PR check workflow to complete.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: dependency-review
|
||||||
|
|
||||||
|
on: [ pull_request ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-review:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Dependency Review'
|
||||||
|
uses: actions/dependency-review-action@v3
|
||||||
|
with:
|
||||||
|
retry-on-snapshot-warnings: true
|
||||||
|
retry-on-snapshot-warnings-timeout: 600
|
||||||
|
```
|
||||||
|
|
||||||
|
The `retry-on-snapshot-warnings-timeout` (in seconds) needs to be long enough to allow the entire `Generate and save dependency graph` and `Download and submit dependency graph` workflows (above) to complete.
|
||||||
|
|
||||||
|
## Gradle version compatibility
|
||||||
|
|
||||||
|
Dependency-graph generation is compatible with most versions of Gradle >= `5.2`, and is tested regularly against
|
||||||
|
Gradle versions `5.2.1`, `5.6.4`, `6.0.1`, `6.9.4`, `7.1.1` and `7.6.3`, as well as all patched versions of Gradle 8.x.
|
||||||
|
|
||||||
|
A known exception to this is that Gradle `7.0`, `7.0.1` and `7.0.2` are not supported.
|
||||||
|
|
||||||
|
See [here](https://github.com/gradle/github-dependency-graph-gradle-plugin?tab=readme-ov-file#gradle-compatibility) for complete compatibility information.
|
||||||
|
@ -2,230 +2,76 @@ name: Gradle Dependency Submission
|
|||||||
description: Generates a dependency graph for a Gradle project and submits it via the Dependency Submission API
|
description: Generates a dependency graph for a Gradle project and submits it via the Dependency Submission API
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
# Gradle execution configuration
|
|
||||||
gradle-version:
|
gradle-version:
|
||||||
description: |
|
description: |
|
||||||
Gradle version to use. If specified, this Gradle version will be downloaded, added to the PATH and used for invoking Gradle.
|
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.
|
If not provided, it is assumed that the project uses the Gradle Wrapper.
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
build-root-directory:
|
build-root-directory:
|
||||||
description: Path to the root directory of the build. Default is the root of the GitHub workspace.
|
description: Path to the root directory of the build. Default is the root of the GitHub workspace.
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
dependency-resolution-task:
|
|
||||||
description: |
|
|
||||||
Task(s) that should be executed in order to resolve all project dependencies.
|
|
||||||
By default, the built-in `:ForceDependencyResolutionPlugin_resolveAllDependencies` task is executed.
|
|
||||||
required: false
|
|
||||||
|
|
||||||
additional-arguments:
|
|
||||||
description: |
|
|
||||||
Additional arguments to pass to Gradle when generating the dependency graph.
|
|
||||||
For example, `--no-configuration-cache --stacktrace`.
|
|
||||||
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:
|
cache-encryption-key:
|
||||||
description: |
|
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 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`.
|
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.
|
Configuration-cache data will not be saved/restored without an encryption key being provided.
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
cache-cleanup:
|
|
||||||
description: |
|
|
||||||
Specifies if the action should attempt to remove any stale/unused entries from the Gradle User Home prior to saving to the GitHub Actions cache.
|
|
||||||
By default ('on-success'), cleanup is performed when all Gradle builds succeed for the Job.
|
|
||||||
This behaviour can be disabled ('never'), or configured to always run irrespective of the build outcome ('always').
|
|
||||||
Valid values are 'never', 'on-success' and 'always'.
|
|
||||||
required: false
|
|
||||||
default: 'on-success'
|
|
||||||
|
|
||||||
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
|
|
||||||
deprecation-message: This input has been superceded by the 'cache-cleanup' input parameter.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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:
|
dependency-graph:
|
||||||
description: |
|
description: |
|
||||||
Specifies how the dependency-graph should be handled by this action.
|
Specifies how the dependency-graph should be handled by this action. By default a dependency-graph will be generated and submitted.
|
||||||
By default a dependency-graph will be generated, submitted to the dependency-submission API, and saved as a workflow artifact.
|
|
||||||
Valid values are:
|
Valid values are:
|
||||||
'generate-and-submit': Generates a dependency graph for the project and submits it in the same Job.
|
'generate-and-submit' (default): Generates a dependency graph for the project and submits it in the same Job.
|
||||||
'generate-submit-and-upload (default)': As per 'generate-and-submit', but also saves the dependency graph as a workflow artifact.
|
'generate-and-upload': Generates a dependency graph for the project and saves it as a workflow artifact.
|
||||||
'generate-and-upload': Generates a dependency graph for the project and saves it as a workflow artifact. Does not submit it to the repository.
|
|
||||||
'download-and-submit': Retrieves a previously saved dependency-graph and submits it to the repository.
|
'download-and-submit': Retrieves a previously saved dependency-graph and submits it to the repository.
|
||||||
|
|
||||||
Use `generate-and-submit` if you prefer not to save the dependency-graph as a workflow artifact.
|
|
||||||
The `generate-and-upload` and `download-and-submit` options are designed to be used in an untrusted workflow scenario,
|
The `generate-and-upload` and `download-and-submit` options are designed to be used in an untrusted workflow scenario,
|
||||||
where the workflow generating the dependency-graph cannot (or should not) be given the `contents: write` permissions
|
where the workflow generating the dependency-graph cannot (or should not) be given the `contents: write` permissions
|
||||||
required to submit via the Dependency Submission API.
|
required to submit via the Dependency Submission API.
|
||||||
required: false
|
required: false
|
||||||
default: 'generate-submit-and-upload'
|
default: 'generate-and-submit'
|
||||||
|
additional-arguments:
|
||||||
dependency-graph-report-dir:
|
|
||||||
description: |
|
description: |
|
||||||
Specifies where the dependency graph report will be generated.
|
Additional arguments to pass to Gradle. For example, `--no-configuration-cache --stacktrace`.
|
||||||
Paths can relative or absolute. Relative paths are resolved relative to the workspace directory.
|
|
||||||
required: false
|
|
||||||
default: 'dependency-graph-reports'
|
|
||||||
|
|
||||||
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: false
|
|
||||||
|
|
||||||
dependency-graph-exclude-projects:
|
|
||||||
description: |
|
|
||||||
Gradle projects that should be excluded from dependency graph (regular expression).
|
|
||||||
When set, any matching project will be excluded.
|
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
dependency-graph-include-projects:
|
|
||||||
description: |
|
|
||||||
Gradle projects that should be included in dependency graph (regular expression).
|
|
||||||
When set, only matching projects will be included.
|
|
||||||
required: false
|
|
||||||
|
|
||||||
dependency-graph-exclude-configurations:
|
|
||||||
description: |
|
|
||||||
Gradle configurations that should be included in dependency graph (regular expression).
|
|
||||||
When set, anymatching configurations will be excluded.
|
|
||||||
required: false
|
|
||||||
|
|
||||||
dependency-graph-include-configurations:
|
|
||||||
description: |
|
|
||||||
Gradle configurations that should be included in dependency graph (regular expression).
|
|
||||||
When set, only matching configurations will be included.
|
|
||||||
required: false
|
|
||||||
|
|
||||||
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:
|
build-scan-publish:
|
||||||
description: |
|
description: |
|
||||||
Set to 'true' to automatically publish build results as a Build Scan on scans.gradle.com.
|
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'.
|
For publication to succeed without user input, you must also provide values for `build-scan-terms-of-service-url` and 'build-scan-terms-of-service-agree'.
|
||||||
required: false
|
required: false
|
||||||
default: false
|
default: false
|
||||||
|
build-scan-terms-of-service-url:
|
||||||
build-scan-terms-of-use-url:
|
description: The URL to the Build Scan® terms of service. This input must be set to 'https://gradle.com/terms-of-service'.
|
||||||
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
|
required: false
|
||||||
|
build-scan-terms-of-service-agree:
|
||||||
build-scan-terms-of-use-agree:
|
description: Indicate that you agree to the Build Scan® terms of service. This input value must be "yes".
|
||||||
description: Indicate that you agree to the Build Scan® terms of use. This input value must be "yes".
|
|
||||||
required: false
|
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
|
|
||||||
|
|
||||||
# Wrapper validation configuration
|
|
||||||
validate-wrappers:
|
|
||||||
description: |
|
|
||||||
When 'true' the action will automatically validate all wrapper jars found in the repository.
|
|
||||||
If the wrapper checksums are not valid, the action will fail.
|
|
||||||
required: false
|
|
||||||
default: false
|
|
||||||
|
|
||||||
allow-snapshot-wrappers:
|
|
||||||
description: |
|
|
||||||
When 'true', wrapper validation will include the checksums of snapshot wrapper jars.
|
|
||||||
Use this if you are running with nightly or snapshot versions of the Gradle wrapper.
|
|
||||||
required: false
|
|
||||||
default: false
|
|
||||||
|
|
||||||
# DEPRECATED ACTION INPUTS
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
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.
|
|
||||||
gradle-version:
|
|
||||||
description: Version of Gradle that was setup by the action
|
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: 'node20'
|
using: "composite"
|
||||||
main: '../dist/dependency-submission/main/index.js'
|
steps:
|
||||||
post: '../dist/dependency-submission/post/index.js'
|
- name: Generate dependency graph
|
||||||
|
if: ${{ inputs.dependency-graph == 'generate-and-submit' || inputs.dependency-graph == 'generate-and-upload' }}
|
||||||
branding:
|
uses: gradle/actions/setup-gradle@v3
|
||||||
icon: 'box'
|
with:
|
||||||
color: 'gray-dark'
|
dependency-graph: ${{ inputs.dependency-graph }}
|
||||||
|
dependency-graph-continue-on-failure: false
|
||||||
|
gradle-version: ${{ inputs.gradle-version }}
|
||||||
|
build-root-directory: ${{ inputs.build-root-directory }}
|
||||||
|
cache-encryption-key: ${{ inputs.cache-encryption-key }}
|
||||||
|
build-scan-publish: ${{ inputs.build-scan-publish }}
|
||||||
|
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 }}
|
||||||
|
artifact-retention-days: 1
|
||||||
|
arguments: |
|
||||||
|
--no-configure-on-demand
|
||||||
|
--dependency-verification=off
|
||||||
|
:ForceDependencyResolutionPlugin_resolveAllDependencies
|
||||||
|
${{ inputs.additional-arguments }}
|
||||||
|
- name: Download and submit dependency graph
|
||||||
|
if: ${{ inputs.dependency-graph == 'download-and-submit' }}
|
||||||
|
uses: gradle/actions/setup-gradle@v3
|
||||||
|
with:
|
||||||
|
dependency-graph: download-and-submit
|
||||||
|
dependency-graph-continue-on-failure: false
|
||||||
|
cache-disabled: true
|
||||||
|
194262
dist/dependency-submission/main/index.js
vendored
194262
dist/dependency-submission/main/index.js
vendored
File diff suppressed because one or more lines are too long
1
dist/dependency-submission/main/index.js.map
vendored
1
dist/dependency-submission/main/index.js.map
vendored
File diff suppressed because one or more lines are too long
146405
dist/dependency-submission/post/index.js
vendored
146405
dist/dependency-submission/post/index.js
vendored
File diff suppressed because one or more lines are too long
1
dist/dependency-submission/post/index.js.map
vendored
1
dist/dependency-submission/post/index.js.map
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user