# # Copyright 2012-2020 The Feign Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except # in compliance with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software distributed under the License # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express # or implied. See the License for the specific language governing permissions and limitations under # the License. # # common executors executors: java: docker: - image: velo/toolchains-4-ci-builds # common commands commands: resolve-dependencies: description: 'Download and prepare all dependencies' steps: - run: name: 'Resolving Dependencies' command: | ./mvnw -ntp dependency:resolve-plugins go-offline:resolve-dependencies -DskipTests=true -B verify-formatting: steps: - run: name: 'Verify formatting' command: | scripts/no-git-changes.sh configure-gpg: steps: - run: name: 'Configure GPG keys' command: | echo -e "$GPG_KEY" | gpg --batch --no-tty --import --yes nexus-deploy: steps: - run: name: 'Deploy Core Modules Sonatype' command: | ./mvnw -ntp -nsu -s .circleci/settings.xml -P release -pl -:feign-benchmark -DskipTests=true deploy # our job defaults defaults: &defaults working_directory: ~/feign environment: # Customize the JVM maximum heap limit MAVEN_OPTS: -Xmx3200m # branch filters master-only: &master-only branches: only: master tags-only: &tags-only branches: ignore: /.*/ tags: only: /.*/ all-branches: &all-branches branches: ignore: master tags: ignore: /.*/ version: 2.1 jobs: test: executor: name: java <<: *defaults steps: - checkout - restore_cache: keys: - feign-dependencies-{{ checksum "pom.xml" }} - feign-dependencies- - resolve-dependencies - save_cache: paths: - ~/.m2 key: feign-dependencies-{{ checksum "pom.xml" }} - run: name: 'Test' command: | ./mvnw -ntp -B test - verify-formatting deploy: executor: name: java <<: *defaults steps: - checkout - restore_cache: keys: - feign-dependencies-{{ checksum "pom.xml" }} - feign-dependencies- - resolve-dependencies - configure-gpg - nexus-deploy workflows: version: 2 build: jobs: - test: name: 'pr-build' filters: <<: *all-branches snapshot: jobs: - test: name: 'snapshot' filters: <<: *master-only - deploy: name: 'deploy snapshot' requires: - 'snapshot' context: Sonatype filters: <<: *master-only release: jobs: - deploy: name: 'release to maven central' context: Sonatype filters: <<: *tags-only