diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..cac42ec --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,110 @@ +job_template: &template + working_directory: &workdir /tmp/dozer + docker: + - image: circleci/openjdk:8-jdk + environment: + # set the JVM heap limit + MAVEN_OPTS: -Xmx3200m + +version: 2 +jobs: + prepare: + <<: *template + steps: + - checkout + + # download cached dependencies + - restore_cache: + keys: + - dozer-{{ checksum "pom.xml" }} + - dozer- # fallback to the latest cache + + - run: + name: Install dependencies + command: mvn dependency:go-offline + + # save any cache updates + - save_cache: + paths: + - ~/.m2 + key: dozer-{{ checksum "pom.xml" }} + + # save the dependencies for downstream jobs + - persist_to_workspace: + root: *workdir + paths: + - . + + artifact: + <<: *template + steps: + - attach_workspace: + at: *workdir + + - run: + name: Build Dozer.jar + command: mvn package + + # release Dozer.jar as a CircleCI artifact + - store_artifacts: + path: target/Dozer.jar + destination: Dozer.jar + + # persist Dozer.jar to the test and deploy steps + - persist_to_workspace: + root: *workdir + paths: + - target/Dozer.jar + + unit_test: + <<: *template + steps: + - attach_workspace: + at: *workdir + +# - run: +# name: Run unit tests +# command: mvn unit-tests + + deploy: + working_directory: *workdir + docker: + - image: circleci/node:8 + steps: + - attach_workspace: + at: *workdir + + - run: + name: Install github-release-cli + command: sudo npm install -g github-release-cli + + - run: + name: Create a new GitHub Release + command: > + github-release upload --owner $CIRCLE_PROJECT_USERNAME \ + --repo $CIRCLE_PROJECT_REPONAME \ + --tag $CIRCLE_TAG \ + --name $CIRCLE_TAG \ + target/Dozer.jar + +workflows: + version: 2 + build_and_deploy: + jobs: + - prepare + - artifact: + requires: + - prepare + - unit_test: + requires: + - artifact + - deploy: + type: approval + filters: + branches: + only: + - master + tags: + only: /.*/ + requires: + - unit_test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 732f27a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -sudo: false -language: java -install: mvn package -deploy: - skip_cleanup: true - provider: releases - api_key: - secure: "JGNrQ4XoozGBpzSIs2IUiONEJCzUSzr5xsCmvwslKCe45IU619lKbU2wMRGBXML6OEm59MWJNw/QUt2s5O7uXIysXZ+ROyis3pOzQCZ57BIyl4dEhejD0K5Jy956i9U0kEJvKpbsGfiQg33uMD4HVeaZwwzbMEA/1lqAgXRzvS/vX776woSgyImmwxB8W3EBVKxRfoMRunt6ynmXVXDEGrw87RHeq+Kj6E0r5NG9teBiWxHyrkyY9HLeybL297uhgMO2f8c22gpEHYKOzmumk7w6yqj3tHXSTEvjE3iLHRHma4ruJMim6a6r5rz8k5zLzwAUY5OyYsN1OQQ41/uat9PrVStle+Krt/3GjSeWKyfiIYggPzexvHJTUbYdwVXeLEyz/cODqqWnSAJJ8wUS3kzH/4tyL0x4y6vQ2n//3NJgY8AKe5TyQMX1ceTJianIn8VILlVIj5kwgfeemoxARIwjFE295VBcm9BmiDgxsfkYVjdCw6skRvlT/8FeRCoLrPL2brSdI4ty45qPl89b5jdi37KKWyYV+WLqeB4p99QIZ/xTc+ANMt1x1uDRF4Pn/rCQfDCoehsFHThFdfwtgn8t/PhBtJzSsuAiNv6YQI+pjKfvSMcvbCCLv7zoir2BypCBJJhBln8X4cIDsz2+7JCn95X0tarFe0ObnyHttUE=" - file: "target/Dozer.jar" - on: - tags: true \ No newline at end of file