Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: update openjdk installations to latest #664

Merged
merged 1 commit into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions .github/workflows/abcl-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,36 +19,41 @@ jobs:
run: echo "JDK_VERSION=${{ matrix.jdk }}" >> $GITHUB_ENV

- name: Clone ABCL
uses: actions/checkout@v2

- name: Install Java base for Ant
uses: actions/setup-java@v1
with:
java-version: 8
uses: actions/checkout@v4

- name: Setup jenv
run: bash -x ./ci/ensure-jenv-is-present.bash && ant abcl.diagnostic
- name: Install jenv
run: |
. ./ci/install-jenv.bash
echo ~/.jenv/bin >> $GITHUB_PATH

- name: Install OpenJDK
run: bash -x ./ci/install-openjdk.bash ${JDK_VERSION}
run: . ./ci/install-openjdk.bash ${JDK_VERSION}

- name: Install Ant
run: |
bash -x ./ci/install-ant.bash
echo ~/.local/share/java/apache-ant/bin >> $GITHUB_PATH

- name: Ensure we are using the correct JDK
run: . ./ci/ensure-jenv-is-present.bash && ant abcl.diagnostic

- name: Set abcl.properties for build
run: bash -x ./ci/create-abcl-properties.bash ${JDK_VERSION}
run: . ./ci/create-abcl-properties.bash ${JDK_VERSION}

- name: Build ABCL
run: bash -x ./ci/ensure-jenv-is-present.bash && $HOME/.jenv/shims/ant abcl
run: . ./ci/ensure-jenv-is-present.bash && ant abcl

- name: Configure ASDF to find abcl
run: bash -x ./ci/asdf-finds-abcl.bash
run: . ./ci/asdf-finds-abcl.bash

- name: Install Jeannie for testing
run: bash -x ./ci/install-jeannie.bash
run: . ./ci/install-jeannie.bash

- name: Install NONTRIVIAL-GRAY-STREAMS for testing
run: bash -x ./ci/install-nontrivial-gray-streams.bash
run: . ./ci/install-nontrivial-gray-streams.bash

- name: Install the ANSI-TEST suite
run: bash -x ./ci/install-ansi-test.bash
run: . ./ci/install-ansi-test.bash

- name: Install Quicklisp
run: |
Expand Down
5 changes: 4 additions & 1 deletion ci/ensure-jenv-is-present.bash
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
#!/usr/bin/env bash

export JENV_ROOT=$HOME/.jenv
if [[ $(echo $PATH | grep -c .jenv) -eq 0 ]]; then
export PATH="$JENV_ROOT/bin:$PATH"
fi

eval "$(jenv init -)"
eval "$(jenv enable-plugin export)"


18 changes: 18 additions & 0 deletions ci/install-ant.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash


tmpdir=/tmp
pushd "${tmpdir}"
ant_base=apache-ant-1.10.14
wget https://www-eu.apache.org/dist/ant/binaries/${ant_base}-bin.zip
unzip ${tmpdir}/${ant_base}-bin.zip
popd

install_dir="$HOME/.local/share/java"
mkdir -p "${install_dir}"
mv ${tmpdir}/${ant_base} "${install_dir}/apache-ant"

echo Ant binary installed in "${install_dir}/apache-ant/bin"



5 changes: 4 additions & 1 deletion ci/install-jenv.bash
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@ fi

. ${DIR}/ensure-jenv-is-present.bash

# hack
export PROMP_COMMAND=""
jenv enable-plugin ant
jenv enable-plugin maven
jenv enable-plugin export

jenv doctor




53 changes: 28 additions & 25 deletions ci/install-openjdk.bash
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
#!/usr/bin/env bash
# set -euo pipefail # too strict for jenv
DIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

. ${DIR}/install-jenv.bash
. ${DIR}/ensure-jenv-is-present.bash

jdk=$1
if [[ -z $jdk ]]; then
jdk=openjdk8
fi

uname=$2
if [[ -z $uname ]]; then
if [[ $# -eq 2 ]]; then
uname=$2
else
uname=$(uname)
fi

Expand All @@ -20,18 +22,18 @@ dist=
function determine_openjdk() {
case $uname in
# just x86_64 for now. We've got Rosseta2 c'est nes pas?
Darwin)
[Dd]arwin|darwin|macos)
case $jdk in
openjdk8)
v=392
build=b08
v=402
build=b06
version=1.8.0.${v}
topdir=jdk8u${v}-${build}
dist="https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u${v}-${build}/OpenJDK8U-jdk_x64_mac_hotspot_8u${v}${build}.tar.gz"
;;
openjdk11)
version=11.0.21
build=9
version=11.0.22
build=7
topdir=jdk-${version}+${build}
dist="https://github.com/adoptium/temurin11-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK11U-jdk_x64_mac_hotspot_${version}_${build}.tar.gz"
;;
Expand All @@ -51,8 +53,8 @@ function determine_openjdk() {
dist="https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_mac_hotspot_16.0.2_7.tar.gz"
;;
openjdk17)
version=17.0.9
build=9
version=17.0.10
build=7
topdir="jdk-${version}+${build}"
dist="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK17U-jdk_x64_mac_hotspot_${version}_${build}.tar.gz"
;;
Expand All @@ -76,25 +78,25 @@ function determine_openjdk() {
;;
openjdk21)
v="21"
id="${v}.0.1"
rev="12"
id="${v}.0.2"
rev="13"
arch="jdk_x64_mac_hotspot"
topdir="jdk-${id}+${rev}"
dist="https://github.com/adoptium/temurin${v}-binaries/releases/download/jdk-${id}%2B${rev}/OpenJDK${v}U-${arch}_${id}_${rev}.tar.gz"
;;
esac
;;
Linux)
[Ll]inux)
case $jdk in
openjdk8)
version=u392
build=b08
version=u402
build=b06
topdir=jdk8${version}-${build}
dist="https://github.com/adoptium/temurin8-binaries/releases/download/jdk8${version}-${build}/OpenJDK8U-jdk_x64_linux_hotspot_8${version}${build}.tar.gz"
;;
openjdk11)
version=11.0.21
build=9
version=11.0.22
build=7
topdir=jdk-${version}+${build}
dist="https://github.com/adoptium/temurin11-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK11U-jdk_x64_linux_hotspot_${version}_${build}.tar.gz"
;;
Expand All @@ -114,8 +116,8 @@ function determine_openjdk() {
dist="https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz"
;;
openjdk17)
version=17.0.9
build=9
version=17.0.10
build=7
topdir="jdk-${version}+${build}"
dist="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK17U-jdk_x64_linux_hotspot_${version}_${build}.tar.gz"
;;
Expand All @@ -138,16 +140,16 @@ function determine_openjdk() {
;;
openjdk21)
v="21"
id="${v}.0.1"
rev="12"
id="${v}.0.2"
rev="13"
arch="jdk_x64_linux_hotspot"
topdir="jdk-${id}+${rev}"
dist="https://github.com/adoptium/temurin${v}-binaries/releases/download/jdk-${id}%2B${rev}/OpenJDK${v}U-${arch}_${id}_${rev}.tar.gz"
;;
esac
;;
*)
echo No known dist for $(uname)
echo No known dist for ${uname}
esac
}

Expand All @@ -161,7 +163,7 @@ function download_and_extract() {
popd
}

function add_jdk() {
function add_jdk_to_jenv() {
echo $dist
echo $tmpdir
case $(uname) in
Expand All @@ -176,8 +178,9 @@ function add_jdk() {

determine_openjdk
download_and_extract
add_jdk
add_jdk_to_jenv

. ${DIR}/set-jdk.bash ${jdk}
. ${DIR}/set-jdk.bash ${jdk} ${ABCL_ROOT}

jenv doctor
exit 0
5 changes: 4 additions & 1 deletion ci/set-jdk.bash
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ function set_jdk() {
openjdk20)
version=$(jenv versions | grep ^\ *20\.[0-9] | tail -1 | sed s/*//)
;;
openjdk21)
version=$(jenv versions | grep ^\ *21\.[0-9] | tail -1 | sed s/*//)
;;
*)
echo Failed to find an available JDK matching ${abcl_jdk}
echo in $(jenv versions)
Expand Down Expand Up @@ -63,4 +66,4 @@ function set_jdk() {
popd
}

set_jdk ${ABCL_JDK} ${ABCL_ROOT}
set_jdk ${JDK_VERSION} ${ABCL_VERSION}