mirror of
https://github.com/gradle/gradle-build-action.git
synced 2025-06-07 16:56:12 +02:00
Use Gradle Wrapper if specified without Gradle version
Signed-off-by: Anders Fischer-Nielsen <andersfischern@me.com>
This commit is contained in:
parent
8d2472536e
commit
9b0ff91415
8 changed files with 5161 additions and 5102 deletions
15
dist/main/index.js
vendored
15
dist/main/index.js
vendored
|
@ -65878,9 +65878,10 @@ const glob = __importStar(__nccwpck_require__(8090));
|
||||||
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
||||||
const path_1 = __importDefault(__nccwpck_require__(1017));
|
const path_1 = __importDefault(__nccwpck_require__(1017));
|
||||||
class CacheCleaner {
|
class CacheCleaner {
|
||||||
constructor(gradleUserHome, tmpDir) {
|
constructor(gradleUserHome, tmpDir, gradleVersion) {
|
||||||
this.gradleUserHome = gradleUserHome;
|
this.gradleUserHome = gradleUserHome;
|
||||||
this.tmpDir = tmpDir;
|
this.tmpDir = tmpDir;
|
||||||
|
this.gradleVersion = gradleVersion;
|
||||||
}
|
}
|
||||||
prepare() {
|
prepare() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
@ -65898,7 +65899,8 @@ class CacheCleaner {
|
||||||
fs_1.default.mkdirSync(cleanupProjectDir, { recursive: true });
|
fs_1.default.mkdirSync(cleanupProjectDir, { recursive: true });
|
||||||
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'settings.gradle'), 'rootProject.name = "dummy-cleanup-project"');
|
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'settings.gradle'), 'rootProject.name = "dummy-cleanup-project"');
|
||||||
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}');
|
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}');
|
||||||
yield exec.exec(`gradle -g ${this.gradleUserHome} --no-daemon --build-cache --no-scan --quiet noop`, [], {
|
const gradleExecutable = this.gradleVersion === 'wrapper' ? './gradlew' : 'gradle';
|
||||||
|
yield exec.exec(`${gradleExecutable} -g ${this.gradleUserHome} --no-daemon --build-cache --no-scan --quiet noop`, [], {
|
||||||
cwd: cleanupProjectDir
|
cwd: cleanupProjectDir
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -66737,6 +66739,7 @@ const cache_utils_1 = __nccwpck_require__(1678);
|
||||||
const cache_base_1 = __nccwpck_require__(7591);
|
const cache_base_1 = __nccwpck_require__(7591);
|
||||||
const cache_cleaner_1 = __nccwpck_require__(57);
|
const cache_cleaner_1 = __nccwpck_require__(57);
|
||||||
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED';
|
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED';
|
||||||
|
const GRADLE_VERSION = 'GRADLE_VERSION';
|
||||||
function restore(gradleUserHome, cacheListener) {
|
function restore(gradleUserHome, cacheListener) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (process.env[CACHE_RESTORED_VAR]) {
|
if (process.env[CACHE_RESTORED_VAR]) {
|
||||||
|
@ -66768,7 +66771,8 @@ function restore(gradleUserHome, cacheListener) {
|
||||||
}));
|
}));
|
||||||
if ((0, cache_utils_1.isCacheCleanupEnabled)() && !(0, cache_utils_1.isCacheReadOnly)()) {
|
if ((0, cache_utils_1.isCacheCleanupEnabled)() && !(0, cache_utils_1.isCacheReadOnly)()) {
|
||||||
core.info('Preparing cache for cleanup.');
|
core.info('Preparing cache for cleanup.');
|
||||||
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']);
|
const gradleVersion = core.getState(GRADLE_VERSION);
|
||||||
|
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP'], gradleVersion);
|
||||||
yield cacheCleaner.prepare();
|
yield cacheCleaner.prepare();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -66792,7 +66796,8 @@ function save(gradleUserHome, cacheListener, daemonController) {
|
||||||
yield daemonController.stopAllDaemons();
|
yield daemonController.stopAllDaemons();
|
||||||
if ((0, cache_utils_1.isCacheCleanupEnabled)()) {
|
if ((0, cache_utils_1.isCacheCleanupEnabled)()) {
|
||||||
core.info('Forcing cache cleanup.');
|
core.info('Forcing cache cleanup.');
|
||||||
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']);
|
const gradleVersion = core.getState(GRADLE_VERSION);
|
||||||
|
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP'], gradleVersion);
|
||||||
yield cacheCleaner.forceCleanup();
|
yield cacheCleaner.forceCleanup();
|
||||||
}
|
}
|
||||||
yield core.group('Caching Gradle state', () => __awaiter(this, void 0, void 0, function* () {
|
yield core.group('Caching Gradle state', () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
@ -67177,6 +67182,7 @@ const string_argv_1 = __nccwpck_require__(9453);
|
||||||
const setupGradle = __importStar(__nccwpck_require__(8652));
|
const setupGradle = __importStar(__nccwpck_require__(8652));
|
||||||
const execution = __importStar(__nccwpck_require__(3584));
|
const execution = __importStar(__nccwpck_require__(3584));
|
||||||
const provision = __importStar(__nccwpck_require__(2501));
|
const provision = __importStar(__nccwpck_require__(2501));
|
||||||
|
const GRADLE_VERSION = 'GRADLE_VERSION';
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
|
@ -67205,6 +67211,7 @@ run();
|
||||||
function provisionGradle(workspaceDirectory) {
|
function provisionGradle(workspaceDirectory) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const gradleVersion = core.getInput('gradle-version');
|
const gradleVersion = core.getInput('gradle-version');
|
||||||
|
core.saveState(GRADLE_VERSION, gradleVersion);
|
||||||
if (gradleVersion !== '' && gradleVersion !== 'wrapper') {
|
if (gradleVersion !== '' && gradleVersion !== 'wrapper') {
|
||||||
return path.resolve(yield provision.gradleVersion(gradleVersion));
|
return path.resolve(yield provision.gradleVersion(gradleVersion));
|
||||||
}
|
}
|
||||||
|
|
2
dist/main/index.js.map
vendored
2
dist/main/index.js.map
vendored
File diff suppressed because one or more lines are too long
13
dist/post/index.js
vendored
13
dist/post/index.js
vendored
|
@ -64929,9 +64929,10 @@ const glob = __importStar(__nccwpck_require__(8090));
|
||||||
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
||||||
const path_1 = __importDefault(__nccwpck_require__(1017));
|
const path_1 = __importDefault(__nccwpck_require__(1017));
|
||||||
class CacheCleaner {
|
class CacheCleaner {
|
||||||
constructor(gradleUserHome, tmpDir) {
|
constructor(gradleUserHome, tmpDir, gradleVersion) {
|
||||||
this.gradleUserHome = gradleUserHome;
|
this.gradleUserHome = gradleUserHome;
|
||||||
this.tmpDir = tmpDir;
|
this.tmpDir = tmpDir;
|
||||||
|
this.gradleVersion = gradleVersion;
|
||||||
}
|
}
|
||||||
prepare() {
|
prepare() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
@ -64949,7 +64950,8 @@ class CacheCleaner {
|
||||||
fs_1.default.mkdirSync(cleanupProjectDir, { recursive: true });
|
fs_1.default.mkdirSync(cleanupProjectDir, { recursive: true });
|
||||||
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'settings.gradle'), 'rootProject.name = "dummy-cleanup-project"');
|
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'settings.gradle'), 'rootProject.name = "dummy-cleanup-project"');
|
||||||
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}');
|
fs_1.default.writeFileSync(path_1.default.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}');
|
||||||
yield exec.exec(`gradle -g ${this.gradleUserHome} --no-daemon --build-cache --no-scan --quiet noop`, [], {
|
const gradleExecutable = this.gradleVersion === 'wrapper' ? './gradlew' : 'gradle';
|
||||||
|
yield exec.exec(`${gradleExecutable} -g ${this.gradleUserHome} --no-daemon --build-cache --no-scan --quiet noop`, [], {
|
||||||
cwd: cleanupProjectDir
|
cwd: cleanupProjectDir
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -65788,6 +65790,7 @@ const cache_utils_1 = __nccwpck_require__(1678);
|
||||||
const cache_base_1 = __nccwpck_require__(7591);
|
const cache_base_1 = __nccwpck_require__(7591);
|
||||||
const cache_cleaner_1 = __nccwpck_require__(57);
|
const cache_cleaner_1 = __nccwpck_require__(57);
|
||||||
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED';
|
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED';
|
||||||
|
const GRADLE_VERSION = 'GRADLE_VERSION';
|
||||||
function restore(gradleUserHome, cacheListener) {
|
function restore(gradleUserHome, cacheListener) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (process.env[CACHE_RESTORED_VAR]) {
|
if (process.env[CACHE_RESTORED_VAR]) {
|
||||||
|
@ -65819,7 +65822,8 @@ function restore(gradleUserHome, cacheListener) {
|
||||||
}));
|
}));
|
||||||
if ((0, cache_utils_1.isCacheCleanupEnabled)() && !(0, cache_utils_1.isCacheReadOnly)()) {
|
if ((0, cache_utils_1.isCacheCleanupEnabled)() && !(0, cache_utils_1.isCacheReadOnly)()) {
|
||||||
core.info('Preparing cache for cleanup.');
|
core.info('Preparing cache for cleanup.');
|
||||||
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']);
|
const gradleVersion = core.getState(GRADLE_VERSION);
|
||||||
|
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP'], gradleVersion);
|
||||||
yield cacheCleaner.prepare();
|
yield cacheCleaner.prepare();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -65843,7 +65847,8 @@ function save(gradleUserHome, cacheListener, daemonController) {
|
||||||
yield daemonController.stopAllDaemons();
|
yield daemonController.stopAllDaemons();
|
||||||
if ((0, cache_utils_1.isCacheCleanupEnabled)()) {
|
if ((0, cache_utils_1.isCacheCleanupEnabled)()) {
|
||||||
core.info('Forcing cache cleanup.');
|
core.info('Forcing cache cleanup.');
|
||||||
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']);
|
const gradleVersion = core.getState(GRADLE_VERSION);
|
||||||
|
const cacheCleaner = new cache_cleaner_1.CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP'], gradleVersion);
|
||||||
yield cacheCleaner.forceCleanup();
|
yield cacheCleaner.forceCleanup();
|
||||||
}
|
}
|
||||||
yield core.group('Caching Gradle state', () => __awaiter(this, void 0, void 0, function* () {
|
yield core.group('Caching Gradle state', () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
|
2
dist/post/index.js.map
vendored
2
dist/post/index.js.map
vendored
File diff suppressed because one or more lines are too long
|
@ -7,10 +7,12 @@ import path from 'path'
|
||||||
export class CacheCleaner {
|
export class CacheCleaner {
|
||||||
private readonly gradleUserHome: string
|
private readonly gradleUserHome: string
|
||||||
private readonly tmpDir: string
|
private readonly tmpDir: string
|
||||||
|
private readonly gradleVersion?: string
|
||||||
|
|
||||||
constructor(gradleUserHome: string, tmpDir: string) {
|
constructor(gradleUserHome: string, tmpDir: string, gradleVersion?: string) {
|
||||||
this.gradleUserHome = gradleUserHome
|
this.gradleUserHome = gradleUserHome
|
||||||
this.tmpDir = tmpDir
|
this.tmpDir = tmpDir
|
||||||
|
this.gradleVersion = gradleVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
async prepare(): Promise<void> {
|
async prepare(): Promise<void> {
|
||||||
|
@ -42,9 +44,15 @@ export class CacheCleaner {
|
||||||
)
|
)
|
||||||
fs.writeFileSync(path.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}')
|
fs.writeFileSync(path.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}')
|
||||||
|
|
||||||
await exec.exec(`gradle -g ${this.gradleUserHome} --no-daemon --build-cache --no-scan --quiet noop`, [], {
|
const gradleExecutable = this.gradleVersion === 'wrapper' ? './gradlew' : 'gradle'
|
||||||
|
|
||||||
|
await exec.exec(
|
||||||
|
`${gradleExecutable} -g ${this.gradleUserHome} --no-daemon --build-cache --no-scan --quiet noop`,
|
||||||
|
[],
|
||||||
|
{
|
||||||
cwd: cleanupProjectDir
|
cwd: cleanupProjectDir
|
||||||
})
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private async ageAllFiles(fileName = '*'): Promise<void> {
|
private async ageAllFiles(fileName = '*'): Promise<void> {
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {GradleStateCache} from './cache-base'
|
||||||
import {CacheCleaner} from './cache-cleaner'
|
import {CacheCleaner} from './cache-cleaner'
|
||||||
|
|
||||||
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED'
|
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED'
|
||||||
|
const GRADLE_VERSION = 'GRADLE_VERSION'
|
||||||
|
|
||||||
export async function restore(gradleUserHome: string, cacheListener: CacheListener): Promise<void> {
|
export async function restore(gradleUserHome: string, cacheListener: CacheListener): Promise<void> {
|
||||||
// Bypass restore cache on all but first action step in workflow.
|
// Bypass restore cache on all but first action step in workflow.
|
||||||
|
@ -48,7 +49,8 @@ export async function restore(gradleUserHome: string, cacheListener: CacheListen
|
||||||
|
|
||||||
if (isCacheCleanupEnabled() && !isCacheReadOnly()) {
|
if (isCacheCleanupEnabled() && !isCacheReadOnly()) {
|
||||||
core.info('Preparing cache for cleanup.')
|
core.info('Preparing cache for cleanup.')
|
||||||
const cacheCleaner = new CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']!)
|
const gradleVersion = core.getState(GRADLE_VERSION)
|
||||||
|
const cacheCleaner = new CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']!, gradleVersion)
|
||||||
await cacheCleaner.prepare()
|
await cacheCleaner.prepare()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +80,8 @@ export async function save(
|
||||||
|
|
||||||
if (isCacheCleanupEnabled()) {
|
if (isCacheCleanupEnabled()) {
|
||||||
core.info('Forcing cache cleanup.')
|
core.info('Forcing cache cleanup.')
|
||||||
const cacheCleaner = new CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']!)
|
const gradleVersion = core.getState(GRADLE_VERSION)
|
||||||
|
const cacheCleaner = new CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']!, gradleVersion)
|
||||||
await cacheCleaner.forceCleanup()
|
await cacheCleaner.forceCleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ import * as setupGradle from './setup-gradle'
|
||||||
import * as execution from './execution'
|
import * as execution from './execution'
|
||||||
import * as provision from './provision'
|
import * as provision from './provision'
|
||||||
|
|
||||||
|
const GRADLE_VERSION = 'GRADLE_VERSION'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main entry point for the action, called by Github Actions for the step.
|
* The main entry point for the action, called by Github Actions for the step.
|
||||||
*/
|
*/
|
||||||
|
@ -39,6 +41,10 @@ run()
|
||||||
|
|
||||||
async function provisionGradle(workspaceDirectory: string): Promise<string | undefined> {
|
async function provisionGradle(workspaceDirectory: string): Promise<string | undefined> {
|
||||||
const gradleVersion = core.getInput('gradle-version')
|
const gradleVersion = core.getInput('gradle-version')
|
||||||
|
|
||||||
|
// Save the Gradle version for use in the post-action step.
|
||||||
|
core.saveState(GRADLE_VERSION, gradleVersion)
|
||||||
|
|
||||||
if (gradleVersion !== '' && gradleVersion !== 'wrapper') {
|
if (gradleVersion !== '' && gradleVersion !== 'wrapper') {
|
||||||
return path.resolve(await provision.gradleVersion(gradleVersion))
|
return path.resolve(await provision.gradleVersion(gradleVersion))
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,36 @@ test('will cleanup unused gradle versions', async () => {
|
||||||
expect(fs.existsSync(gradleCurrent)).toBe(true)
|
expect(fs.existsSync(gradleCurrent)).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('will use Gradle Wrapper for cleanup if specified', async () => {
|
||||||
|
const projectRoot = prepareTestProject()
|
||||||
|
const gradleUserHome = path.resolve(projectRoot, 'HOME')
|
||||||
|
const tmpDir = path.resolve(projectRoot, 'tmp')
|
||||||
|
const cacheCleaner = new CacheCleaner(gradleUserHome, tmpDir, 'wrapper')
|
||||||
|
|
||||||
|
// Initialize HOME with 2 different Gradle versions
|
||||||
|
await runGradleWrapperBuild(projectRoot, 'build')
|
||||||
|
await runGradleBuild(projectRoot, 'build')
|
||||||
|
|
||||||
|
await cacheCleaner.prepare()
|
||||||
|
|
||||||
|
// Run with only one of these versions
|
||||||
|
await runGradleBuild(projectRoot, 'build')
|
||||||
|
|
||||||
|
const gradle733 = path.resolve(gradleUserHome, "caches/7.3.3")
|
||||||
|
const wrapper733 = path.resolve(gradleUserHome, "wrapper/dists/gradle-7.3.3-bin")
|
||||||
|
const gradleCurrent = path.resolve(gradleUserHome, "caches/7.5.1")
|
||||||
|
|
||||||
|
expect(fs.existsSync(gradle733)).toBe(true)
|
||||||
|
expect(fs.existsSync(wrapper733)).toBe(true)
|
||||||
|
expect(fs.existsSync(gradleCurrent)).toBe(true)
|
||||||
|
|
||||||
|
await cacheCleaner.forceCleanup()
|
||||||
|
|
||||||
|
expect(fs.existsSync(gradle733)).toBe(false)
|
||||||
|
expect(fs.existsSync(wrapper733)).toBe(false)
|
||||||
|
expect(fs.existsSync(gradleCurrent)).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
async function runGradleBuild(projectRoot: string, args: string, version: string = '3.1'): Promise<void> {
|
async function runGradleBuild(projectRoot: string, args: string, version: string = '3.1'): Promise<void> {
|
||||||
const status31 = await exec.exec(`gradle -g HOME --no-daemon --build-cache -Dcommons_math3_version="${version}" ${args}`, [], {
|
const status31 = await exec.exec(`gradle -g HOME --no-daemon --build-cache -Dcommons_math3_version="${version}" ${args}`, [], {
|
||||||
cwd: projectRoot
|
cwd: projectRoot
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue