lapis-mc/yggdrasil

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
version: 2

defaults: &defaults
  docker:
    - image: circleci/openjdk:8-jdk
  working_directory: ~/yggdrasil
  environment:
    JVM_OPTS: -Xmx3200m
    TERM: dumb

jobs:
  build:
    <<: *defaults
    steps:
      - checkout

      # Download cache if available.
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "build.gradle" }}
          - v1-dependencies-

      - run: ./gradlew dependencies

      # Save Gradle cache.
      - save_cache:
          paths:
            - ~/.gradle
          key: v1-dependencies-{{ checksum "build.gradle" }}

      # Clean, build, and run checks.
      - run:
          name: Clean
          command: ./gradlew clean cleanTest
      - run:
          name: Compile
          command: ./gradlew assemble
      - store_artifacts:
          path: build/libs
          destination: libs/
      - persist_to_workspace:
          root: ~/yggdrasil
          paths:
            - build

  test:
    <<: *defaults
    steps:
      - checkout
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "build.gradle" }}
          - v1-dependencies-
      - attach_workspace:
          at: ~/yggdrasil
      - run:
          name: Test
          command: ./gradlew check

  deploy:
    <<: *defaults
    steps:
      - checkout
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "build.gradle" }}
          - v1-dependencies-
      - attach_workspace:
          at: ~/yggdrasil
      - run:
          name: Upload
          command: ./gradlew bintrayUpload

workflows:
  version: 2
  build-test-and-deploy:
    jobs:
      - build
      - test:
          requires:
            - build
      - deploy:
          requires:
            - test
          filters:
            branches:
              only: master