diff --git a/.circleci/config.yml b/.circleci/config.yml index f306e408..c86cb6af 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,6 +70,74 @@ jobs: GRAALVM_HOME: /home/circleci/graalvm-ce-java8-19.3.0 BABASHKA_PLATFORM: linux # used in release script BABASHKA_TEST_ENV: native + steps: + - checkout + - run: + name: "Pull Submodules" + command: | + git submodule init + git submodule update + - restore_cache: + keys: + - linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} + - run: + name: Install Clojure + command: | + wget https://download.clojure.org/install/linux-install-1.10.1.447.sh + chmod +x linux-install-1.10.1.447.sh + sudo ./linux-install-1.10.1.447.sh + - run: + name: Install lsof + command: | + sudo apt-get install lsof + - run: + name: Install native dev tools + command: | + sudo apt-get update + sudo apt-get -y install gcc g++ zlib1g-dev + - run: + name: Download GraalVM + command: | + cd ~ + if ! [ -d graalvm-ce-java8-19.3.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.0/graalvm-ce-java8-linux-amd64-19.3.0.tar.gz + tar xzf graalvm-ce-java8-linux-amd64-19.3.0.tar.gz + fi + - run: + name: Build binary + command: | + script/compile + no_output_timeout: 30m + - run: + name: Run tests + command: | + script/test + script/run_lib_tests + - run: + name: Release + command: | + .circleci/script/release + - save_cache: + paths: + - ~/.m2 + - ~/graalvm-ce-java8-19.3.0 + key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} + - store_artifacts: + path: /tmp/release + destination: release + - run: + name: Publish artifact link to Slack + command: | + ./bb .circleci/script/publish_artifact.clj + linux-static: + docker: + - image: circleci/clojure:lein-2.8.1 + working_directory: ~/repo + environment: + LEIN_ROOT: "true" + GRAALVM_HOME: /home/circleci/graalvm-ce-java8-19.3.0 + BABASHKA_PLATFORM: linux-static # used in release script + BABASHKA_TEST_ENV: native BABASHKA_STATIC: true steps: - checkout @@ -104,10 +172,6 @@ jobs: curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.0/graalvm-ce-java8-linux-amd64-19.3.0.tar.gz tar xzf graalvm-ce-java8-linux-amd64-19.3.0.tar.gz fi - # - run: - # name: Install GraalVM SSL libs - # command: | - # .circleci/script/graalvm_ssl - run: name: Build binary command: | @@ -118,10 +182,6 @@ jobs: command: | script/test script/run_lib_tests - # - run: - # name: Performance report - # command: | - # .circleci/script/performance - run: name: Release command: | @@ -172,10 +232,6 @@ jobs: curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.0/graalvm-ce-java8-darwin-amd64-19.3.0.tar.gz tar xzf graalvm-ce-java8-darwin-amd64-19.3.0.tar.gz fi - # - run: - # name: Install GraalVM SSL libs - # command: | - # .circleci/script/graalvm_ssl - run: name: Build binary command: | @@ -186,10 +242,6 @@ jobs: command: | script/test script/run_lib_tests - # - run: - # name: Performance report - # command: | - # .circleci/script/performance - run: name: Release command: | @@ -250,6 +302,7 @@ workflows: jobs: - jvm - linux + - linux-static - mac - deploy: filters: @@ -258,6 +311,7 @@ workflows: requires: - jvm - linux + - linux-static - mac - docker: filters: @@ -266,4 +320,5 @@ workflows: requires: - jvm - linux + - linux-static - mac