951b5f8ecb
Reviewed-by: sgehwolf, ihse
110 lines
3.9 KiB
YAML
110 lines
3.9 KiB
YAML
#
|
|
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License version 2 only, as
|
|
# published by the Free Software Foundation. Oracle designates this
|
|
# particular file as subject to the "Classpath" exception as provided
|
|
# by Oracle in the LICENSE file that accompanied this code.
|
|
#
|
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# version 2 for more details (a copy is included in the LICENSE file that
|
|
# accompanied this code).
|
|
#
|
|
# You should have received a copy of the GNU General Public License version
|
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
#
|
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
# or visit www.oracle.com if you need additional information or have any
|
|
# questions.
|
|
#
|
|
|
|
name: 'Get BootJDK'
|
|
description: 'Download the BootJDK from cache or source location'
|
|
inputs:
|
|
platform:
|
|
description: 'Platform'
|
|
required: true
|
|
outputs:
|
|
path:
|
|
description: 'Path to the installed BootJDK'
|
|
value: ${{ steps.path-name.outputs.path }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: 'Determine platform prefix'
|
|
id: platform-prefix
|
|
run: |
|
|
# Convert platform name to upper case
|
|
platform_prefix="$(echo ${{ inputs.platform }} | tr [a-z-] [A-Z_])"
|
|
echo "value=$platform_prefix" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: 'Get URL configuration'
|
|
id: url
|
|
uses: ./.github/actions/config
|
|
with:
|
|
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_URL
|
|
|
|
- name: 'Get SHA256 configuration'
|
|
id: sha256
|
|
uses: ./.github/actions/config
|
|
with:
|
|
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_SHA256
|
|
|
|
- name: 'Get file extension configuration'
|
|
id: ext
|
|
uses: ./.github/actions/config
|
|
with:
|
|
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_EXT
|
|
|
|
- name: 'Check cache for BootJDK'
|
|
id: get-cached-bootjdk
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: bootjdk/jdk
|
|
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
|
|
|
|
# macOS is missing sha256sum
|
|
- name: 'Install sha256sum'
|
|
run: |
|
|
# Run Homebrew installation
|
|
brew install coreutils
|
|
shell: bash
|
|
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true' && runner.os == 'macOS'
|
|
|
|
- name: 'Download BootJDK'
|
|
run: |
|
|
# Download BootJDK and verify checksum
|
|
mkdir -p bootjdk/jdk
|
|
mkdir -p bootjdk/unpacked
|
|
wget --progress=dot:mega -O bootjdk/jdk.${{ steps.ext.outputs.value }} '${{ steps.url.outputs.value }}'
|
|
echo '${{ steps.sha256.outputs.value }} bootjdk/jdk.${{ steps.ext.outputs.value }}' | sha256sum -c >/dev/null -
|
|
shell: bash
|
|
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true'
|
|
|
|
- name: 'Unpack BootJDK'
|
|
run: |
|
|
# Unpack the BootJDK and move files to a common location
|
|
if [[ '${{ steps.ext.outputs.value }}' == 'tar.gz' ]]; then
|
|
tar -xf bootjdk/jdk.${{ steps.ext.outputs.value }} -C bootjdk/unpacked
|
|
else
|
|
unzip -q bootjdk/jdk.${{ steps.ext.outputs.value }} -d bootjdk/unpacked
|
|
fi
|
|
jdk_root="$(dirname $(find bootjdk/unpacked -name bin -type d))"
|
|
mv "$jdk_root"/* bootjdk/jdk/
|
|
shell: bash
|
|
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true'
|
|
|
|
- name: 'Export path to where BootJDK is installed'
|
|
id: path-name
|
|
run: |
|
|
# Export the absolute path
|
|
echo "path=`pwd`/bootjdk/jdk" >> $GITHUB_OUTPUT
|
|
shell: bash
|