diff --git a/.github/workflows/basic-validation.yml b/.github/workflows/basic-validation.yml index 37fa323e..e93e5800 100644 --- a/.github/workflows/basic-validation.yml +++ b/.github/workflows/basic-validation.yml @@ -16,4 +16,4 @@ jobs: name: Basic validation uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main with: - node-version: '20.x' + node-version: '24.x' diff --git a/.github/workflows/check-dist.yml b/.github/workflows/check-dist.yml index 509ea6cc..90ef986a 100644 --- a/.github/workflows/check-dist.yml +++ b/.github/workflows/check-dist.yml @@ -16,4 +16,4 @@ jobs: name: Check dist/ uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main with: - node-version: '20.x' + node-version: '24.x' diff --git a/.github/workflows/e2e-cache-dependency-path.yml b/.github/workflows/e2e-cache-dependency-path.yml index f276ef31..6d926299 100644 --- a/.github/workflows/e2e-cache-dependency-path.yml +++ b/.github/workflows/e2e-cache-dependency-path.yml @@ -24,13 +24,13 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for gradle uses: ./ id: setup-java with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: gradle cache-dependency-path: __tests__/cache/gradle1/*.gradle* - name: Create files to cache @@ -51,7 +51,7 @@ jobs: needs: gradle1-save steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for gradle uses: ./ id: setup-java @@ -76,7 +76,7 @@ jobs: needs: gradle1-save steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for gradle uses: ./ id: setup-java diff --git a/.github/workflows/e2e-cache.yml b/.github/workflows/e2e-cache.yml index bc685ec0..e4fd46c1 100644 --- a/.github/workflows/e2e-cache.yml +++ b/.github/workflows/e2e-cache.yml @@ -24,13 +24,13 @@ jobs: os: [macos-13, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for gradle uses: ./ id: setup-java with: distribution: 'adopt' - java-version: '11' + java-version: '17' cache: gradle - name: Create files to cache # Need to avoid using Gradle daemon to stabilize the save process on Windows @@ -50,7 +50,7 @@ jobs: needs: gradle-save steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for gradle uses: ./ id: setup-java @@ -73,7 +73,7 @@ jobs: os: [macos-13, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for maven uses: ./ id: setup-java @@ -97,7 +97,7 @@ jobs: needs: maven-save steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for maven uses: ./ id: setup-java @@ -124,7 +124,7 @@ jobs: os: [macos-13, windows-latest, ubuntu-22.04] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for sbt uses: ./ id: setup-java @@ -174,7 +174,7 @@ jobs: needs: sbt-save steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run setup-java with the cache for sbt uses: ./ id: setup-java diff --git a/.github/workflows/e2e-local-file.yml b/.github/workflows/e2e-local-file.yml index 9757621e..45d7912d 100644 --- a/.github/workflows/e2e-local-file.yml +++ b/.github/workflows/e2e-local-file.yml @@ -21,7 +21,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download Adopt OpenJDK file run: | if ($IsLinux) { @@ -58,7 +58,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download Zulu OpenJDK file run: | if ($IsLinux) { @@ -95,7 +95,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download Eclipse Temurin file run: | if ($IsLinux) { diff --git a/.github/workflows/e2e-publishing.yml b/.github/workflows/e2e-publishing.yml index dd7bd435..d3163a92 100644 --- a/.github/workflows/e2e-publishing.yml +++ b/.github/workflows/e2e-publishing.yml @@ -25,7 +25,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -60,7 +60,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Create fake settings.xml run: | $xmlDirectory = Join-Path $HOME ".m2" @@ -96,7 +96,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Create fake settings.xml run: | $xmlDirectory = Join-Path $HOME ".m2" @@ -133,7 +133,7 @@ jobs: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java diff --git a/.github/workflows/e2e-versions.yml b/.github/workflows/e2e-versions.yml index d0476606..67238ee9 100644 --- a/.github/workflows/e2e-versions.yml +++ b/.github/workflows/e2e-versions.yml @@ -64,7 +64,7 @@ jobs: version: '24-ea' steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -114,7 +114,7 @@ jobs: version: '17.0.7' steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -149,7 +149,7 @@ jobs: os: macos-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -185,7 +185,7 @@ jobs: os: macos-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -224,7 +224,7 @@ jobs: version: ['17-ea', '15.0.0-ea.14'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -246,7 +246,7 @@ jobs: version: ['17-ea'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -268,7 +268,7 @@ jobs: version: ['17-ea', '21-ea'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -355,7 +355,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -383,7 +383,7 @@ jobs: version: ['11'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: setup-java uses: ./ id: setup-java @@ -406,7 +406,7 @@ jobs: java-version-file: ['.java-version', '.tool-versions'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Create .java-version file shell: bash run: echo "17" > .java-version @@ -435,7 +435,7 @@ jobs: java-version-file: ['.java-version', '.tool-versions'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Create .java-version file shell: bash run: echo "11" > .java-version @@ -463,7 +463,7 @@ jobs: java-version-file: ['.java-version', '.tool-versions'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Create .java-version file shell: bash run: echo "17.0.10" > .java-version @@ -491,7 +491,7 @@ jobs: java-version-file: ['.java-version', '.tool-versions'] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Create .java-version file shell: bash run: echo "openjdk64-17.0.10" > .java-version diff --git a/.github/workflows/publish-immutable-actions.yml b/.github/workflows/publish-immutable-actions.yml index 9f6953ee..ba3ffdee 100644 --- a/.github/workflows/publish-immutable-actions.yml +++ b/.github/workflows/publish-immutable-actions.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checking out - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Publish id: publish uses: actions/publish-immutable-action@v0.0.4 diff --git a/.licenses/npm/@types/node.dep.yml b/.licenses/npm/@types/node.dep.yml index 06fb919d..86544f48 100644 --- a/.licenses/npm/@types/node.dep.yml +++ b/.licenses/npm/@types/node.dep.yml @@ -1,6 +1,6 @@ --- name: "@types/node" -version: 20.11.24 +version: 24.1.0 type: npm summary: TypeScript definitions for node homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node diff --git a/.licenses/npm/brace-expansion.dep.yml b/.licenses/npm/brace-expansion.dep.yml index 8fa6cfb3..95ca8eb1 100644 --- a/.licenses/npm/brace-expansion.dep.yml +++ b/.licenses/npm/brace-expansion.dep.yml @@ -1,6 +1,6 @@ --- name: brace-expansion -version: 1.1.11 +version: 1.1.12 type: npm summary: Brace expansion as known from sh/bash homepage: https://github.com/juliangruber/brace-expansion diff --git a/.licenses/npm/call-bind-apply-helpers.dep.yml b/.licenses/npm/call-bind-apply-helpers.dep.yml new file mode 100644 index 00000000..bfd264f3 --- /dev/null +++ b/.licenses/npm/call-bind-apply-helpers.dep.yml @@ -0,0 +1,32 @@ +--- +name: call-bind-apply-helpers +version: 1.0.2 +type: npm +summary: Helper functions around Function call/apply/bind, for use in `call-bind` +homepage: https://github.com/ljharb/call-bind-apply-helpers#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2024 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/dunder-proto.dep.yml b/.licenses/npm/dunder-proto.dep.yml new file mode 100644 index 00000000..39542bfd --- /dev/null +++ b/.licenses/npm/dunder-proto.dep.yml @@ -0,0 +1,32 @@ +--- +name: dunder-proto +version: 1.0.1 +type: npm +summary: If available, the `Object.prototype.__proto__` accessor and mutator, call-bound +homepage: https://github.com/es-shims/dunder-proto#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2024 ECMAScript Shims + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/es-define-property.dep.yml b/.licenses/npm/es-define-property.dep.yml new file mode 100644 index 00000000..7f190372 --- /dev/null +++ b/.licenses/npm/es-define-property.dep.yml @@ -0,0 +1,32 @@ +--- +name: es-define-property +version: 1.0.1 +type: npm +summary: "`Object.defineProperty`, but not IE 8's broken one." +homepage: https://github.com/ljharb/es-define-property#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2024 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/es-errors.dep.yml b/.licenses/npm/es-errors.dep.yml new file mode 100644 index 00000000..a5827aac --- /dev/null +++ b/.licenses/npm/es-errors.dep.yml @@ -0,0 +1,32 @@ +--- +name: es-errors +version: 1.3.0 +type: npm +summary: A simple cache for a few of the JS Error constructors. +homepage: https://github.com/ljharb/es-errors#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2024 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/es-object-atoms.dep.yml b/.licenses/npm/es-object-atoms.dep.yml new file mode 100644 index 00000000..dc42eaae --- /dev/null +++ b/.licenses/npm/es-object-atoms.dep.yml @@ -0,0 +1,32 @@ +--- +name: es-object-atoms +version: 1.1.1 +type: npm +summary: 'ES Object-related atoms: Object, ToObject, RequireObjectCoercible' +homepage: https://github.com/ljharb/es-object-atoms#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2024 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/es-set-tostringtag.dep.yml b/.licenses/npm/es-set-tostringtag.dep.yml new file mode 100644 index 00000000..f4b673e2 --- /dev/null +++ b/.licenses/npm/es-set-tostringtag.dep.yml @@ -0,0 +1,32 @@ +--- +name: es-set-tostringtag +version: 2.1.0 +type: npm +summary: A helper to optimistically set Symbol.toStringTag, when possible. +homepage: https://github.com/es-shims/es-set-tostringtag#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2022 ECMAScript Shims + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/form-data-2.5.1.dep.yml b/.licenses/npm/form-data-2.5.5.dep.yml similarity index 95% rename from .licenses/npm/form-data-2.5.1.dep.yml rename to .licenses/npm/form-data-2.5.5.dep.yml index 000f2223..a60d6b96 100644 --- a/.licenses/npm/form-data-2.5.1.dep.yml +++ b/.licenses/npm/form-data-2.5.5.dep.yml @@ -1,10 +1,10 @@ --- name: form-data -version: 2.5.1 +version: 2.5.5 type: npm summary: A library to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications. -homepage: https://github.com/form-data/form-data#readme +homepage: license: mit licenses: - sources: License diff --git a/.licenses/npm/form-data-4.0.0.dep.yml b/.licenses/npm/form-data-4.0.4.dep.yml similarity index 94% rename from .licenses/npm/form-data-4.0.0.dep.yml rename to .licenses/npm/form-data-4.0.4.dep.yml index ced7212c..5b3b5c1f 100644 --- a/.licenses/npm/form-data-4.0.0.dep.yml +++ b/.licenses/npm/form-data-4.0.4.dep.yml @@ -1,10 +1,10 @@ --- name: form-data -version: 4.0.0 +version: 4.0.4 type: npm summary: A library to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications. -homepage: https://github.com/form-data/form-data#readme +homepage: license: mit licenses: - sources: License @@ -28,6 +28,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: Readme.md +- sources: README.md text: Form-Data is released under the [MIT](License) license. notices: [] diff --git a/.licenses/npm/function-bind.dep.yml b/.licenses/npm/function-bind.dep.yml new file mode 100644 index 00000000..3ae18f3e --- /dev/null +++ b/.licenses/npm/function-bind.dep.yml @@ -0,0 +1,32 @@ +--- +name: function-bind +version: 1.1.2 +type: npm +summary: Implementation of Function.prototype.bind +homepage: https://github.com/Raynos/function-bind +license: mit +licenses: +- sources: LICENSE + text: |+ + Copyright (c) 2013 Raynos. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +notices: [] +... diff --git a/.licenses/npm/get-intrinsic.dep.yml b/.licenses/npm/get-intrinsic.dep.yml new file mode 100644 index 00000000..c94509f4 --- /dev/null +++ b/.licenses/npm/get-intrinsic.dep.yml @@ -0,0 +1,33 @@ +--- +name: get-intrinsic +version: 1.3.0 +type: npm +summary: Get and robustly cache all JS language-level intrinsics at first require + time +homepage: https://github.com/ljharb/get-intrinsic#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2020 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/get-proto.dep.yml b/.licenses/npm/get-proto.dep.yml new file mode 100644 index 00000000..1176a953 --- /dev/null +++ b/.licenses/npm/get-proto.dep.yml @@ -0,0 +1,32 @@ +--- +name: get-proto +version: 1.0.1 +type: npm +summary: Robustly get the [[Prototype]] of an object +homepage: https://github.com/ljharb/get-proto#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2025 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/gopd.dep.yml b/.licenses/npm/gopd.dep.yml new file mode 100644 index 00000000..d3d28af9 --- /dev/null +++ b/.licenses/npm/gopd.dep.yml @@ -0,0 +1,32 @@ +--- +name: gopd +version: 1.2.0 +type: npm +summary: "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation." +homepage: https://github.com/ljharb/gopd#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2022 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/has-symbols.dep.yml b/.licenses/npm/has-symbols.dep.yml new file mode 100644 index 00000000..38b50f04 --- /dev/null +++ b/.licenses/npm/has-symbols.dep.yml @@ -0,0 +1,32 @@ +--- +name: has-symbols +version: 1.1.0 +type: npm +summary: Determine if the JS environment has Symbol support. Supports spec, or shams. +homepage: https://github.com/ljharb/has-symbols#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2016 Jordan Harband + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/has-tostringtag.dep.yml b/.licenses/npm/has-tostringtag.dep.yml new file mode 100644 index 00000000..efa5c5c1 --- /dev/null +++ b/.licenses/npm/has-tostringtag.dep.yml @@ -0,0 +1,33 @@ +--- +name: has-tostringtag +version: 1.0.2 +type: npm +summary: Determine if the JS environment has `Symbol.toStringTag` support. Supports + spec, or shams. +homepage: https://github.com/inspect-js/has-tostringtag#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2021 Inspect JS + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/hasown.dep.yml b/.licenses/npm/hasown.dep.yml new file mode 100644 index 00000000..99263919 --- /dev/null +++ b/.licenses/npm/hasown.dep.yml @@ -0,0 +1,32 @@ +--- +name: hasown +version: 2.0.2 +type: npm +summary: A robust, ES3 compatible, "has own property" predicate. +homepage: https://github.com/inspect-js/hasOwn#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) Jordan Harband and contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/math-intrinsics.dep.yml b/.licenses/npm/math-intrinsics.dep.yml new file mode 100644 index 00000000..2f29af6f --- /dev/null +++ b/.licenses/npm/math-intrinsics.dep.yml @@ -0,0 +1,32 @@ +--- +name: math-intrinsics +version: 1.1.0 +type: npm +summary: ES Math-related intrinsics and helpers, robustly cached. +homepage: https://github.com/es-shims/math-intrinsics#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2024 ECMAScript Shims + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/safe-buffer.dep.yml b/.licenses/npm/safe-buffer.dep.yml new file mode 100644 index 00000000..a6499e34 --- /dev/null +++ b/.licenses/npm/safe-buffer.dep.yml @@ -0,0 +1,34 @@ +--- +name: safe-buffer +version: 5.2.1 +type: npm +summary: Safer Node.js Buffer API +homepage: https://github.com/feross/safe-buffer +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) Feross Aboukhadijeh + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) +notices: [] diff --git a/.licenses/npm/undici-types.dep.yml b/.licenses/npm/undici-types.dep.yml index a65b8aff..370219bf 100644 --- a/.licenses/npm/undici-types.dep.yml +++ b/.licenses/npm/undici-types.dep.yml @@ -1,15 +1,17 @@ --- name: undici-types -version: 5.26.5 +version: 7.8.0 type: npm summary: A stand-alone types package for Undici homepage: https://undici.nodejs.org license: mit licenses: -- sources: Auto-generated MIT license text +- sources: LICENSE text: | MIT License + Copyright (c) Matteo Collina and Undici contributors + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights diff --git a/README.md b/README.md index 43ccda0a..9d94e77c 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,13 @@ The `setup-java` action provides the following functionality for GitHub Actions This action allows you to work with Java and Scala projects. +## V2 vs V1 + +- V2 supports custom distributions and provides support for Azul Zulu OpenJDK, Eclipse Temurin and AdoptOpenJDK out of the box. V1 supports only Azul Zulu OpenJDK. +- V2 requires you to specify distribution along with the version. V1 defaults to Azul Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2. + +For information about the latest releases, recent updates, and newly supported distributions, please refer to the `setup-java` [Releases](https://github.com/actions/setup-java/releases). + ## Usage - `java-version`: The Java version that is going to be set up. Takes a whole or [semver](#supported-version-syntax) Java version. If not specified, the action will expect `java-version-file` input to be specified. @@ -64,8 +71,8 @@ This action allows you to work with Java and Scala projects. #### Eclipse Temurin ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' # See 'Supported distributions' for available options java-version: '21' @@ -75,8 +82,8 @@ steps: #### Azul Zulu OpenJDK ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'zulu' # See 'Supported distributions' for available options java-version: '21' @@ -131,8 +138,8 @@ The cache input is optional, and caching is turned off by default. #### Caching gradle dependencies ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' @@ -146,8 +153,8 @@ steps: #### Caching maven dependencies ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' @@ -160,8 +167,8 @@ steps: #### Caching sbt dependencies ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' @@ -180,8 +187,8 @@ Usually, cache gets downloaded in multiple segments of fixed sizes. Sometimes, a env: SEGMENT_DOWNLOAD_TIMEOUT_MINS: '5' steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' @@ -200,8 +207,8 @@ For Java distributions that are not cached on Hosted images, `check-latest` alwa ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' @@ -219,9 +226,9 @@ jobs: java: [ '8', '11', '17', '21' ] name: Java ${{ matrix.Java }} sample steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: '' java-version: ${{ matrix.java }} @@ -234,7 +241,7 @@ All versions are added to the PATH. The last version will be used and available ```yaml steps: - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: '' java-version: | diff --git a/__tests__/distributors/adopt-installer.test.ts b/__tests__/distributors/adopt-installer.test.ts index 8a112243..0b35c3d3 100644 --- a/__tests__/distributors/adopt-installer.test.ts +++ b/__tests__/distributors/adopt-installer.test.ts @@ -191,7 +191,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const installerOptions: JavaInstallerOptions = { version: '17', diff --git a/__tests__/distributors/base-installer.test.ts b/__tests__/distributors/base-installer.test.ts index b2c61026..08a95828 100644 --- a/__tests__/distributors/base-installer.test.ts +++ b/__tests__/distributors/base-installer.test.ts @@ -287,7 +287,7 @@ describe('setupJava', () => { spyCoreSetOutput = jest.spyOn(core, 'setOutput'); spyCoreSetOutput.mockImplementation(() => undefined); - jest.spyOn(os, 'arch').mockReturnValue('x86'); + jest.spyOn(os, 'arch').mockReturnValue('x86' as ReturnType); }); afterEach(() => { diff --git a/__tests__/distributors/corretto-installer.test.ts b/__tests__/distributors/corretto-installer.test.ts index a8ffef22..0604603f 100644 --- a/__tests__/distributors/corretto-installer.test.ts +++ b/__tests__/distributors/corretto-installer.test.ts @@ -203,28 +203,27 @@ describe('getAvailableVersions', () => { }); it.each([ - ['arm64', 'aarch64'], - ['amd64', 'x64'] + ['amd64', 'x64'], + ['arm64', 'aarch64'] ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); - const version = '17'; - const installerOptions: JavaInstallerOptions = { - version, + const distribution = new CorrettoDistribution({ + version: '17', architecture: '', // to get default value packageType: 'jdk', checkLatest: false - }; - - const distribution = new CorrettoDistribution(installerOptions); + }); mockPlatform(distribution, 'macos'); const expectedLink = `https://corretto.aws/downloads/resources/17.0.2.8.1/amazon-corretto-17.0.2.8.1-macosx-${distroArch}.tar.gz`; const availableVersion = await distribution['findPackageForDownload']( - version + '17' ); expect(availableVersion).not.toBeNull(); expect(availableVersion.url).toBe(expectedLink); diff --git a/__tests__/distributors/graalvm-installer.test.ts b/__tests__/distributors/graalvm-installer.test.ts index 715a9e17..f5733c0f 100644 --- a/__tests__/distributors/graalvm-installer.test.ts +++ b/__tests__/distributors/graalvm-installer.test.ts @@ -96,33 +96,36 @@ describe('GraalVMDistribution', () => { ); it.each([ - ['amd64', 'x64'], - ['arm64', 'aarch64'] + ['amd64', ['x64', 'amd64']], + ['arm64', ['aarch64', 'arm64']] ])( - 'should map OS architecture %s to distribution architecture %s', - async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); - jest.spyOn(os, 'platform').mockReturnValue('linux'); + 'defaults to os.arch(): %s mapped to distro arch: %s', + async (osArch: string, distroArchs: string[]) => { + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); - const version = '21'; - const distro = new GraalVMDistribution({ - version, - architecture: '', + const distribution = new GraalVMDistribution({ + version: '21', + architecture: '', // to get default value packageType: 'jdk', checkLatest: false }); const osType = distribution.getPlatform(); - if (osType === 'windows' && distroArch === 'aarch64') { - console.warn('Skipping test: aarch64 is not available for Windows'); - return; + if (osType === 'windows' && distroArchs.includes('aarch64')) { + return; // skip, aarch64 is not available for Windows } const archiveType = getDownloadArchiveExtension(); - const result = await distro['findPackageForDownload'](version); - const expectedUrl = `https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_${osType}-${distroArch}_bin.${archiveType}`; + const result = await distribution['findPackageForDownload']('21'); - expect(result.url).toBe(expectedUrl); + const expectedUrls = distroArchs.map( + distroArch => + `https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_${osType}-${distroArch}_bin.${archiveType}` + ); + + expect(expectedUrls).toContain(result.url); } ); diff --git a/__tests__/distributors/liberica-installer.test.ts b/__tests__/distributors/liberica-installer.test.ts index 33a51017..5e664d5f 100644 --- a/__tests__/distributors/liberica-installer.test.ts +++ b/__tests__/distributors/liberica-installer.test.ts @@ -105,9 +105,11 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: DistroArch) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); - const distribution = new LibericaDistributions({ + const distributions = new LibericaDistributions({ version: '17', architecture: '', // to get default value packageType: 'jdk', @@ -117,11 +119,11 @@ describe('getAvailableVersions', () => { const additionalParams = '&installation-type=archive&fields=downloadUrl%2Cversion%2CfeatureVersion%2CinterimVersion%2C' + 'updateVersion%2CbuildVersion'; - distribution['getPlatformOption'] = () => 'macos'; + distributions['getPlatformOption'] = () => 'macos'; const buildUrl = `https://api.bell-sw.com/v1/liberica/releases?os=macos&bundle-type=jdk&bitness=${distroArch.bitness}&arch=${distroArch.arch}&build-type=all${additionalParams}`; - await distribution['getAvailableVersions'](); + await distributions['getAvailableVersions'](); expect(spyHttpClient.mock.calls).toHaveLength(1); expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); diff --git a/__tests__/distributors/liberica-linux-installer.test.ts b/__tests__/distributors/liberica-linux-installer.test.ts index 8e6a665e..58c4e478 100644 --- a/__tests__/distributors/liberica-linux-installer.test.ts +++ b/__tests__/distributors/liberica-linux-installer.test.ts @@ -105,7 +105,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: DistroArch) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const distribution = new LibericaDistributions({ version: '17', diff --git a/__tests__/distributors/liberica-windows-installer.test.ts b/__tests__/distributors/liberica-windows-installer.test.ts index 1ccc57ed..22d28741 100644 --- a/__tests__/distributors/liberica-windows-installer.test.ts +++ b/__tests__/distributors/liberica-windows-installer.test.ts @@ -105,7 +105,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: DistroArch) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const distribution = new LibericaDistributions({ version: '17', diff --git a/__tests__/distributors/microsoft-installer.test.ts b/__tests__/distributors/microsoft-installer.test.ts index 00c4b6c6..3e22b902 100644 --- a/__tests__/distributors/microsoft-installer.test.ts +++ b/__tests__/distributors/microsoft-installer.test.ts @@ -95,7 +95,9 @@ describe('findPackageForDownload', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); jest.spyOn(os, 'platform').mockReturnValue('darwin'); const version = '17'; @@ -119,7 +121,9 @@ describe('findPackageForDownload', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); jest.spyOn(os, 'platform').mockReturnValue('linux'); const version = '17'; @@ -143,7 +147,9 @@ describe('findPackageForDownload', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); jest.spyOn(os, 'platform').mockReturnValue('win32'); const version = '17'; diff --git a/__tests__/distributors/oracle-installer.test.ts b/__tests__/distributors/oracle-installer.test.ts index de391a54..226eca90 100644 --- a/__tests__/distributors/oracle-installer.test.ts +++ b/__tests__/distributors/oracle-installer.test.ts @@ -95,7 +95,9 @@ describe('findPackageForDownload', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); jest.spyOn(os, 'platform').mockReturnValue('linux'); const version = '18'; diff --git a/__tests__/distributors/temurin-installer.test.ts b/__tests__/distributors/temurin-installer.test.ts index b8c9e7fd..f540901e 100644 --- a/__tests__/distributors/temurin-installer.test.ts +++ b/__tests__/distributors/temurin-installer.test.ts @@ -147,7 +147,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: string) => { - jest.spyOn(os, 'arch').mockReturnValue(distroArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const installerOptions: JavaInstallerOptions = { version: '17', diff --git a/__tests__/distributors/zulu-installer.test.ts b/__tests__/distributors/zulu-installer.test.ts index f8b8a72c..100429b3 100644 --- a/__tests__/distributors/zulu-installer.test.ts +++ b/__tests__/distributors/zulu-installer.test.ts @@ -1,5 +1,4 @@ import {HttpClient} from '@actions/http-client'; -import * as semver from 'semver'; import {ZuluDistribution} from '../../src/distributions/zulu/installer'; import {IZuluVersions} from '../../src/distributions/zulu/models'; import * as utils from '../../src/util'; @@ -126,7 +125,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: DistroArch) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const distribution = new ZuluDistribution({ version: '17', diff --git a/__tests__/distributors/zulu-linux-installer.test.ts b/__tests__/distributors/zulu-linux-installer.test.ts index 60f36ee5..a25344cb 100644 --- a/__tests__/distributors/zulu-linux-installer.test.ts +++ b/__tests__/distributors/zulu-linux-installer.test.ts @@ -126,7 +126,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: DistroArch) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const distribution = new ZuluDistribution({ version: '17', @@ -135,7 +137,9 @@ describe('getAvailableVersions', () => { checkLatest: false }); distribution['getPlatformOption'] = () => 'linux'; - const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`; + // Override extension for linux default arch case to match util behavior + spyUtilGetDownloadArchiveExtension.mockReturnValue('tar.gz'); + const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=linux&ext=tar.gz&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`; await distribution['getAvailableVersions'](); diff --git a/__tests__/distributors/zulu-windows-installer.test.ts b/__tests__/distributors/zulu-windows-installer.test.ts index dcac5aa0..a3511ac9 100644 --- a/__tests__/distributors/zulu-windows-installer.test.ts +++ b/__tests__/distributors/zulu-windows-installer.test.ts @@ -126,7 +126,9 @@ describe('getAvailableVersions', () => { ])( 'defaults to os.arch(): %s mapped to distro arch: %s', async (osArch: string, distroArch: DistroArch) => { - jest.spyOn(os, 'arch').mockReturnValue(osArch); + jest + .spyOn(os, 'arch') + .mockReturnValue(osArch as ReturnType); const distribution = new ZuluDistribution({ version: '17', diff --git a/action.yml b/action.yml index 0969d5d4..21a4269d 100644 --- a/action.yml +++ b/action.yml @@ -81,6 +81,6 @@ outputs: cache-hit: description: 'A boolean value to indicate an exact match was found for the primary key' runs: - using: 'node20' + using: 'node24' main: 'dist/setup/index.js' post: 'dist/cleanup/index.js' diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index 4ba80b03..226ef1f9 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -31,8 +31,8 @@ Inputs `java-version` and `distribution` are mandatory and needs to be provided. ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' @@ -44,8 +44,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'adopt-hotspot' java-version: '11' @@ -56,8 +56,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'zulu' java-version: '21' @@ -69,8 +69,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'liberica' java-version: '21' @@ -82,8 +82,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'microsoft' java-version: '21' @@ -97,7 +97,7 @@ steps: To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action: ```yaml -uses: actions/setup-java@v4 +uses: actions/setup-java@v5 with: token: ${{ secrets.GH_DOTCOM_TOKEN }} distribution: 'microsoft' @@ -111,8 +111,8 @@ If the runner is not able to access github.com, any Java versions requested duri ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'corretto' java-version: '21' @@ -124,8 +124,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'oracle' java-version: '21' @@ -137,8 +137,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'dragonwell' java-version: '8' @@ -149,8 +149,8 @@ steps: **NOTE:** An OpenJDK release maintained and supported by SAP ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'sapmachine' java-version: '21' @@ -162,8 +162,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'graalvm' java-version: '21' @@ -181,8 +181,8 @@ For example, `11.0.24` is not available but `11.0.16` is. ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'jetbrains' java-version: '11' @@ -194,8 +194,8 @@ GitHub token to the action to increase the rate limit. Set the `GITHUB_TOKEN` en ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'jetbrains' java-version: '17' @@ -219,8 +219,8 @@ The available package types are: ## Installing custom Java package type ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: '' java-version: '11' @@ -232,8 +232,8 @@ steps: ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: '' java-version: '11' @@ -249,7 +249,7 @@ steps: - run: | download_url="https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz" wget -O $RUNNER_TEMP/java_package.tar.gz $download_url -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: 'jdkfile' jdkFile: ${{ runner.temp }}/java_package.tar.gz @@ -275,7 +275,7 @@ If your use-case requires a custom distribution (in the example, alpine-linux is latest_semver_version=$(curl -sL $latest_jdk_json_url | jq -r 'version.semver') echo "java_version=$latest_semver_version" >> "$GITHUB_OUTPUT" - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'jdkfile' jdkFile: ${{ runner.temp }}/java_package.tar.gz @@ -296,9 +296,9 @@ jobs: java: [ '8', '11' ] name: Java ${{ matrix.Java }} (${{ matrix.distribution }}) sample steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} @@ -316,9 +316,9 @@ jobs: os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] name: Java ${{ matrix.Java }} (${{ matrix.os }}) sample steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: ${{ matrix.java }} @@ -333,9 +333,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK 11 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: '' java-version: '11' @@ -349,7 +349,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} # GITHUB_TOKEN is the default env for the password - name: Set up Apache Maven Central - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: # running setup-java again overwrites the settings.xml distribution: 'temurin' java-version: '11' @@ -446,9 +446,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK 11 for Shared Runner - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: '' java-version: '11' @@ -472,10 +472,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK 11 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: '' java-version: '11' @@ -509,14 +509,14 @@ Subsequent calls to `setup-java` with distinct distribution and version paramete ```yaml steps: -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: '' java-version: | 8 11 -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: '' java-version: '15' @@ -528,7 +528,7 @@ The result is a Toolchain with entries for JDKs 8, 11 and 15. You can even combi - run: | download_url="https://example.com/java/jdk/6u45-b06/jdk-6u45-linux-x64.tar.gz" wget -O $RUNNER_TEMP/java_package.tar.gz $download_url -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: 'jdkfile' jdkFile: ${{ runner.temp }}/java_package.tar.gz @@ -545,7 +545,7 @@ Each JDK provider will receive a default `vendor` using the `distribution` input - run: | download_url="https://example.com/java/jdk/6u45-b06/jdk-6u45-linux-x64.tar.gz" wget -O $RUNNER_TEMP/java_package.tar.gz $download_url -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: 'jdkfile' jdkFile: ${{ runner.temp }}/java_package.tar.gz @@ -560,7 +560,7 @@ In case you install multiple versions of Java at once with multi-line `java-vers ```yaml steps: -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: '' java-version: | @@ -574,8 +574,8 @@ Each JDK provider will receive a default `id` based on the combination of `distr ```yaml steps: -- uses: actions/checkout@v4 -- uses: actions/setup-java@v4 +- uses: actions/checkout@v5 +- uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '11' @@ -587,7 +587,7 @@ In case you install multiple versions of Java at once you can use the same synta ```yaml steps: -- uses: actions/setup-java@v4 +- uses: actions/setup-java@v5 with: distribution: '' java-version: | diff --git a/package-lock.json b/package-lock.json index 029acc2c..f2fb7ed3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "setup-java", - "version": "4.0.0", + "version": "5.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "setup-java", - "version": "4.0.0", + "version": "5.0.0", "license": "MIT", "dependencies": { "@actions/cache": "^4.0.3", @@ -21,7 +21,7 @@ }, "devDependencies": { "@types/jest": "^29.5.14", - "@types/node": "^20.11.24", + "@types/node": "^24.1.0", "@types/semver": "^7.5.8", "@typescript-eslint/eslint-plugin": "^8.35.1", "@typescript-eslint/parser": "^8.35.1", @@ -35,6 +35,9 @@ "prettier": "^2.8.4", "ts-jest": "^29.3.0", "typescript": "^5.3.3" + }, + "engines": { + "node": ">=24.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1644,11 +1647,12 @@ } }, "node_modules/@types/node": { - "version": "20.11.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", - "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.8.0" } }, "node_modules/@types/node-fetch": { @@ -5493,9 +5497,10 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" }, "node_modules/update-browserslist-db": { "version": "1.0.13", diff --git a/package.json b/package.json index 400a585c..bccf0321 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,12 @@ { "name": "setup-java", - "version": "4.0.0", + "version": "5.0.0", "private": true, "description": "setup java action", "main": "dist/setup/index.js", + "engines": { + "node": ">=24.0.0" + }, "scripts": { "build": "ncc build -o dist/setup src/setup-java.ts && ncc build -o dist/cleanup src/cleanup-java.ts", "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"", @@ -38,7 +41,7 @@ }, "devDependencies": { "@types/jest": "^29.5.14", - "@types/node": "^20.11.24", + "@types/node": "^24.1.0", "@types/semver": "^7.5.8", "@typescript-eslint/eslint-plugin": "^8.35.1", "@typescript-eslint/parser": "^8.35.1",