diff --git a/.gitignore b/.gitignore index 10004ad..5f69a13 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ out .checkstyle !**/src/**/build _site + +credentials.yml \ No newline at end of file diff --git a/README.adoc b/README.adoc index 91d6076..69b0df5 100644 --- a/README.adoc +++ b/README.adoc @@ -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= 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. diff --git a/ci/README.adoc b/ci/README.adoc new file mode 100644 index 0000000..cdcf4a7 --- /dev/null +++ b/ci/README.adoc @@ -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: +slack: +docker-email: +docker-username: +docker-password: +artifactory-username: +artifactory-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 sp -p spring-session-data-mongodb -c ci/pipeline-template.yml -l credentials.yml -v branch=master +% fly -t 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 unpause-pipeline -p spring-session-data-mongodb +% fly -t expose-pipeline -p spring-session-data-mongodb +% fly -t unpause-pipeline -p spring-session-data-mongodb-2.0.x +% fly -t expose-pipeline -p spring-session-data-mongodb-2.x +---- \ No newline at end of file diff --git a/ci/build.sh b/ci/build.sh new file mode 100755 index 0000000..4a78f1f --- /dev/null +++ b/ci/build.sh @@ -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} diff --git a/ci/build.yml b/ci/build.yml new file mode 100644 index 0000000..f1fef0e --- /dev/null +++ b/ci/build.yml @@ -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 diff --git a/ci/pipeline-template.yml b/ci/pipeline-template.yml new file mode 100644 index 0000000..e08c07c --- /dev/null +++ b/ci/pipeline-template.yml @@ -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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 " + 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 diff --git a/ci/test.sh b/ci/test.sh new file mode 100755 index 0000000..b2b3cf3 --- /dev/null +++ b/ci/test.sh @@ -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 diff --git a/ci/test.yml b/ci/test.yml new file mode 100644 index 0000000..fbe669d --- /dev/null +++ b/ci/test.yml @@ -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 diff --git a/circle.yml b/circle.yml deleted file mode 100644 index fa5ea2d..0000000 --- a/circle.yml +++ /dev/null @@ -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" diff --git a/deploy.bash b/deploy.bash deleted file mode 100755 index 3ca6351..0000000 --- a/deploy.bash +++ /dev/null @@ -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 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 14b7b3b..dec713f 100644 --- a/pom.xml +++ b/pom.xml @@ -220,41 +220,6 @@ - - snapshot - - - - - org.jfrog.buildinfo - artifactory-maven-plugin - 2.6.1 - false - - - build-info - - publish - - - - *:*:*:*@zip zip.name:spring-session-data-mongodb, zip.displayname:Spring Session MongoDB, zip.deployed:false - - - http://repo.spring.io - {{USERNAME}} - {{PASSWORD}} - libs-snapshot-local - libs-snapshot-local - - - - - - - - - milestone @@ -703,10 +668,10 @@ org.apache.maven.plugins - maven-deploy-plugin - 2.8.2 + maven-surefire-plugin + 2.22.1 - true + false