Compare commits

..
Author SHA1 Message Date
Priyagupta108 2e45750012 Test macos-14-large x64 runner 2025-07-30 14:51:48 +05:30
dependabot[bot]andHarithaVattikuti ae2b61dbc6 Bump undici from 5.28.5 to 5.29.0 (#833)
* Bump undici from 5.28.5 to 5.29.0

Bumps [undici](https://github.com/nodejs/undici) from 5.28.5 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.5...v5.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 5.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix CI failures

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: HarithaVattikuti <73516759+HarithaVattikuti@users.noreply.github.com>
2025-07-15 12:32:37 -05:00
dependabot[bot]andHarithaVattikuti c190c18feb Bump eslint-plugin-jest from 27.9.0 to 29.0.1 (#730)
* Bump eslint-plugin-jest from 27.9.0 to 29.0.1

Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.9.0 to 28.11.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.9.0...v28.11.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix failures

* Fix lint error

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: HarithaVattikuti <73516759+HarithaVattikuti@users.noreply.github.com>
2025-07-07 13:51:25 -05: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
gowridurgadand“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
33 changed files with 2135 additions and 4410 deletions
@@ -30,7 +30,7 @@ jobs:
id: setup-java id: setup-java
with: with:
distribution: 'adopt' distribution: 'adopt'
java-version: '17' java-version: '11'
cache: gradle cache: gradle
cache-dependency-path: __tests__/cache/gradle1/*.gradle* cache-dependency-path: __tests__/cache/gradle1/*.gradle*
- name: Create files to cache - name: Create files to cache
@@ -57,7 +57,7 @@ jobs:
id: setup-java id: setup-java
with: with:
distribution: 'adopt' distribution: 'adopt'
java-version: '17' java-version: '11'
cache: gradle cache: gradle
cache-dependency-path: __tests__/cache/gradle1/*.gradle* cache-dependency-path: __tests__/cache/gradle1/*.gradle*
- name: Confirm that ~/.gradle/caches directory has been made - name: Confirm that ~/.gradle/caches directory has been made
@@ -82,7 +82,7 @@ jobs:
id: setup-java id: setup-java
with: with:
distribution: 'adopt' distribution: 'adopt'
java-version: '17' java-version: '11'
cache: gradle cache: gradle
cache-dependency-path: __tests__/cache/gradle2/*.gradle* cache-dependency-path: __tests__/cache/gradle2/*.gradle*
- name: Confirm that ~/.gradle/caches directory has not been made - name: Confirm that ~/.gradle/caches directory has not been made
+11 -11
View File
@@ -3,7 +3,7 @@ name: Validate cache
on: on:
push: push:
branches: branches:
- main - test-macos-x64-runner
- releases/* - releases/*
paths-ignore: paths-ignore:
- '**.md' - '**.md'
@@ -21,7 +21,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -30,7 +30,7 @@ jobs:
id: setup-java id: setup-java
with: with:
distribution: 'adopt' distribution: 'adopt'
java-version: '17' java-version: '11'
cache: gradle cache: gradle
- name: Create files to cache - name: Create files to cache
# Need to avoid using Gradle daemon to stabilize the save process on Windows # Need to avoid using Gradle daemon to stabilize the save process on Windows
@@ -46,7 +46,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
needs: gradle-save needs: gradle-save
steps: steps:
- name: Checkout - name: Checkout
@@ -70,7 +70,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -93,7 +93,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
needs: maven-save needs: maven-save
steps: steps:
- name: Checkout - name: Checkout
@@ -121,7 +121,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-22.04] os: [macos-14-large]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -133,7 +133,7 @@ jobs:
java-version: '11' java-version: '11'
cache: sbt cache: sbt
- name: Setup SBT - name: Setup SBT
if: matrix.os == 'macos-13' if: matrix.os == 'macos-14-large'
run: | run: |
echo ""Installing SBT..."" echo ""Installing SBT...""
brew install sbt brew install sbt
@@ -141,7 +141,7 @@ jobs:
run: sbt update run: sbt update
- name: Check files to cache on macos-latest - name: Check files to cache on macos-latest
if: matrix.os == 'macos-13' if: matrix.os == 'macos-14-large'
run: | run: |
if [ ! -d ~/Library/Caches/Coursier ]; then if [ ! -d ~/Library/Caches/Coursier ]; then
echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly"
@@ -170,7 +170,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-22.04] os: [macos-14-large]
needs: sbt-save needs: sbt-save
steps: steps:
- name: Checkout - name: Checkout
@@ -184,7 +184,7 @@ jobs:
cache: sbt cache: sbt
- name: Confirm that ~/Library/Caches/Coursier directory has been made - name: Confirm that ~/Library/Caches/Coursier directory has been made
if: matrix.os == 'macos-13' if: matrix.os == 'macos-14-large'
run: | run: |
if [ ! -d ~/Library/Caches/Coursier ]; then if [ ! -d ~/Library/Caches/Coursier ]; then
echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly"
+6 -6
View File
@@ -3,7 +3,7 @@ name: Validate Java e2e
on: on:
push: push:
branches: branches:
- main - test-macos-x64-runner
- releases/* - releases/*
paths-ignore: paths-ignore:
- '**.md' - '**.md'
@@ -20,7 +20,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
distribution: [ distribution: [
'temurin', 'temurin',
'adopt', 'adopt',
@@ -39,10 +39,10 @@ jobs:
- distribution: microsoft - distribution: microsoft
version: 8 version: 8
- distribution: dragonwell - distribution: dragonwell
os: macos-13 os: macos-14-large
include: include:
- distribution: oracle - distribution: oracle
os: macos-13 os: macos-14-large
version: 17 version: 17
- distribution: oracle - distribution: oracle
os: windows-latest os: windows-latest
@@ -220,7 +220,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
version: ['17-ea', '15.0.0-ea.14'] version: ['17-ea', '15.0.0-ea.14']
steps: steps:
- name: Checkout - name: Checkout
@@ -286,7 +286,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-13, windows-latest, ubuntu-latest] os: [macos-14-large]
distribution: distribution:
['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains'] ['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains']
java-package: ['jre'] java-package: ['jre']
@@ -2,7 +2,8 @@ name: 'Publish Immutable Action Version'
on: on:
release: release:
types: [published] types: [released]
workflow_dispatch:
jobs: jobs:
publish: publish:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1453 -1453
View File
File diff suppressed because it is too large Load Diff
@@ -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);
}); });
+153 -1223
View File
File diff suppressed because it is too large Load Diff
+199 -1239
View File
File diff suppressed because it is too large Load Diff
+249 -451
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -40,12 +40,12 @@
"@types/jest": "^29.5.14", "@types/jest": "^29.5.14",
"@types/node": "^20.11.24", "@types/node": "^20.11.24",
"@types/semver": "^7.5.8", "@types/semver": "^7.5.8",
"@typescript-eslint/eslint-plugin": "^5.54.0", "@typescript-eslint/eslint-plugin": "^8.35.1",
"@typescript-eslint/parser": "^5.54.0", "@typescript-eslint/parser": "^8.35.1",
"@vercel/ncc": "^0.38.1", "@vercel/ncc": "^0.38.1",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-prettier": "^8.6.0", "eslint-config-prettier": "^8.6.0",
"eslint-plugin-jest": "^27.9.0", "eslint-plugin-jest": "^29.0.1",
"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",
+30 -8
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;
} }
} }
+18 -5
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('_'))
+2 -1
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;
} }
+1 -1
View File
@@ -116,7 +116,7 @@ export class MicrosoftDistributions extends JavaBase {
} }
} catch (err) { } catch (err) {
core.debug( core.debug(
`Http request for microsoft-openjdk-versions.json failed with status code: ${response?.statusCode}` `Http request for microsoft-openjdk-versions.json failed with status code: ${response?.statusCode}. Error: ${err}`
); );
return null; return null;
} }
+4 -2
View File
@@ -8,6 +8,7 @@ import {
convertVersionToSemver, convertVersionToSemver,
extractJdkFile, extractJdkFile,
getDownloadArchiveExtension, getDownloadArchiveExtension,
getGitHubHttpHeaders,
isVersionSatisfies, isVersionSatisfies,
renameWinArchive renameWinArchive
} from '../../util'; } from '../../util';
@@ -63,12 +64,13 @@ export class SapMachineDistribution extends JavaBase {
const arch = this.distributionArchitecture(); const arch = this.distributionArchitecture();
let fetchedReleasesJson = await this.fetchReleasesFromUrl( let fetchedReleasesJson = await this.fetchReleasesFromUrl(
'https://sapmachine.io/assets/data/sapmachine-releases-all.json' 'https://sap.github.io/SapMachine/assets/data/sapmachine-releases-all.json'
); );
if (!fetchedReleasesJson) { if (!fetchedReleasesJson) {
fetchedReleasesJson = await this.fetchReleasesFromUrl( fetchedReleasesJson = await this.fetchReleasesFromUrl(
'https://sap.github.io/SapMachine/assets/data/sapmachine-releases-all.json' 'https://api.github.com/repos/SAP/SapMachine/contents/assets/data/sapmachine-releases-all.json?ref=gh-pages',
getGitHubHttpHeaders()
); );
} }