Move install-openjdk into main script, add check-environment
This commit is contained in:
@ -1,13 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $(dirname $0)/inc/logger.inc
|
||||
source $(dirname $0)/inc/install-openjdk.inc
|
||||
source $(dirname $0)/inc/regression-tester.inc
|
||||
source $(dirname $0)/inc/maven-dependencies.inc
|
||||
source ${HOME}/java.env
|
||||
|
||||
set -e
|
||||
#set -x
|
||||
|
||||
install_openjdk_setdefault 11
|
||||
maven_dependencies_resolve
|
||||
|
||||
log_group_start "Building with maven"
|
||||
|
@ -6,7 +6,6 @@ source $(dirname $0)/inc/sourceforge-api.inc
|
||||
source $(dirname $0)/inc/pmd-doc.inc
|
||||
source $(dirname $0)/inc/pmd-code-api.inc
|
||||
source $(dirname $0)/inc/regression-tester.inc
|
||||
source ${HOME}/java.env
|
||||
|
||||
set -e
|
||||
#set -x
|
||||
@ -16,6 +15,7 @@ function pmd_ci_build_main() {
|
||||
pmd_ci_setup_gpg_key
|
||||
pmd_ci_setup_ssh
|
||||
|
||||
install_openjdk_setdefault 11
|
||||
pmd_ci_build_setup_maven
|
||||
pmd_ci_build_setup_oraclejdk7
|
||||
pmd_ci_build_setup_bundler
|
||||
|
83
.ci/inc/install-openjdk.inc
Normal file
83
.ci/inc/install-openjdk.inc
Normal file
@ -0,0 +1,83 @@
|
||||
|
||||
# needs:
|
||||
# inc/logger
|
||||
|
||||
#
|
||||
# Downloads openjdk from AdoptOpenJDK by accessing the API.
|
||||
# The API is documented at https://api.adoptopenjdk.net/swagger-ui/
|
||||
#
|
||||
|
||||
function install_openjdk() {
|
||||
OPENJDK_VERSION=$1
|
||||
log_group_start "Installing OpenJDK ${OPENJDK_VERSION}"
|
||||
|
||||
case "$(uname)" in
|
||||
Linux*)
|
||||
JDK_OS=linux
|
||||
COMPONENTS_TO_STRIP=1 # e.g. openjdk-11.0.3+7/bin/java
|
||||
;;
|
||||
Darwin*)
|
||||
JDK_OS=mac
|
||||
COMPONENTS_TO_STRIP=3 # e.g. jdk-11.0.3+7/Contents/Home/bin/java
|
||||
;;
|
||||
CYGWIN*|MINGW*)
|
||||
JDK_OS=windows
|
||||
;;
|
||||
*)
|
||||
log_error "Unknown OS: $(uname)"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
DOWNLOAD_URL=$(curl --silent -X GET "https://api.adoptopenjdk.net/v3/assets/feature_releases/${OPENJDK_VERSION}/ga?architecture=x64&heap_size=normal&image_type=jdk&jvm_impl=hotspot&os=${JDK_OS}&page=0&page_size=1&project=jdk&sort_method=DEFAULT&sort_order=DESC&vendor=adoptopenjdk" \
|
||||
-H "accept: application/json" \
|
||||
| jq -r ".[0].binaries[0].package.link")
|
||||
|
||||
OPENJDK_ARCHIVE=$(basename ${DOWNLOAD_URL})
|
||||
log_debug "Archive name: ${OPENJDK_ARCHIVE}"
|
||||
|
||||
CACHE_DIR=${HOME}/.cache/openjdk
|
||||
TARGET_DIR=${HOME}/openjdk${OPENJDK_VERSION}
|
||||
|
||||
mkdir -p ${CACHE_DIR}
|
||||
mkdir -p ${TARGET_DIR}
|
||||
|
||||
if [ ! -e ${CACHE_DIR}/${OPENJDK_ARCHIVE} ]; then
|
||||
log_info "Downloading from ${DOWNLOAD_URL} to ${CACHE_DIR}"
|
||||
curl --location --output ${CACHE_DIR}/${OPENJDK_ARCHIVE} "${DOWNLOAD_URL}"
|
||||
else
|
||||
log_info "Skipped download, file ${CACHE_DIR}/${OPENJDK_ARCHIVE} already exists"
|
||||
fi
|
||||
|
||||
log_info "Extracting to ${TARGET_DIR}"
|
||||
|
||||
case "$OPENJDK_ARCHIVE" in
|
||||
*.zip)
|
||||
7z x ${CACHE_DIR}/${OPENJDK_ARCHIVE} -o${TARGET_DIR}
|
||||
mv ${TARGET_DIR}/*/* ${TARGET_DIR}/
|
||||
;;
|
||||
*.tar.gz)
|
||||
tar --extract --file ${CACHE_DIR}/${OPENJDK_ARCHIVE} -C ${TARGET_DIR} --strip-components=${COMPONENTS_TO_STRIP}
|
||||
;;
|
||||
*)
|
||||
log_error "Unknown filetype: ${OPENJDK_ARCHIVE}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
log_group_end
|
||||
}
|
||||
|
||||
function install_openjdk_setdefault() {
|
||||
OPENJDK_VERSION=$1
|
||||
|
||||
install_openjdk $OPENJDK_VERSION
|
||||
|
||||
log_info "Using OpenJDK ${OPENJDK_VERSION} as default"
|
||||
TARGET_DIR=${HOME}/openjdk${OPENJDK_VERSION}
|
||||
export JAVA_HOME="${TARGET_DIR}"
|
||||
export PATH="${TARGET_DIR}/bin:${PATH}"
|
||||
|
||||
java -version
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
#
|
||||
# The functions here require the following scripts:
|
||||
# inc/logger
|
||||
# inc/logger.inc
|
||||
# inc/install-openjdk.inc
|
||||
#
|
||||
# The functions here require the following environment variables:
|
||||
# PMD_SF_USER
|
||||
@ -11,7 +12,7 @@
|
||||
|
||||
function regression_tester_setup_ci() {
|
||||
# install openjdk8 for pmd-regression-tests
|
||||
.ci/install-openjdk.sh 8
|
||||
install_openjdk 8
|
||||
|
||||
gpg --batch --yes --decrypt --passphrase="GnxdjywUEPveyCD1RLiTd7t8CImnefYr" \
|
||||
--output .ci/files/public-env .ci/files/public-env.gpg
|
||||
|
@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
# Downloads openjdk from AdoptOpenJDK by accessing the API.
|
||||
# The API is documented at https://api.adoptopenjdk.net/swagger-ui/
|
||||
#
|
||||
|
||||
source $(dirname $0)/inc/logger.inc
|
||||
|
||||
set -e
|
||||
|
||||
case "$(uname)" in
|
||||
Linux*)
|
||||
JDK_OS=linux
|
||||
COMPONENTS_TO_STRIP=1 # e.g. openjdk-11.0.3+7/bin/java
|
||||
;;
|
||||
Darwin*)
|
||||
JDK_OS=mac
|
||||
COMPONENTS_TO_STRIP=3 # e.g. jdk-11.0.3+7/Contents/Home/bin/java
|
||||
;;
|
||||
CYGWIN*|MINGW*)
|
||||
JDK_OS=windows
|
||||
;;
|
||||
*)
|
||||
log_error "Unknown OS: $(uname)"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
OPENJDK_VERSION=$1
|
||||
DOWNLOAD_URL=$(curl --silent -X GET "https://api.adoptopenjdk.net/v3/assets/feature_releases/${OPENJDK_VERSION}/ga?architecture=x64&heap_size=normal&image_type=jdk&jvm_impl=hotspot&os=${JDK_OS}&page=0&page_size=1&project=jdk&sort_method=DEFAULT&sort_order=DESC&vendor=adoptopenjdk" \
|
||||
-H "accept: application/json" \
|
||||
| jq -r ".[0].binaries[0].package.link")
|
||||
|
||||
OPENJDK_ARCHIVE=$(basename ${DOWNLOAD_URL})
|
||||
log_debug "Archive name: ${OPENJDK_ARCHIVE}"
|
||||
|
||||
CACHE_DIR=${HOME}/.cache/openjdk
|
||||
TARGET_DIR=${HOME}/openjdk${OPENJDK_VERSION}
|
||||
|
||||
mkdir -p ${CACHE_DIR}
|
||||
mkdir -p ${TARGET_DIR}
|
||||
|
||||
if [ ! -e ${CACHE_DIR}/${OPENJDK_ARCHIVE} ]; then
|
||||
log_info "Downloading from ${DOWNLOAD_URL} to ${CACHE_DIR}"
|
||||
curl --location --output ${CACHE_DIR}/${OPENJDK_ARCHIVE} "${DOWNLOAD_URL}"
|
||||
else
|
||||
log_info "Skipped download, file ${CACHE_DIR}/${OPENJDK_ARCHIVE} already exists"
|
||||
fi
|
||||
|
||||
log_info "Extracting to ${TARGET_DIR}"
|
||||
|
||||
case "$OPENJDK_ARCHIVE" in
|
||||
*.zip)
|
||||
7z x ${CACHE_DIR}/${OPENJDK_ARCHIVE} -o${TARGET_DIR}
|
||||
mv ${TARGET_DIR}/*/* ${TARGET_DIR}/
|
||||
;;
|
||||
*.tar.gz)
|
||||
tar --extract --file ${CACHE_DIR}/${OPENJDK_ARCHIVE} -C ${TARGET_DIR} --strip-components=${COMPONENTS_TO_STRIP}
|
||||
;;
|
||||
*)
|
||||
log_error "Unknown filetype: ${OPENJDK_ARCHIVE}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -e ${HOME}/java.env ]; then
|
||||
cat > ${HOME}/java.env <<EOF
|
||||
export JAVA_HOME="${TARGET_DIR}"
|
||||
export PATH="${TARGET_DIR}/bin:${PATH}"
|
||||
EOF
|
||||
|
||||
log_info "OpenJDK can be used via ${HOME}/java.env"
|
||||
cat ${HOME}/java.env
|
||||
source ${HOME}/java.env
|
||||
java -version
|
||||
|
||||
else
|
||||
log_info "${HOME}/java.env already existed and has not been changed"
|
||||
log_info "OpenJDK${OPENJDK_VERSION} can be used from ${TARGET_DIR}"
|
||||
fi
|
4
.github/workflows/pull-requests.yml
vendored
4
.github/workflows/pull-requests.yml
vendored
@ -26,8 +26,8 @@ jobs:
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.7
|
||||
- name: Install OpenJDK 11
|
||||
run: .ci/install-openjdk.sh 11
|
||||
- name: Check Environment
|
||||
run: .ci/check-environment.sh
|
||||
shell: bash
|
||||
- name: Build
|
||||
run: .ci/build-pr.sh
|
||||
|
3
.github/workflows/pushes.yml
vendored
3
.github/workflows/pushes.yml
vendored
@ -28,9 +28,6 @@ jobs:
|
||||
- name: Check Environment
|
||||
run: .ci/check-environment.sh
|
||||
shell: bash
|
||||
- name: Install OpenJDK 11
|
||||
run: .ci/install-openjdk.sh 11
|
||||
shell: bash
|
||||
- name: build
|
||||
run: .ci/build.sh
|
||||
shell: bash
|
||||
|
Reference in New Issue
Block a user