You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.2 KiB
140 lines
3.2 KiB
# |
|
# 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
|
|
|