| # Java Gradle CircleCI 2.0 configuration file |
| # |
| # Check https://circleci.com/docs/2.0/language-java/ for more details |
| # |
| version: 2.1 |
| |
| # need to reuse the same base environment for several tests |
| aliases: |
| base_job: &base_job |
| machine: |
| image: ubuntu-1604:202007-01 |
| working_directory: ~/repo |
| environment: |
| TERM: dumb |
| centos: ¢os |
| docker: |
| - image: centos:centos8 |
| working_directory: ~/repo |
| environment: |
| TERM: dumb |
| |
| # we might modify this in the future to accept a parameter for the java package to install |
| commands: |
| install_java: |
| description: "Installs Java 8 using AdoptOpenJDK" |
| parameters: |
| version: |
| type: string |
| steps: |
| - run: wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add - |
| - run: sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ |
| - run: sudo apt-get update |
| - run: sudo apt-get install -y << parameters.version>> |
| |
| install_kube: |
| description: "Installs kubernetes" |
| steps: |
| - run: .circleci/setup-microk8.sh |
| |
| install_common: |
| description: "Installs common software and certificates" |
| steps: |
| - run: sudo apt-get update |
| - run: sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common |
| |
| jobs: |
| java8_docker: |
| docker: |
| - image: circleci/openjdk:8-jdk-stretch |
| steps: |
| - checkout |
| |
| # setting the docker registry here skips the internal minikube setup |
| - run: SIDECAR_DOCKER_REGISTRY="127.0.0.1" ./gradlew -i clean test --stacktrace |
| |
| - store_artifacts: |
| path: build/reports |
| destination: test-reports |
| |
| - store_test_results: |
| path: ~/repo/build/test-results/ |
| |
| java8: |
| <<: *base_job |
| |
| # todo move to common command for integration tests |
| environment: |
| SIDECAR_DOCKER_REGISTRY: "http://localhost:32000" |
| |
| steps: |
| - checkout |
| - install_common |
| - install_kube |
| |
| - install_java: |
| version: adoptopenjdk-8-hotspot |
| - run: sudo update-java-alternatives -s adoptopenjdk-8-hotspot-amd64 && java -version |
| - run: ./gradlew :containers:pushAll |
| - run: ./gradlew -i test integrationTest --stacktrace |
| |
| - store_artifacts: |
| path: build/reports |
| destination: test-reports |
| |
| - store_test_results: |
| path: ~/repo/build/test-results/ |
| |
| - store_test_results: |
| path: ~/repo/cassandra-integration-tests/build/test-results/ |
| |
| java11_docker: |
| docker: |
| - image: circleci/openjdk:11-jdk-stretch |
| steps: |
| - checkout |
| |
| - run: SIDECAR_DOCKER_REGISTRY="127.0.0.1" ./gradlew -i clean test --stacktrace |
| |
| - store_artifacts: |
| path: build/reports |
| destination: test-reports |
| |
| - store_test_results: |
| path: ~/repo/build/test-results/ |
| |
| java11: |
| <<: *base_job |
| environment: |
| SIDECAR_DOCKER_REGISTRY: "http://localhost:32000" |
| |
| steps: |
| - checkout |
| - install_common |
| - install_kube |
| |
| - install_java: |
| version: adoptopenjdk-11-hotspot |
| - run: sudo update-java-alternatives -s adoptopenjdk-11-hotspot-amd64 && java -version |
| - run: export |
| - run: ./gradlew :containers:pushAll |
| - run: ./gradlew -i test integrationTest --stacktrace |
| |
| - store_artifacts: |
| path: build/reports |
| destination: test-reports |
| |
| - store_test_results: |
| path: ~/repo/build/test-results/ |
| |
| # ensures we can build and install deb packages |
| deb_build_install: |
| docker: |
| - image: circleci/openjdk:11-jdk-stretch |
| steps: |
| - checkout |
| - run: ./gradlew -i clean buildDeb |
| - run: DEBIAN_FRONTEND=noninteractive sudo apt install -y ./build/distributions/cassandra-sidecar*.deb |
| - run: test -f /opt/cassandra-sidecar/bin/cassandra-sidecar |
| |
| # ensures we can build and install rpm packages |
| rpm_build_install: |
| <<: *centos |
| steps: |
| - checkout |
| - run: yum install -y java-11-openjdk-devel # the image uses root by default, no need for sudo |
| - run: JAVA_HOME=/usr/lib/jvm/java-11-openjdk ./gradlew -i buildRpm |
| - run: yum install -y ./build/distributions/cassandra-sidecar*.rpm |
| - run: test -f /opt/cassandra-sidecar/bin/cassandra-sidecar |
| |
| docker_build: |
| <<: *base_job |
| steps: |
| - checkout |
| - run: ./gradlew -i clean jibDockerBuild |
| |
| docs_build: |
| docker: |
| - image: circleci/openjdk:11-jdk-stretch |
| steps: |
| - checkout |
| - run: ./gradlew docs:asciidoctor |
| - run: test -f docs/build/html5/user.html |
| |
| workflows: |
| version: 2 |
| build-and-test: |
| jobs: |
| - java8_docker |
| - java11_docker |
| - java8: |
| requires: |
| - java8_docker |
| - java11: |
| requires: |
| - java11_docker |
| - docs_build: |
| requires: |
| - java8 |
| - java8_docker |
| - java11 |
| - java11_docker |
| - docker_build: |
| requires: |
| - java8 |
| - java8_docker |
| - java11 |
| - java11_docker |
| - rpm_build_install: |
| requires: |
| - java8 |
| - java8_docker |
| - java11 |
| - java11_docker |
| - deb_build_install: |
| requires: |
| - java8 |
| - java8_docker |
| - java11 |
| - java11_docker |
| - docker_build: |
| requires: |
| - java8 |
| - java8_docker |
| - java11 |
| - java11_docker |