mirror of
https://github.com/gradle/actions.git
synced 2025-11-26 17:09:10 +08:00
Ensure minimum Gradle version for cache-cleanup (#364)
Instead of always installing and using the latest Gradle version for cache cleanup, we now require at least Gradle 8.9. This avoids downloading and installing Gradle if the version on PATH is sufficient to perform cache cleanup.
This commit is contained in:
104
sources/test/jest/gradle-version.test.ts
Normal file
104
sources/test/jest/gradle-version.test.ts
Normal file
@@ -0,0 +1,104 @@
|
||||
import { describe } from 'node:test'
|
||||
import { versionIsAtLeast, parseGradleVersionFromOutput } from '../../src/execution/gradle'
|
||||
|
||||
describe('gradle', () => {
|
||||
describe('can compare version with', () => {
|
||||
it('same version', async () => {
|
||||
expect(versionIsAtLeast('6.7.1', '6.7.1')).toBe(true)
|
||||
expect(versionIsAtLeast('7.0', '7.0')).toBe(true)
|
||||
expect(versionIsAtLeast('7.0', '7.0.0')).toBe(true)
|
||||
})
|
||||
it('newer version', async () => {
|
||||
expect(versionIsAtLeast('6.7.1', '6.7.2')).toBe(false)
|
||||
expect(versionIsAtLeast('7.0', '8.0')).toBe(false)
|
||||
expect(versionIsAtLeast('7.0', '7.0.1')).toBe(false)
|
||||
})
|
||||
it('older version', async () => {
|
||||
expect(versionIsAtLeast('6.7.2', '6.7.1')).toBe(true)
|
||||
expect(versionIsAtLeast('8.0', '7.0')).toBe(true)
|
||||
expect(versionIsAtLeast('7.0.1', '7.0')).toBe(true)
|
||||
})
|
||||
it('rc version', async () => {
|
||||
expect(versionIsAtLeast('8.0.2-rc-1', '8.0.1')).toBe(true)
|
||||
expect(versionIsAtLeast('8.0.2-rc-1', '8.0.2')).toBe(false)
|
||||
expect(versionIsAtLeast('8.1-rc-1', '8.0')).toBe(true)
|
||||
expect(versionIsAtLeast('8.0-rc-1', '8.0')).toBe(false)
|
||||
})
|
||||
it('snapshot version', async () => {
|
||||
expect(versionIsAtLeast('8.11-20240829002031+0000', '8.10')).toBe(true)
|
||||
expect(versionIsAtLeast('8.11-20240829002031+0000', '8.10.1')).toBe(true)
|
||||
expect(versionIsAtLeast('8.11-20240829002031+0000', '8.11')).toBe(false)
|
||||
|
||||
expect(versionIsAtLeast('8.10.2-20240828012138+0000', '8.10')).toBe(true)
|
||||
expect(versionIsAtLeast('8.10.2-20240828012138+0000', '8.10.1')).toBe(true)
|
||||
expect(versionIsAtLeast('8.10.2-20240828012138+0000', '8.10.2')).toBe(false)
|
||||
expect(versionIsAtLeast('8.10.2-20240828012138+0000', '8.11')).toBe(false)
|
||||
|
||||
expect(versionIsAtLeast('9.1-branch-provider_api_migration_public_api_changes-20240826121451+0000', '9.0')).toBe(true)
|
||||
expect(versionIsAtLeast('9.1-branch-provider_api_migration_public_api_changes-20240826121451+0000', '9.0.1')).toBe(true)
|
||||
expect(versionIsAtLeast('9.1-branch-provider_api_migration_public_api_changes-20240826121451+0000', '9.1')).toBe(false)
|
||||
})
|
||||
})
|
||||
describe('can parse version from output', () => {
|
||||
it('major version', async () => {
|
||||
const output = `
|
||||
------------------------------------------------------------
|
||||
Gradle 8.9
|
||||
------------------------------------------------------------
|
||||
`
|
||||
const version = await parseGradleVersionFromOutput(output)!
|
||||
expect(version).toBe('8.9')
|
||||
})
|
||||
|
||||
it('patch version', async () => {
|
||||
const output = `
|
||||
------------------------------------------------------------
|
||||
Gradle 8.9.1
|
||||
------------------------------------------------------------
|
||||
`
|
||||
const version = await parseGradleVersionFromOutput(output)!
|
||||
expect(version).toBe('8.9.1')
|
||||
})
|
||||
|
||||
it('rc version', async () => {
|
||||
const output = `
|
||||
------------------------------------------------------------
|
||||
Gradle 8.9-rc-1
|
||||
------------------------------------------------------------
|
||||
`
|
||||
const version = await parseGradleVersionFromOutput(output)!
|
||||
expect(version).toBe('8.9-rc-1')
|
||||
})
|
||||
|
||||
it('milestone version', async () => {
|
||||
const output = `
|
||||
------------------------------------------------------------
|
||||
Gradle 8.0-milestone-6
|
||||
------------------------------------------------------------
|
||||
`
|
||||
const version = await parseGradleVersionFromOutput(output)!
|
||||
expect(version).toBe('8.0-milestone-6')
|
||||
})
|
||||
|
||||
it('snapshot version', async () => {
|
||||
const output = `
|
||||
------------------------------------------------------------
|
||||
Gradle 8.10.2-20240828012138+0000
|
||||
------------------------------------------------------------
|
||||
`
|
||||
const version = await parseGradleVersionFromOutput(output)!
|
||||
expect(version).toBe('8.10.2-20240828012138+0000')
|
||||
})
|
||||
|
||||
it('branch version', async () => {
|
||||
const output = `
|
||||
------------------------------------------------------------
|
||||
Gradle 9.0-branch-provider_api_migration_public_api_changes-20240830060514+0000
|
||||
------------------------------------------------------------
|
||||
`
|
||||
const version = await parseGradleVersionFromOutput(output)!
|
||||
expect(version).toBe('9.0-branch-provider_api_migration_public_api_changes-20240830060514+0000')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user