|
10 | 10 | platforms: |
11 | 11 | description:"Platform(s) to execute on" |
12 | 12 | required:true |
13 | | -default:"Linux additional (hotspot only), Linux x64, Linux x86, Windows x64, macOS x64" |
| 13 | +default:"Linux additional (hotspot only), Linux x64, Linux x86, Windowsaarch64, Windowsx64, macOS x64" |
14 | 14 |
|
15 | 15 | jobs: |
16 | 16 | prerequisites: |
|
22 | 22 | platform_linux_additional:${{ steps.check_platforms.outputs.platform_linux_additional }} |
23 | 23 | platform_linux_x64:${{ steps.check_platforms.outputs.platform_linux_x64 }} |
24 | 24 | platform_linux_x86:${{ steps.check_platforms.outputs.platform_linux_x86 }} |
| 25 | +platform_windows_aarch64:${{ steps.check_platforms.outputs.platform_windows_aarch64 }} |
25 | 26 | platform_windows_x64:${{ steps.check_platforms.outputs.platform_windows_x64 }} |
26 | 27 | platform_macos_x64:${{ steps.check_platforms.outputs.platform_macos_x64 }} |
27 | 28 | platform_macos_aarch64:${{ steps.check_platforms.outputs.platform_macos_aarch64 }} |
|
38 | 39 | echo "::set-output name=platform_linux_additional::${{ contains(github.event.inputs.platforms, 'linux additional (hotspot only)') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux additional (hotspot only)'))) }}" |
39 | 40 | echo "::set-output name=platform_linux_x64::${{ contains(github.event.inputs.platforms, 'linux x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x64'))) }}" |
40 | 41 | echo "::set-output name=platform_linux_x86::${{ contains(github.event.inputs.platforms, 'linux x86') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x86'))) }}" |
| 42 | + echo "::set-output name=platform_windows_aarch64::${{ contains(github.event.inputs.platforms, 'windows aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows aarch64'))) }}" |
41 | 43 | echo "::set-output name=platform_windows_x64::${{ contains(github.event.inputs.platforms, 'windows x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows x64'))) }}" |
42 | 44 | echo "::set-output name=platform_macos_x64::${{ contains(github.event.inputs.platforms, 'macos x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos x64'))) }}" |
43 | 45 | echo "::set-output name=platform_macos_aarch64::${{ contains(github.event.inputs.platforms, 'macos aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos aarch64'))) }}" |
@@ -847,6 +849,94 @@ jobs: |
847 | 849 | path:~/linux-x86${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip |
848 | 850 | continue-on-error:true |
849 | 851 |
|
| 852 | +windows_aarch64_build: |
| 853 | +name:Windows aarch64 |
| 854 | +runs-on:"windows-2019" |
| 855 | +needs:prerequisites |
| 856 | +if:needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_windows_aarch64 != 'false' |
| 857 | + |
| 858 | +strategy: |
| 859 | +fail-fast:false |
| 860 | +matrix: |
| 861 | +flavor: |
| 862 | + -build debug |
| 863 | +include: |
| 864 | + -flavor:build debug |
| 865 | +flags:--enable-debug |
| 866 | +artifact:-debug |
| 867 | + |
| 868 | +env: |
| 869 | +JDK_VERSION:"${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}" |
| 870 | +BOOT_JDK_VERSION:"${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}" |
| 871 | +BOOT_JDK_FILENAME:"${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_FILENAME }}" |
| 872 | +BOOT_JDK_URL:"${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_URL }}" |
| 873 | +BOOT_JDK_SHA256:"${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_SHA256 }}" |
| 874 | + |
| 875 | +steps: |
| 876 | + -name:Restore cygwin packages from cache |
| 877 | +id:cygwin |
| 878 | +uses:actions/cache@v2 |
| 879 | +with: |
| 880 | +path:~/cygwin/packages |
| 881 | +key:cygwin-packages-${{ runner.os }}-v1 |
| 882 | + |
| 883 | + -name:Install cygwin |
| 884 | +run:| |
| 885 | + New-Item -Force -ItemType directory -Path "$HOME\cygwin" |
| 886 | + & curl -L "https://www.cygwin.com/setup-x86_64.exe" -o "$HOME/cygwin/setup-x86_64.exe" |
| 887 | + Start-Process -FilePath "$HOME\cygwin\setup-x86_64.exe" -ArgumentList "--quiet-mode --packages autoconf,make,zip,unzip --root $HOME\cygwin\cygwin64 --local-package-dir $HOME\cygwin\packages --site http://mirrors.kernel.org/sourceware/cygwin --no-desktop --no-shortcuts --no-startmenu --no-admin" -Wait -NoNewWindow |
| 888 | +
|
| 889 | + -name:Checkout the source |
| 890 | +uses:actions/checkout@v2 |
| 891 | +with: |
| 892 | +path:jdk |
| 893 | + |
| 894 | + -name:Restore boot JDK from cache |
| 895 | +id:bootjdk |
| 896 | +uses:actions/cache@v2 |
| 897 | +with: |
| 898 | +path:~/bootjdk/${{ env.BOOT_JDK_VERSION }} |
| 899 | +key:bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1 |
| 900 | + |
| 901 | + -name:Download boot JDK |
| 902 | +run:| |
| 903 | + mkdir -p "$HOME\bootjdk\$env:BOOT_JDK_VERSION" |
| 904 | + & curl -L "$env:BOOT_JDK_URL" -o "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" |
| 905 | + $FileHash = Get-FileHash -Algorithm SHA256 "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" |
| 906 | + $FileHash.Hash -eq $env:BOOT_JDK_SHA256 |
| 907 | + & tar -xf "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" -C "$HOME/bootjdk/$env:BOOT_JDK_VERSION" |
| 908 | + Get-ChildItem "$HOME\bootjdk\$env:BOOT_JDK_VERSION\*\*" | Move-Item -Destination "$HOME\bootjdk\$env:BOOT_JDK_VERSION" |
| 909 | +if:steps.bootjdk.outputs.cache-hit != 'true' |
| 910 | + |
| 911 | + -name:Ensure a specific version of MSVC is installed |
| 912 | +run:> |
| 913 | + Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList |
| 914 | + 'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet |
| 915 | + --add Microsoft.VisualStudio.Component.VC.14.29.arm64' |
| 916 | +
|
| 917 | + -name:Configure |
| 918 | +run:> |
| 919 | + $env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ; |
| 920 | + $env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ; |
| 921 | + $env:BOOT_JDK = cygpath "$HOME/bootjdk/$env:BOOT_JDK_VERSION" ; |
| 922 | + & bash configure |
| 923 | + --with-conf-name=windows-aarch64 |
| 924 | + --with-msvc-toolset-version=14.29 |
| 925 | + --openjdk-target=aarch64-unknown-cygwin |
| 926 | + ${{ matrix.flags }} |
| 927 | + --with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA" |
| 928 | + --with-version-build=0 |
| 929 | + --with-boot-jdk="$env:BOOT_JDK" |
| 930 | + --with-default-make-target="hotspot" |
| 931 | +working-directory:jdk |
| 932 | + |
| 933 | + -name:Build |
| 934 | +run:| |
| 935 | + $env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ; |
| 936 | + $env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ; |
| 937 | + & make CONF_NAME=windows-aarch64 |
| 938 | +working-directory:jdk |
| 939 | + |
850 | 940 | windows_x64_build: |
851 | 941 | name:Windows x64 |
852 | 942 | runs-on:"windows-2019" |
@@ -1571,6 +1661,7 @@ jobs: |
1571 | 1661 | needs: |
1572 | 1662 | -prerequisites |
1573 | 1663 | -linux_additional_build |
| 1664 | + -windows_aarch64_build |
1574 | 1665 | -linux_x64_test |
1575 | 1666 | -linux_x86_test |
1576 | 1667 | -windows_x64_test |
|