This is an automated email from the ASF dual-hosted git repository. rnewson pushed a commit to branch install-java-another-way in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git
commit 52345c292af3eaf99432fa8a7fd6851c33a3e2f9 Author: Robert Newson <[email protected]> AuthorDate: Sun Mar 26 11:53:16 2023 +0100 Install java another way --- bin/install-dependencies.sh | 15 +++++++++++++ bin/install-java.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++ dockerfiles/centos-7 | 6 +++++- dockerfiles/debian-bullseye | 6 +++++- dockerfiles/debian-buster | 6 +++++- dockerfiles/rockylinux-8 | 6 +++++- dockerfiles/ubuntu-bionic | 6 +++++- dockerfiles/ubuntu-focal | 6 +++++- dockerfiles/ubuntu-jammy | 6 +++++- 9 files changed, 102 insertions(+), 7 deletions(-) diff --git a/bin/install-dependencies.sh b/bin/install-dependencies.sh index 9627f80..3051b61 100755 --- a/bin/install-dependencies.sh +++ b/bin/install-dependencies.sh @@ -32,6 +32,7 @@ set -e NODEVERSION=${NODEVERSION:-14} ERLANGVERSION=${ERLANGVERSION:-24.3.4.10} ELIXIRVERSION=${ELIXIRVERSION:-v1.13.4} +JAVAVERSION=${JAVAVERSION:-11} # This works if we're not called through a symlink @@ -52,6 +53,11 @@ if [[ $2 == "noerlang" ]]; then SKIPERLANG=1 fi +# install Java by default, unless told otherwise +if [[ $3 == "nojava" ]]; then + SKIPJAVA=1 +fi + # Check if running as root if [[ ${EUID} -ne 0 ]]; then echo "Sorry, this script must be run as root." @@ -94,6 +100,9 @@ case "${OSTYPE}" in ERLANGVERSION=${ERLANGVERSION} ${SCRIPTPATH}/yum-erlang.sh ELIXIRVERSION=${ELIXIRVERSION} ${SCRIPTPATH}/install-elixir.sh fi + if [[ ! ${SKIPJAVA} ]]; then + JAVAVERSION=${JAVAVERSION} ${SCRIPTPATH}/install-java.sh + fi run_scripts ${EXTRA_SCRIPTS_DIR} 'yum-' elif [[ ${ID} =~ ${debians} ]]; then @@ -103,6 +112,9 @@ case "${OSTYPE}" in ERLANGVERSION=${ERLANGVERSION} ${SCRIPTPATH}/apt-erlang.sh ELIXIRVERSION=${ELIXIRVERSION} ${SCRIPTPATH}/install-elixir.sh fi + if [[ ! ${SKIPJAVA} ]]; then + JAVAVERSION=${JAVAVERSION} ${SCRIPTPATH}/install-java.sh + fi run_scripts ${EXTRA_SCRIPTS_DIR} 'apt-' else echo "Sorry, we don't support this Linux (${ID}) yet." @@ -120,6 +132,9 @@ case "${OSTYPE}" in ELIXIRVERSION=${ELIXIRVERSION} ${SCRIPTPATH}/install-elixir.sh run_scripts ${EXTRA_SCRIPTS_DIR} 'pkg-' fi + if [[ ! ${SKIPJAVA} ]]; then + JAVAVERSION=${JAVAVERSION} ${SCRIPTPATH}/install-java.sh + fi ;; bsd*) # TODO: detect netbsd vs. freebsd vs. openbsd? diff --git a/bin/install-java.sh b/bin/install-java.sh new file mode 100644 index 0000000..71f478f --- /dev/null +++ b/bin/install-java.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# This shell script installs all OS package dependencies for Apache +# CouchDB 2.x for yum-based systems. +# +# While these scripts are primarily written to support building CI +# Docker images, they can be used on any workstation to install a +# suitable build environment. + +# stop on error +set -e + +JAVAVERSION=${JAVAVERSION:-11} + +# extracting the right version to dl is a pain :( +if [ ${ARCH} == "x86_64" ]; then + JAVAARCH=x64 +else + JAVAARCH=${ARCH} +fi + +# Specify the Java version and platform +API_URL="https://api.adoptium.net/v3/binary/latest/${JAVAVERSION}/ga/linux/${JAVAARCH}/jdk/hotspot/normal/eclipse" + +# Fetch the archive +FETCH_URL=$(curl -s -w %{redirect_url} "${API_URL}") +FILENAME=$(curl -OLs -w %{filename_effective} "${FETCH_URL}") + +# Validate the checksum +curl -Ls "${FETCH_URL}.sha256.txt" | sha256sum -c --status + +# Install +export JAVA_HOME=/opt/java/openjdk +tar -C "${JAVA_HOME}" --strip-components=1 -xzf "$FILENAME" +export PATH="${JAVA_HOME}/bin:${PATH}" diff --git a/dockerfiles/centos-7 b/dockerfiles/centos-7 index 8b8b196..1d903dd 100644 --- a/dockerfiles/centos-7 +++ b/dockerfiles/centos-7 @@ -23,10 +23,13 @@ FROM centos:7 ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir to install ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -48,7 +51,8 @@ RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins diff --git a/dockerfiles/debian-bullseye b/dockerfiles/debian-bullseye index eb5fa2b..c8b1a6e 100644 --- a/dockerfiles/debian-bullseye +++ b/dockerfiles/debian-bullseye @@ -25,10 +25,13 @@ FROM $repository:bullseye ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -47,7 +50,8 @@ RUN mkdir -p /usr/src/couchdb; \ RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins diff --git a/dockerfiles/debian-buster b/dockerfiles/debian-buster index 8aca975..aaf4737 100644 --- a/dockerfiles/debian-buster +++ b/dockerfiles/debian-buster @@ -25,10 +25,13 @@ FROM $repository:buster ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -47,7 +50,8 @@ RUN mkdir -p /usr/src/couchdb; \ RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins diff --git a/dockerfiles/rockylinux-8 b/dockerfiles/rockylinux-8 index 8bdd5cd..bc432fd 100644 --- a/dockerfiles/rockylinux-8 +++ b/dockerfiles/rockylinux-8 @@ -23,10 +23,13 @@ FROM rockylinux:8 ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir to install ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -48,7 +51,8 @@ RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins diff --git a/dockerfiles/ubuntu-bionic b/dockerfiles/ubuntu-bionic index 7268ff9..8831594 100644 --- a/dockerfiles/ubuntu-bionic +++ b/dockerfiles/ubuntu-bionic @@ -23,10 +23,13 @@ FROM ubuntu:bionic ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir to install ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -45,7 +48,8 @@ RUN mkdir -p /usr/src/couchdb; \ RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins diff --git a/dockerfiles/ubuntu-focal b/dockerfiles/ubuntu-focal index 249c4b4..dc50a4b 100644 --- a/dockerfiles/ubuntu-focal +++ b/dockerfiles/ubuntu-focal @@ -23,10 +23,13 @@ FROM ubuntu:focal ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir to install ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -45,7 +48,8 @@ RUN mkdir -p /usr/src/couchdb; \ RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins diff --git a/dockerfiles/ubuntu-jammy b/dockerfiles/ubuntu-jammy index 8336e70..709cc7c 100644 --- a/dockerfiles/ubuntu-jammy +++ b/dockerfiles/ubuntu-jammy @@ -23,10 +23,13 @@ FROM ubuntu:jammy ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang +# Choose whether to install Java, default yes +ARG java=java # Select version of Node, Erlang and Elixir to install ARG erlangversion=24.3.4.10 ARG elixirversion=v1.13.4 ARG nodeversion=14 +ARG javaversion=11 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ @@ -45,7 +48,8 @@ RUN mkdir -p /usr/src/couchdb; \ RUN ERLANGVERSION=$erlangversion \ ELIXIRVERSION=$elixirversion \ NODEVERSION=$nodeversion \ - /root/couchdb-ci/bin/install-dependencies.sh $js $erlang + JAVAVERSION=$javaversion \ + /root/couchdb-ci/bin/install-dependencies.sh $js $erlang $java # Allow Jenkins to sudo RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
