diff --git a/.circleci/script/gen_ci.clj b/.circleci/script/gen_ci.clj index 0b62d382..059dd500 100644 --- a/.circleci/script/gen_ci.clj +++ b/.circleci/script/gen_ci.clj @@ -5,6 +5,8 @@ [clojure.string :as str] [flatland.ordered.map :refer [ordered-map]])) +(def graalvm-version "21.0.1") + (defn run ([cmd-name cmd] (run cmd-name cmd nil)) @@ -80,7 +82,7 @@ :working_directory "~/repo" :environment {:LEIN_ROOT "true" :BABASHKA_PLATFORM "linux" - :GRAALVM_VERSION "21" + :GRAALVM_VERSION graalvm-version :GRAALVM_HOME graalvm-home :BABASHKA_TEST_ENV "jvm"} :resource_class "large" @@ -120,7 +122,7 @@ java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$refl (defn unix [shorted? static? musl? arch executor-conf resource-class graalvm-home platform] (let [env {:LEIN_ROOT "true" - :GRAALVM_VERSION "21" + :GRAALVM_VERSION "21.0.1" :GRAALVM_HOME graalvm-home :BABASHKA_PLATFORM (if (= "mac" platform) "macos" @@ -191,8 +193,8 @@ java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$refl (let [docker-executor-conf {:docker [{:image "circleci/clojure:openjdk-11-lein-2.9.8-bullseye"}]} machine-executor-conf {:machine {:image "ubuntu-2004:202111-01"}} mac-executor-conf {:macos {:xcode "14.0.0"}} - linux-graalvm-home "/home/circleci/graalvm" - mac-graalvm-home "/Users/distiller/graalvm/Contents/Home"] + linux-graalvm-home (str "/home/circleci/graalvm-" graalvm-version) + mac-graalvm-home (format "/Users/distiller/graalvm-%s/Contents/Home" graalvm-version)] (ordered-map :version 2.1 :commands diff --git a/.cirrus.yml b/.cirrus.yml index 2e3e5054..a8cacad1 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -5,8 +5,8 @@ task: skip: "changesIncludeOnly('logo/*', '**.md')" env: LEIN_ROOT: "true" - GRAALVM_VERSION: "21" - GRAALVM_HOME: ${HOME}/graalvm/Contents/Home + GRAALVM_VERSION: "21.0.1" + GRAALVM_HOME: ${HOME}/graalvm-${GRAALVM_VERSION}/Contents/Home BABASHKA_PLATFORM: macos # used in release script BABASHKA_ARCH: aarch64 BABASHKA_TEST_ENV: native diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c245e96f..a02c88de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -102,7 +102,7 @@ jobs: runs-on: ${{ matrix.os }} env: LEIN_ROOT: "true" - GRAALVM_VERSION: "21" + GRAALVM_VERSION: "21.0.1" BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script BABASHKA_TEST_ENV: native BABASHKA_XMX: "-J-Xmx6500m" @@ -126,7 +126,7 @@ jobs: if: "matrix.static == false" uses: graalvm/setup-graalvm@v1 with: - java-version: '21' + java-version: '21.0.1' distribution: 'graalvm' components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -135,7 +135,7 @@ jobs: if: "matrix.static == true" uses: graalvm/setup-graalvm@v1 with: - version: '21' + version: '21.0.1' distribution: 'graalvm' components: 'native-image' native-image-musl: true diff --git a/Dockerfile b/Dockerfile index 38a5b8d3..6010408a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ RUN apt update RUN apt install --no-install-recommends -yy build-essential zlib1g-dev WORKDIR "/opt" -ENV GRAALVM_VERSION="21" +ENV GRAALVM_VERSION="21.0.1" ARG TARGETARCH # Do not set those directly, use TARGETARCH instead ENV BABASHKA_ARCH= @@ -16,13 +16,13 @@ RUN if [ "${TARGETARCH}" = "" ] || [ "${TARGETARCH}" = "amd64" ]; then \ export GRAALVM_ARCH=aarch64; \ fi && \ echo "Installing GraalVM for ${GRAALVM_ARCH}" && \ - curl -sLO https://download.oracle.com/graalvm/${GRAALVM_VERSION}/archive/graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz - mkdir graalvm + curl -sLO https://download.oracle.com/graalvm/21/archive/graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz + mkdir "graalvm-$GRAALVM_VERSION" tar -xzf graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz -C graalvm --strip-components 1 ARG BABASHKA_XMX="-J-Xmx4500m" -ENV GRAALVM_HOME="/opt/graalvm" +ENV GRAALVM_HOME="/opt/graalvm-$GRAALVM_VERSION" ENV JAVA_HOME="$GRAALVM_HOME/bin" ENV PATH="$JAVA_HOME:$PATH" ENV BABASHKA_XMX=$BABASHKA_XMX diff --git a/appveyor.yml b/appveyor.yml index 49a27c2f..360dea8d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,8 +7,8 @@ image: Visual Studio 2022 clone_folder: C:\projects\babashka environment: - GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-jdk-21+35.1 - JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-21+35.1 + GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-jdk-21.0.1+12.1 + JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-21.0.1+12.1 BABASHKA_XMX: "-J-Xmx5g" skip_commits: @@ -39,7 +39,7 @@ clone_script: build_script: # TODO: Extract the zip by removing the top level folder to remove the hardcoded path for GRAALVM_HOME - cmd: >- - powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://download.oracle.com/graalvm/21/archive/graalvm-jdk-21_windows-x64_bin.zip', 'graalvm.zip') }" + powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://download.oracle.com/graalvm/21/archive/graalvm-jdk-21.0.1_windows-x64_bin.zip', 'graalvm.zip') }" powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }" diff --git a/doc/build.md b/doc/build.md index e9d80976..376f5641 100644 --- a/doc/build.md +++ b/doc/build.md @@ -3,24 +3,24 @@ ## Prerequisites - Install [lein](https://leiningen.org/) for producing uberjars -- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *jdk-21*. +- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *jdk-21.0.0.1*. - For Windows, installing Visual Studio 2019 with the "Desktop development with C++" workload is recommended. - Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like: ``` shell - export GRAALVM_HOME=~/Downloads/graalvm-jdk-21/Contents/Home + export GRAALVM_HOME=~/Downloads/graalvm-jdk-21.0.0.1/Contents/Home ``` On linux: ``` shell - export GRAALVM_HOME=~/Downloads/graalvm-jdk-21 + export GRAALVM_HOME=~/Downloads/graalvm-jdk-21.0.0.1 ``` On Windows, from the [Visual Studio 2019 x64 Native Tools Command Prompt](https://github.com/oracle/graal/issues/2116#issuecomment-590470806) or `cmd.exe` (not Powershell): ``` - set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-jdk-21 + set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-jdk-21.0.0.1 ``` If you are not running from the x64 Native Tools Command Prompt, you will need to set additional environment variables using: ``` diff --git a/doc/dev.md b/doc/dev.md index d00505c8..ba8d8ab0 100644 --- a/doc/dev.md +++ b/doc/dev.md @@ -37,7 +37,7 @@ reasons: ## Requirements -You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use jdk-21 +You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use jdk-21.0.0.1 ## Clone repository diff --git a/script/install-graalvm b/script/install-graalvm index 6e64b41d..61062465 100755 --- a/script/install-graalvm +++ b/script/install-graalvm @@ -4,7 +4,7 @@ set -euo pipefail INSTALL_DIR="${1:-$HOME}" -GRAALVM_VERSION="${GRAALVM_VERSION:-21}" +GRAALVM_VERSION="${GRAALVM_VERSION:-21.0.1}" GRAALVM_PLATFORM=$BABASHKA_PLATFORM @@ -17,9 +17,9 @@ case "${BABASHKA_ARCH:-}" in ;; esac -GRAALVM_DIR_NAME="graalvm" +GRAALVM_DIR_NAME="graalvm-$GRAALVM_VERSION" GRAALVM_FILENAME="graalvm-jdk-${GRAALVM_VERSION}_${GRAALVM_PLATFORM}-${GRAALVM_ARCH}_bin.tar.gz" -DOWNLOAD_URL="https://download.oracle.com/graalvm/${GRAALVM_VERSION}/archive/${GRAALVM_FILENAME}" +DOWNLOAD_URL="https://download.oracle.com/graalvm/21/archive/${GRAALVM_FILENAME}" pushd "$INSTALL_DIR" >/dev/null