actions / setup-java

Set up your GitHub Actions workflow with a specific version of Java
MIT License
1.48k stars 718 forks source link

IBM Semeru fails to install ARM64 build: Unsupported architecture for IBM Semeru: arm64, the following are supported: x64, x86, ppc64le, ppc64, s390x, aarch64 #559

Open vlsi opened 7 months ago

vlsi commented 7 months ago

Description:

The action fails to install Semeru arm64.

I guess the installer should use .distributionArchitecture() instead of .architecture: https://github.com/actions/setup-java/blob/9eda6b51cc4f6ee99be3dd5537b85e389e47bda9/src/distributions/semeru/installer.ts#L36C47-L36C59

For example, Microsoft installer uses .distributionArchitecture(): https://github.com/actions/setup-java/blob/9eda6b51cc4f6ee99be3dd5537b85e389e47bda9/src/distributions/microsoft/installer.ts#L51

Run actions/setup-java@v3
  with:
    java-version: 17
  17

    distribution: semeru
    java-package: jdk
    check-latest: false
    server-id: github
    server-username: GITHUB_ACTOR
    server-password: GITHUB_TOKEN
    overwrite-settings: true
    job-status: success
    token: ***
  env:
    ACTIONS_STEP_DEBUG: true
    ACTIONS_RUNNER_DEBUG: true
    TZ: UTC
Installed distributions
  Trying to resolve the latest version from remote
  Error: Unsupported architecture for IBM Semeru: arm64, the following are supported: x64, x86, ppc64le, ppc64, s[3](https://github.com/pgjdbc/pgjdbc/actions/runs/7002337194/job/19045932738#step:4:3)90x, aarch6[4](https://github.com/pgjdbc/pgjdbc/actions/runs/7002337194/job/19045932738#step:4:4)

Task version:

Download action repository 'actions/setup-java@v3' (SHA:0ab4596768b603586c0de567f2430c30f5b0d2b0)

Platform:

Runner type:

Expected behavior:

JDK should install.

Actual behavior:

Resolution fails with Unsupported architecture for IBM Semeru: arm64, the following are supported: x64, x86, ppc64le, ppc64, s390x, aarch64

IvanZosimov commented 7 months ago

Hi, @vlsi 👋 Thanks for the issue, we will take a look!

IvanZosimov commented 7 months ago

@vlsi, actually, Semeru supports only these types of architectures: x64, x86, ppc64le, ppc64, s390x, aarch64. You can check it on their official web-site: https://developer.ibm.com/languages/java/semeru-runtimes/downloads/. I think that in your case, you may use aarch64 which is basically the same as arm64. I'm closing this issue now, if you have any additional questions feel free to reach out.

vlsi commented 7 months ago

@IvanZosimov , could you please double-check?

The issue is that setup-java action attetempts to use arm64 by default. In other words: the documentation for actions/setup-java reads that the default architecture is derived from the runner machine.

In practice, actions/setup-java fails if running at arm64 machine and installing semeru.

The root cause is that nodejs returns arm64 while the action misses to treat it as aarch64.

vlsi commented 7 months ago

@IvanZosimov , check this: https://github.com/actions/setup-java/blob/9eda6b51cc4f6ee99be3dd5537b85e389e47bda9/src/distributions/microsoft/installer.ts#L51-L52 microsoft/installer.ts uses this.distributionArchitecture() which makes arm64 -> aarch64 conversion: https://github.com/actions/setup-java/blob/9eda6b51cc4f6ee99be3dd5537b85e389e47bda9/src/distributions/base-installer.ts#L190-L191

The conversion is missing in semeru/installer.ts, so it causes semeru installation failure.

IvanZosimov commented 7 months ago

Thanks for clarification, @vlsi I'll check that and get back to you with updates.

robstoll commented 2 months ago

@IvanZosimov any update on this? still occurs today