setup-java icon indicating copy to clipboard operation
setup-java copied to clipboard

[WINDOWS SELF-HOSTED] Issues with "extracting" non .zip files

Open darkwolfie37 opened this issue 1 year ago • 16 comments

Description: when using a selfHosted runner on github The Windows machine will fail to install java due to powershell not liking non .zip files

image

Task version: Specify the task version

Platform:

  • [ ] Ubuntu
  • [ ] macOS
  • [x] Windows

Runner type:

  • [ ] Hosted
  • [x] Self-hosted

Repro steps:
Make a fabric minecraft mod template, add a selfhosted runner to a private or public repo on github. upload the code changing the build to run on a self-hosted box, then watch as it fails.

Video of rerun showing issue: https://file.io/sk4EnEGMViVD

Expected behavior: Installed Java and Moves on to build the fabric mod

Actual behavior: Fails to install java due to powershell limits.

darkwolfie37 avatar Dec 05 '23 02:12 darkwolfie37

Hi, @darkwolfie37 👋 Thanks for the issue, we will take a look at it!

IvanZosimov avatar Dec 05 '23 07:12 IvanZosimov

Hi, @darkwolfie37 it seems that to resolve you problem you need to rename downloaded JDK archive to this pattern: nameOfJdk.zip. After that the powershell will be able to extract this archive correctly. Another solution is to install a newer version of PowerShell (so called PowerShell Core).

IvanZosimov avatar Dec 27 '23 11:12 IvanZosimov

Hi, @darkwolfie37 it seems that to resolve you problem you need to rename downloaded JDK archive to this pattern: nameOfJdk.zip. After that the powershell will be able to extract this archive correctly. Another solution is to install a newer version of PowerShell (so called PowerShell Core).

Ok so I need to somehow edit your scripts to use powershell core or other software to make it work? Just make your script to have it download to a zip. Not my problem.

darkwolfie37 avatar Jan 01 '24 09:01 darkwolfie37

As this seems to gone dark, I am posting this as a "bump".

darkwolfie37 avatar Jan 29 '24 10:01 darkwolfie37

Even after installing powershell 7, the action still uses the older powershell. Powershell 7 installer seems to be designed so that it does not replace older versions, but both versions can co-exist. Both are added to the PATH but they have different exe file names.

Older Powershell.exe is here: C:\Windows\System32\WindowsPowerShell\v1.0

Newer Powershell is called pwsh.exe and is installed here: C:\Program Files\PowerShell\7

I'd love to get this working. Is there any way I can tell it to use pwsh.exe instead of "powershell.exe" ?

ed-erwin-tf avatar Feb 15 '24 01:02 ed-erwin-tf

Even after installing powershell 7, the action still uses the older powershell. Powershell 7 installer seems to be designed so that it does not replace older versions, but both versions can co-exist. Both are added to the PATH but they have different exe file names.

Older Powershell.exe is here: C:\Windows\System32\WindowsPowerShell\v1.0

Newer Powershell is called pwsh.exe and is installed here: C:\Program Files\PowerShell\7

I'd love to get this working. Is there any way I can tell it to use pwsh.exe instead of "powershell.exe" ?

I wish, but they have said that its a windows issue instead of their issue which makes them very incompetent to do this job. Like srsly, I brought a real issue to these people then they have the audacity to just Ghost this issue after now. Honestly kinda just not going to use their action anymore and build my minecraft mods manually.

darkwolfie37 avatar Feb 15 '24 06:02 darkwolfie37

Hi, @darkwolfie37 it seems that to resolve you problem you need to rename downloaded JDK archive to this pattern: nameOfJdk.zip. After that the powershell will be able to extract this archive correctly.

The downloaded file in this case already does end with the ".zip" filename. It seems that this action is re-naming it to /_work/_tmp/hashcode before trying to uncompress it.

If the action would include the ".zip" extension on the end of the hashcode filename, then I expect it would work correctly.

ed-erwin-tf avatar Feb 16 '24 00:02 ed-erwin-tf

Hi, @darkwolfie37 it seems that to resolve you problem you need to rename downloaded JDK archive to this pattern: nameOfJdk.zip. After that the powershell will be able to extract this archive correctly.

The downloaded file in this case already does end with the ".zip" filename. It seems that this action is re-naming it to /_work/_tmp/hashcode before trying to uncompress it.

If the action would include the ".zip" extension on the end of the hashcode filename, then I expect it would work correctly.

Agreed! This is why I made this issue as it wont open till the code renames it to a .zip. Instead I was told to rename it manually when you cant because it deletes the file so fast after failing lol

darkwolfie37 avatar Feb 16 '24 00:02 darkwolfie37

I have the same issue and have alignment with @darkwolfie37

Any chance of having this issue considered for resolution?

I have tried all the above and have no success

milan-alphaM avatar Sep 14 '24 20:09 milan-alphaM

I forgot that this issue was open LOL

darkwolfie37 avatar Sep 15 '24 05:09 darkwolfie37

Hello 👋, 
 Apologies for the delayed response. To assist in resolving this issue, could you please provide the following details:

  • The architecture of your self-hosted runner.
  • The configuration details of the actions/setup-java step in your workflow.

Thank you!

priyagupta108 avatar Sep 18 '24 08:09 priyagupta108

Dear Priya,

Many thanks for reaching out.

The details that you have requested are as follows:

  • The architecture of your self-hosted runner. ----- windows 10 pro x64
  • The configuration details of the actions/setup-java step in your workflow ---- this basically gets a specific java image:

uses: @.*** with: java-version: 21 check-latest: true distribution: temurin cache: 'gradle'

On Wed, 18 Sept 2024 at 09:53, Priya Gupta @.***> wrote:

Hello 👋, Apologies for the delayed response. To assist in resolving this issue, could you please provide the following details:

  • The architecture of your self-hosted runner.
  • The configuration details of the actions/setup-java step in your workflow.

Thank you!

— Reply to this email directly, view it on GitHub https://github.com/actions/setup-java/issues/563#issuecomment-2357880917, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJQRGHTHX72M754ICQJMMC3ZXE5PRAVCNFSM6AAAAABAG5XPG6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJXHA4DAOJRG4 . You are receiving this because you commented.Message ID: @.***>

milan-alphaM avatar Sep 18 '24 12:09 milan-alphaM

Priya, Thanks for looking into this.

Windows 10 Enterprise, 64 bit

Here is my script:

name: Test of downloading corretto with actions/setup-java@v4

on:
  workflow_dispatch:

jobs:
  build:

    runs-on: [ self-hosted, my-machine-name ]

    steps:

    - name: Setup Java Corretto
      uses: actions/setup-java@v4
      with:
        distribution: 'corretto'
        java-version: '11'
        # tried overwrite-settings: false  and also true.
        overwrite-settings: true
        check-latest: true
        cache: maven

    - name: Check java version
      shell: cmd
      run: java -version

I tried this first with overwrite-settings: false. In that case it seems to not download the new corretto version.

Then I tried with overwrite-settings: true (which is the default). In this case, it does download the latest version of corretto and uses it in later steps, so that is basically working now.

However, overwriting settings.xml is something I do NOT want. It is removing important stuff that I need in that file!

But it seems to have a problem in the final clean-up step:

Post job cleanup.
"C:\Program Files\Git\usr\bin\tar.exe" --posix -cf cache.tgz --exclude cache.tgz -P -C C:/actions-runner/_work/MySecretLocation --files-from manifest.txt --force-local -z
/bin/sh: line 1: gzip: command not found
/usr/bin/tar: cache.tgz: Cannot write: Broken pipe
/usr/bin/tar: Child returned status 127
/usr/bin/tar: Error is not recoverable: exiting now
Warning: Failed to save: "C:\Program failed with error: The process 'C:\Program Files\Git\usr\bin\tar.exe' failed with exit code 2
Cache saved with the key: setup-java-Windows-maven-794f5fa9da.......

Note that it is saying "gzip: command not found". But gzip.exe does exist in the directory "C:\Program Files\Git\usr\bin\tar.exe" which is where the "tar.exe" command also lives.

Even though it says "cache saved", nothing with the given name is saved in the maven cache.

ed-erwin-tf avatar Sep 18 '24 22:09 ed-erwin-tf

Another anoying thing that is happening is that ever time I run the action, it writes additional redundant information in to the maven toolchains.xml file.

  <toolchain>
    <type>jdk</type>
    <provides>
      <version>11</version>
      <vendor>corretto</vendor>
      <id>corretto_11</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Corretto_jdk\11.0.24-8.1\x64</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>11</version>
      <vendor>corretto</vendor>
      <id>corretto_11</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Corretto_jdk\11.0.24-8.1\x64</jdkHome>
    </configuration>
  </toolchain>

It just adds that info over and over and over! Possibly caused by failure earlier in the script? Anyway, this is more of an annoyance than any real problem.

ed-erwin-tf avatar Sep 18 '24 22:09 ed-erwin-tf

After going through testing today to add to this bug, I realize I am no longer having the same issue as the original poster:

Description:
when using a selfHosted runner on github The Windows machine will fail to install java due to powershell not liking non .zip files

That is not happening to me. The action seems to be working fine if I don't try to use caching. And If I set "overwrite-settings: false" then I don't have any problem with overwriting my settings. So, for me at least, the original problem is gone and I can use this action.

ed-erwin-tf avatar Sep 18 '24 23:09 ed-erwin-tf

Hello 👋, 
 Apologies for the delayed response. To assist in resolving this issue, could you please provide the following details:

  • The architecture of your self-hosted runner.
  • The configuration details of the actions/setup-java step in your workflow.

Thank you!

I will have to resetup my configs for this and I will get back to you

darkwolfie37 avatar Sep 21 '24 06:09 darkwolfie37

  • The architecture of your self-hosted runner. ----- windows 10 pro x64
  • The configuration details of the actions/setup-java step in your workflow ---- this basically gets a specific java image:

uses: @.*** with: java-version: 21 check-latest: true distribution: temurin cache: 'gradle'

On Sat, 21 Sept 2024 at 07:52, DarkWolfie @.***> wrote:

Hello 👋, Apologies for the delayed response. To assist in resolving this issue, could you please provide the following details:

  • The architecture of your self-hosted runner.
  • The configuration details of the actions/setup-java step in your workflow.

Thank you!

I will have to resetup my configs for this and I will get back to you

— Reply to this email directly, view it on GitHub https://github.com/actions/setup-java/issues/563#issuecomment-2365032579, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJQRGHQXYSMMCEMB7SHGKFLZXUJS3AVCNFSM6AAAAABAG5XPG6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRVGAZTENJXHE . You are receiving this because you commented.Message ID: @.***>

milan-alphaM avatar Oct 03 '24 13:10 milan-alphaM