Introduce concourse

This commit is contained in:
Greg Turnquist
2018-11-07 13:53:38 -06:00
parent 477ed57822
commit a3a98c8508
11 changed files with 655 additions and 159 deletions

2
.gitignore vendored
View File

@@ -11,3 +11,5 @@ out
.checkstyle
!**/src/**/build
_site
credentials.yml

View File

@@ -1,8 +1,7 @@
image:https://badges.gitter.im/spring-projects/spring-session.svg[link="https://gitter.im/spring-projects/spring-session?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
image:https://circleci.com/gh/spring-projects/spring-session-data-mongodb.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-projects/spring-session-data-mongodb"]
= Spring Session MongoDB
Greg Turnquist
Spring Session MongoDB provides a solution for Spring Session in a MongoDB data store.
@@ -13,6 +12,81 @@ Spring Session MongoDB provides a solution for Spring Session in a MongoDB data
** Pluggable strategy for determining the session id
** Easily keep the HttpSession alive when a WebSocket is active
== Project Status
We go to great lengths to ensure smooth upgrades. We also seek to make your upgrade on major versions of Java can be as smooth
as possible.
Check the matrix below to see the status of supported versions:
.`master` branch
[cols=2]
|===
| Job | Status
| Test - JDK 8
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%208/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 8 and Spring.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%208%20and%20Spring.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 8 and Spring.NEXT 5.1
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%208%20and%20Spring.NEXT%205.1/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 8 and Spring Data.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%208%20and%20Spring%20Data.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 11
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%2011/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 11 and Spring.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%2011%20and%20Spring.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 11 and Spring.NEXT 5.1
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%2011%20and%20Spring.NEXT%205.1/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Test - JDK 11 and Spring Data.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Test%20-%20JDK%2011%20and%20Spring%20Data.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
| Build - Release to repo.spring.io
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb/jobs/Build/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb"]
|===
.`2.0.x` branch
[cols=2]
|===
| Job | Status
| Test - JDK 8
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%208/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 8 and Spring.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%208%20and%20Spring.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 8 and Spring.NEXT 5.1
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%208%20and%20Spring.NEXT%205.1/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 8 and Spring Data.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%208%20and%20Spring%20Data.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 11
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%2011/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 11 and Spring.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%2011%20and%20Spring.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 11 and Spring.NEXT 5.1
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%2011%20and%20Spring.NEXT%205.1/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Test - JDK 11 and Spring Data.NEXT
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Test%20-%20JDK%2011%20and%20Spring%20Data.NEXT/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
| Build - Release to repo.spring.io
| image:https://ci.spring.io/api/v1/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x/jobs/Build/badge[link="https://ci.spring.io/teams/spring-team/pipelines/spring-session-data-mongodb-2.0.x"]
|===
== Building Spring Session MongoDB
@@ -24,14 +98,6 @@ You can also import the project into your IDE.
== Releasing Spring Session MongoDB
Snapshots are published automatically via CI server by doing this:
----
$ USERNAME=<username> PASSWORD=<encrypted password> mvn -Pdistribute,snapshot,docs clean deploy
----
IMPORTANT: Snapshots do NOT include GPG signatures. To do so would require putting a private key on the CI server. The process for releases (below) is manual and DOES include GPG signatures.
To do a release (.RELEASE, .RC?, .M?):
. Check in all changes and ensure there are no edited files.

47
ci/README.adoc Normal file
View File

@@ -0,0 +1,47 @@
== Spring Session for MongoDB CI
Spring Session for MongoDB uses Concourse as it's CI tool of choice. This provides support for:
* Pipelines against the `master` and `2.0.x` branches
* Support for pull requests
=== Creating a pipeline
Using the `fly` command, you can execute a series of commands to create multiple pipelines to manage everything. But
first, some critical credentials are needed.
Create a `credentials.yml` file like this:
[source,yml]
----
github-access-token: <your Personal Access Token from github>
slack: <your slack hook URL>
docker-email: <your docker hub email address>
docker-username: <your docker hub username>
docker-password: <your docker hub password>
artifactory-username: <your artifactory username>
artifactory-password: <your artifactory encoded password>
----
WARNING: Do NOT check this file into source control! If you'll check, `credentials.yml` is listed in `.gitignore` to prevent tihs.
With this in place, run the following `fly` commands to create pipelines:
----
% fly -t <team-name> sp -p spring-session-data-mongodb -c ci/pipeline-template.yml -l credentials.yml -v branch=master
% fly -t <team-name> sp -p spring-session-data-mongodb-2.0.x -c ci/pipeline-template.yml -l credentials.yml -v branch=2.0.x
----
This creates pipelines for:
* Spring Session for MongoDB `master` branch
* Spring Session for MongoDB `2.0.x` branch
With these pipelines in place, you can now activate and expose them:
----
% fly -t <team-name> unpause-pipeline -p spring-session-data-mongodb
% fly -t <team-name> expose-pipeline -p spring-session-data-mongodb
% fly -t <team-name> unpause-pipeline -p spring-session-data-mongodb-2.0.x
% fly -t <team-name> expose-pipeline -p spring-session-data-mongodb-2.x
----

14
ci/build.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
set -euo pipefail
[[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2
spring_session_data_mongodb_artifactory=$(pwd)/spring-session-data-mongodb-artifactory
rm -rf $HOME/.m2/repository/org/springframework/ws 2> /dev/null || :
cd spring-session-data-mongodb-github
./mvnw -Pdistribute,docs -Dmaven.test.skip=true clean deploy \
-DaltDeploymentRepository=distribution::default::file://${spring_session_data_mongodb_artifactory}

20
ci/build.yml Normal file
View File

@@ -0,0 +1,20 @@
---
platform: linux
image_resource:
type: docker-image
source:
repository: openjdk
tag: 8-jdk
inputs:
- name: spring-session-data-mongodb-github
outputs:
- name: spring-session-data-mongodb-artifactory
caches:
- path: maven
run:
path: spring-session-data-mongodb-github/ci/build.sh

465
ci/pipeline-template.yml Normal file
View File

@@ -0,0 +1,465 @@
---
resource_types:
- name: artifactory-resource
type: docker-image
source:
repository: springio/artifactory-resource
tag: 0.0.4
- name: github-status
type: docker-image
source:
repository: dpb587/github-status-resource
tag: master
- name: pull-request
type: docker-image
source:
repository: jtarchie/pr
tag: latest
- name: slack-notification
type: docker-image
source:
repository: nebhale/slack-notification-resource
resources:
- name: openjdk:8-jdk
type: docker-image
source:
repository: openjdk
tag: 8-jdk
- name: openjdk:11-jdk
type: docker-image
source:
repository: openjdk
tag: 11-jdk
- name: spring-session-data-mongodb-github
type: git
source:
uri: https://github.com/spring-projects/spring-session-data-mongodb.git
branch: ((branch))
- name: spring-session-data-mongodb-artifactory
type: artifactory-resource
source:
uri: https://repo.spring.io
username: ((artifactory-username))
password: ((artifactory-password))
build_name: Spring Session for MongoDB
- name: spring-session-data-mongodb-pull-requests
type: pull-request
source:
access_token: ((github-access-token))
repo: spring-projects/spring-session-data-mongodb
base: ((branch))
- name: spring-session-data-mongodb-status
type: github-status
source:
access_token: ((github-access-token))
repository: spring-projects/spring-session-data-mongodb
branch: ((branch))
- name: slack
type: slack-notification
source:
url: ((slack))
groups:
- name: spring-session-data-mongodb
jobs:
- Test - JDK 8
- Test - JDK 8 and Spring.NEXT
- Test - JDK 8 and Spring.NEXT 5.1
- Test - JDK 8 and Spring Data.NEXT
- Test - JDK 11
- Test - JDK 11 and Spring.NEXT
- Test - JDK 11 and Spring.NEXT 5.1
- Test - JDK 11 and Spring Data.NEXT
- Build
- name: pull-requests
jobs:
- spring-session-data-mongodb-pull-requests
jobs:
- name: Test - JDK 8
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:8-jdk
trigger: true
- task: test
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 8 and Spring.NEXT
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:8-jdk
trigger: true
- task: test
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring5-next,convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 8 and Spring.NEXT 5.1
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:8-jdk
trigger: true
- task: test
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring51-next,convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 8 and Spring Data.NEXT
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:8-jdk
trigger: true
- task: test
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "springdata-next,convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 11
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:11-jdk
trigger: true
- task: test
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 11 and Spring.NEXT
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:11-jdk
trigger: true
- task: test
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring5-next,convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 11 and Spring.NEXT 5.1
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:11-jdk
trigger: true
- task: test
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring51-next,convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Test - JDK 11 and Spring Data.NEXT
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
- get: openjdk:11-jdk
trigger: true
- task: test
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "springdata-next,convergence" }
on_failure:
put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: Build
serial: true
public: true
plan:
- get: spring-session-data-mongodb-github
trigger: true
passed: [
Test - JDK 8,
Test - JDK 8 and Spring.NEXT,
Test - JDK 8 and Spring.NEXT 5.1,
Test - JDK 8 and Spring Data.NEXT,
Test - JDK 11,
Test - JDK 11 and Spring.NEXT,
Test - JDK 11 and Spring.NEXT 5.1,
Test - JDK 11 and Spring Data.NEXT
]
- put: spring-session-data-mongodb-status
params:
commit: spring-session-data-mongodb-github
state: pending
- task: build
file: spring-session-data-mongodb-github/ci/build.yml
- put: spring-session-data-mongodb-artifactory
params:
build_number: ${BUILD_NAME}
build_uri: ${ATC_EXTERNAL_URL}/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}
repo: libs-snapshot-local
folder: spring-session-data-mongodb-artifactory
artifact_set:
- include:
- "/**"
properties:
archives: '*:*:*:*@zip zip.name:spring-session-data-mongodb, zip.displayname:Spring Session Data MongoDB, zip.deployed:false'
on_failure:
aggregate:
- put: spring-session-data-mongodb-status
params:
commit: spring-session-data-mongodb-github
state: failure
- put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
aggregate:
- put: spring-session-data-mongodb-status
params:
commit: spring-session-data-mongodb-github
state: success
- put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
- name: spring-session-data-mongodb-pull-requests
public: true
plan:
- get: spring-session-data-mongodb-github
resource: spring-session-data-mongodb-pull-requests
trigger: true
version: every
- get: openjdk:11-jdk
trigger: true
- put: spring-session-data-mongodb-pull-requests
params:
path: spring-session-data-mongodb-github
status: pending
- aggregate:
- task: test (JDK 8)
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "convergence" }
- task: test (JDK 8 and Spring.NEXT)
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring5-next,convergence" }
- task: test (JDK 8 and Spring.NEXT 5.1)
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring51-next,convergence" }
- task: test (JDK 8 and Spring Data.NEXT)
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "springdata-next,convergence" }
- task: test (JDK 11)
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "convergence" }
- task: test (JDK 11 and Spring.NEXT)
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring5-next,convergence" }
- task: test (JDK 11 and Spring.NEXT 5.1)
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "spring51-next,convergence" }
- task: test (JDK 11 and Spring Data.NEXT)
image: openjdk:11-jdk
file: spring-session-data-mongodb-github/ci/test.yml
params: { PROFILE: "springdata-next,java11,convergence" }
on_failure:
aggregate:
- put: spring-session-data-mongodb-pull-requests
params:
path: spring-session-data-mongodb-github
status: failure
- put: slack
params:
attachments:
- color: danger
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <FAILURE>"
text: "Build has failed"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
on_success:
aggregate:
- put: spring-session-data-mongodb-pull-requests
params:
path: spring-session-data-mongodb-github
status: success
- put: slack
params:
attachments:
- color: good
fallback: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME <SUCCESS>"
text: "Build has succeeded!"
title: "$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME #$BUILD_NAME"
title_link: $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME

11
ci/test.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
[[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2
rm -rf $HOME/.m2/repository/org/springframework/ws 2> /dev/null || :
cd spring-session-data-mongodb-github
./mvnw -P${PROFILE} clean dependency:list test -Dsort

17
ci/test.yml Normal file
View File

@@ -0,0 +1,17 @@
---
platform: linux
image_resource:
type: docker-image
source:
repository: openjdk
tag: 8-jdk
inputs:
- name: spring-session-data-mongodb-github
caches:
- path: maven
run:
path: spring-session-data-mongodb-github/ci/test.sh

View File

@@ -1,104 +0,0 @@
version: 2
jobs:
j8_current:
docker:
- image: circleci/openjdk:8u141
steps:
- checkout
- run:
name: Java 8 - Test current version
command: mvn clean dependency:list test -P${PROFILE} -Dsort
environment:
PROFILE: convergence
j8_spring_next:
docker:
- image: circleci/openjdk:8u141
steps:
- checkout
- run:
name: Java 8 - Test Spring.NEXT
command: mvn clean dependency:list test -P${PROFILE} -Dsort
environment:
PROFILE: spring5-next,convergence
j8_spring51_next:
docker:
- image: circleci/openjdk:8u141
steps:
- checkout
- run:
name: Java 8 - Test Spring.NEXT 5.1
command: mvn clean dependency:list test -P${PROFILE} -Dsort
environment:
PROFILE: spring51-next,convergence
j11_current:
docker:
- image: circleci/openjdk:11-ea-27-jdk-sid
steps:
- checkout
- run:
name: Java 11 - Test current version
command: mvn clean dependency:list test -P${PROFILE} -Dsort
environment:
PROFILE: java10,convergence
j11_spring_next:
docker:
- image: circleci/openjdk:11-ea-27-jdk-sid
steps:
- checkout
- run:
name: Java 11 - Test Spring.NEXT
command: mvn clean dependency:list test -P${PROFILE} -Dsort
environment:
PROFILE: spring5-next,java10,convergence
j11_spring51_next:
docker:
- image: circleci/openjdk:11-ea-27-jdk-sid
steps:
- checkout
- run:
name: Java 11 - Test Spring.NEXT 5.1
command: mvn clean dependency:list test -P${PROFILE} -Dsort
environment:
PROFILE: spring51-next,java10,convergence
deploy:
docker:
- image: circleci/openjdk:8u141
steps:
- checkout
- run:
name: Deploy to Artifactory
command: ./deploy.bash
workflows:
version: 2
build-and-deploy:
jobs:
- j8_current
- j8_spring_next
- j8_spring51_next
- j11_current
- j11_spring_next
- j11_spring51_next
- deploy:
requires:
- j8_current
- j8_spring_next
- j8_spring51_next
- j11_current
- j11_spring_next
- j11_spring51_next
general:
branches:
ignore:
- gh-pages # list of branches to ignore
dependencies:
cache_directories:
- "~/.m2"

View File

@@ -1,7 +0,0 @@
#!/bin/bash -x
if [ "${CIRCLE_BRANCH}" == "master" ] || [ "${CIRCLE_BRANCH}" == "2.0.x" ]; then
mvn -Pdistribute,snapshot,docs clean deploy
else
echo "We only deploy 'master' branch and '2.0.x' branch."
fi

41
pom.xml
View File

@@ -220,41 +220,6 @@
</build>
</profile>
<profile>
<id>snapshot</id>
<build>
<plugins>
<plugin>
<groupId>org.jfrog.buildinfo</groupId>
<artifactId>artifactory-maven-plugin</artifactId>
<version>2.6.1</version>
<inherited>false</inherited>
<executions>
<execution>
<id>build-info</id>
<goals>
<goal>publish</goal>
</goals>
<configuration>
<deployProperties>
<archives>*:*:*:*@zip zip.name:spring-session-data-mongodb, zip.displayname:Spring Session MongoDB, zip.deployed:false</archives>
</deployProperties>
<publisher>
<contextUrl>http://repo.spring.io</contextUrl>
<username>{{USERNAME}}</username>
<password>{{PASSWORD}}</password>
<repoKey>libs-snapshot-local</repoKey>
<snapshotRepoKey>libs-snapshot-local</snapshotRepoKey>
</publisher>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>milestone</id>
@@ -703,10 +668,10 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skip>true</skip>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>