|
|
|
#
|
|
|
|
# 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:with-21
|
|
|
|
|
|
|
|
# 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-v2-{{ checksum "pom.xml" }}
|
|
|
|
- feign-dependencies-v2-
|
|
|
|
- resolve-dependencies
|
|
|
|
- save_cache:
|
|
|
|
paths:
|
|
|
|
- ~/.m2/repository
|
|
|
|
key: feign-dependencies-v2-{{ 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-v2-{{ checksum "pom.xml" }}
|
|
|
|
- feign-dependencies-v2-
|
|
|
|
- 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
|