Compare commits

..

4 Commits

Author SHA1 Message Date
dependabot[bot]
4b336f1085 Bump prettier from 2.8.8 to 3.6.2
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.6.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.6.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 04:21:16 +00:00
Priya Gupta
67aec007b3 Fix: prevent default installation of JetBrains pre-releases (#859)
* fix: prevent default installation of JetBrains pre-releases

* simplify prerelease filter logic

* fix basic validation checks
2025-07-03 12:03:51 -05:00
gowridurgad
ebb356cc4e Improve Error Handling for Setup-Java Action to Help Debug Intermittent Failures (#848)
* error-handling

* Logic update

---------

Co-authored-by: “gowridurgad” <“hgowridurgad@github.com>
2025-06-23 12:32:03 -05:00
Haritha
f4f1212c88 Update publish-immutable-actions.yml (#798) 2025-04-16 11:13:56 -05:00
8 changed files with 1554 additions and 1490 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -41,9 +41,7 @@ describe('getAvailableVersions', () => {
expect(availableVersions).not.toBeNull(); expect(availableVersions).not.toBeNull();
const length = const length =
os.platform() === 'win32' os.platform() === 'win32' ? manifestData.length : manifestData.length + 2;
? manifestData.length - 1
: manifestData.length + 1;
expect(availableVersions.length).toBe(length); expect(availableVersions.length).toBe(length);
}, 10_000); }, 10_000);
}); });

56
dist/setup/index.js vendored
View File

@@ -128793,15 +128793,38 @@ class JavaBase {
} }
else { else {
core.info('Trying to resolve the latest version from remote'); core.info('Trying to resolve the latest version from remote');
const javaRelease = yield this.findPackageForDownload(this.version); try {
core.info(`Resolved latest version as ${javaRelease.version}`); const javaRelease = yield this.findPackageForDownload(this.version);
if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) { core.info(`Resolved latest version as ${javaRelease.version}`);
core.info(`Resolved Java ${foundJava.version} from tool-cache`); if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) {
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
}
else {
core.info('Trying to download...');
foundJava = yield this.downloadTool(javaRelease);
core.info(`Java ${foundJava.version} was downloaded`);
}
} }
else { catch (error) {
core.info('Trying to download...'); if (error instanceof tc.HTTPError) {
foundJava = yield this.downloadTool(javaRelease); if (error.httpStatusCode === 403) {
core.info(`Java ${foundJava.version} was downloaded`); core.error('HTTP 403: Permission denied or access restricted.');
}
else if (error.httpStatusCode === 429) {
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
}
else {
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
}
}
else {
const message = error instanceof Error ? error.message : JSON.stringify(error);
core.error(`Java setup failed due to network issue or timeout: ${message}`);
}
if (error instanceof Error && error.stack) {
core.debug(error.stack);
}
throw error;
} }
} }
// JDK folder may contain postfix "Contents/Home" on macOS // JDK folder may contain postfix "Contents/Home" on macOS
@@ -129672,7 +129695,12 @@ class JetBrainsDistribution extends base_installer_1.JavaBase {
// url is identical except page_index so print it once for debug // url is identical except page_index so print it once for debug
core.debug(`Gathering available versions from '${rawUrl}'`); core.debug(`Gathering available versions from '${rawUrl}'`);
} }
const paginationPage = (yield this.http.getJson(rawUrl, requestHeaders)).result; const paginationPageResult = (yield this.http.getJson(rawUrl, requestHeaders)).result;
if (!paginationPageResult || paginationPageResult.length === 0) {
// break infinity loop because we have reached end of pagination
break;
}
const paginationPage = paginationPageResult.filter(version => this.stable ? !version.prerelease : version.prerelease);
if (!paginationPage || paginationPage.length === 0) { if (!paginationPage || paginationPage.length === 0) {
// break infinity loop because we have reached end of pagination // break infinity loop because we have reached end of pagination
break; break;
@@ -129680,9 +129708,11 @@ class JetBrainsDistribution extends base_installer_1.JavaBase {
rawVersions.push(...paginationPage); rawVersions.push(...paginationPage);
page_index++; page_index++;
} }
// Add versions not available from the API but are downloadable if (this.stable) {
const hidden = ['11_0_10b1145.115', '11_0_11b1341.60']; // Add versions not available from the API but are downloadable
rawVersions.push(...hidden.map(tag => ({ tag_name: tag, name: tag }))); const hidden = ['11_0_10b1145.115', '11_0_11b1341.60'];
rawVersions.push(...hidden.map(tag => ({ tag_name: tag, name: tag, prerelease: false })));
}
const versions0 = rawVersions.map((v) => __awaiter(this, void 0, void 0, function* () { const versions0 = rawVersions.map((v) => __awaiter(this, void 0, void 0, function* () {
var _a; var _a;
// Release tags look like one of these: // Release tags look like one of these:
@@ -129701,7 +129731,7 @@ class JetBrainsDistribution extends base_installer_1.JavaBase {
.replace('-', ''); .replace('-', '');
const vsplit = vstring.split('b'); const vsplit = vstring.split('b');
let semver = vsplit[0]; let semver = vsplit[0];
const build = +vsplit[1]; const build = vsplit[1];
// Normalize semver // Normalize semver
if (!semver.includes('.') && !semver.includes('_')) if (!semver.includes('.') && !semver.includes('_'))
semver = `${semver}.0.0`; semver = `${semver}.0.0`;

12
package-lock.json generated
View File

@@ -32,7 +32,7 @@
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-circus": "^29.7.0", "jest-circus": "^29.7.0",
"prettier": "^2.8.4", "prettier": "^3.6.2",
"ts-jest": "^29.3.0", "ts-jest": "^29.3.0",
"typescript": "^5.3.3" "typescript": "^5.3.3"
} }
@@ -4719,15 +4719,15 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.8.8", "version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin-prettier.js" "prettier": "bin/prettier.cjs"
}, },
"engines": { "engines": {
"node": ">=10.13.0" "node": ">=14"
}, },
"funding": { "funding": {
"url": "https://github.com/prettier/prettier?sponsor=1" "url": "https://github.com/prettier/prettier?sponsor=1"

View File

@@ -49,7 +49,7 @@
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-circus": "^29.7.0", "jest-circus": "^29.7.0",
"prettier": "^2.8.4", "prettier": "^3.6.2",
"ts-jest": "^29.3.0", "ts-jest": "^29.3.0",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },

View File

@@ -51,14 +51,36 @@ export abstract class JavaBase {
core.info(`Resolved Java ${foundJava.version} from tool-cache`); core.info(`Resolved Java ${foundJava.version} from tool-cache`);
} else { } else {
core.info('Trying to resolve the latest version from remote'); core.info('Trying to resolve the latest version from remote');
const javaRelease = await this.findPackageForDownload(this.version); try {
core.info(`Resolved latest version as ${javaRelease.version}`); const javaRelease = await this.findPackageForDownload(this.version);
if (foundJava?.version === javaRelease.version) { core.info(`Resolved latest version as ${javaRelease.version}`);
core.info(`Resolved Java ${foundJava.version} from tool-cache`); if (foundJava?.version === javaRelease.version) {
} else { core.info(`Resolved Java ${foundJava.version} from tool-cache`);
core.info('Trying to download...'); } else {
foundJava = await this.downloadTool(javaRelease); core.info('Trying to download...');
core.info(`Java ${foundJava.version} was downloaded`); foundJava = await this.downloadTool(javaRelease);
core.info(`Java ${foundJava.version} was downloaded`);
}
} catch (error: any) {
if (error instanceof tc.HTTPError) {
if (error.httpStatusCode === 403) {
core.error('HTTP 403: Permission denied or access restricted.');
} else if (error.httpStatusCode === 429) {
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
} else {
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
}
} else {
const message =
error instanceof Error ? error.message : JSON.stringify(error);
core.error(
`Java setup failed due to network issue or timeout: ${message}`
);
}
if (error instanceof Error && error.stack) {
core.debug(error.stack);
}
throw error;
} }
} }

View File

@@ -113,9 +113,18 @@ export class JetBrainsDistribution extends JavaBase {
core.debug(`Gathering available versions from '${rawUrl}'`); core.debug(`Gathering available versions from '${rawUrl}'`);
} }
const paginationPage = ( const paginationPageResult = (
await this.http.getJson<IJetBrainsRawVersion[]>(rawUrl, requestHeaders) await this.http.getJson<IJetBrainsRawVersion[]>(rawUrl, requestHeaders)
).result; ).result;
if (!paginationPageResult || paginationPageResult.length === 0) {
// break infinity loop because we have reached end of pagination
break;
}
const paginationPage: IJetBrainsRawVersion[] =
paginationPageResult.filter(version =>
this.stable ? !version.prerelease : version.prerelease
);
if (!paginationPage || paginationPage.length === 0) { if (!paginationPage || paginationPage.length === 0) {
// break infinity loop because we have reached end of pagination // break infinity loop because we have reached end of pagination
break; break;
@@ -125,9 +134,13 @@ export class JetBrainsDistribution extends JavaBase {
page_index++; page_index++;
} }
// Add versions not available from the API but are downloadable if (this.stable) {
const hidden = ['11_0_10b1145.115', '11_0_11b1341.60']; // Add versions not available from the API but are downloadable
rawVersions.push(...hidden.map(tag => ({tag_name: tag, name: tag}))); const hidden = ['11_0_10b1145.115', '11_0_11b1341.60'];
rawVersions.push(
...hidden.map(tag => ({tag_name: tag, name: tag, prerelease: false}))
);
}
const versions0 = rawVersions.map(async v => { const versions0 = rawVersions.map(async v => {
// Release tags look like one of these: // Release tags look like one of these:
@@ -148,7 +161,7 @@ export class JetBrainsDistribution extends JavaBase {
const vsplit = vstring.split('b'); const vsplit = vstring.split('b');
let semver = vsplit[0]; let semver = vsplit[0];
const build = +vsplit[1]; const build = vsplit[1];
// Normalize semver // Normalize semver
if (!semver.includes('.') && !semver.includes('_')) if (!semver.includes('.') && !semver.includes('_'))

View File

@@ -3,11 +3,12 @@
export interface IJetBrainsRawVersion { export interface IJetBrainsRawVersion {
tag_name: string; tag_name: string;
name: string; name: string;
prerelease: boolean;
} }
export interface IJetBrainsVersion { export interface IJetBrainsVersion {
tag_name: string; tag_name: string;
semver: string; semver: string;
build: number; build: string;
url: string; url: string;
} }