diff --git a/README.adoc b/README.adoc index 13fc87d..bc7bf6c 100644 --- a/README.adoc +++ b/README.adoc @@ -35,12 +35,73 @@ IMPORTANT: *JDK 12* is Java's latest version and is unstable. We are testing aga == Building Spring Session MongoDB -. Run `mvn clean package` +. Run `./mvnw clean package` This will generate the artifact. You can also import the project into your IDE. +== Making a release + +1. Create a new release (on the main branch). ++ +---- +% ci/create-release.sh +---- ++ +2. With the release tagged, push the tagged version to the release branch. ++ +---- +% git checkout -b release +% git reset --hard +% git push -f origin release +---- + +NOTE: You can chain the previous set of commands together using `&&`. + +The pipeline will build and release the "release" branch. It will also build a new a new snapshot and stage it on artifactory. + +The pipeline will pick up the next tag and release it. It will also build a new snapshot and stage it on artifactory. + +=== Running CI tasks locally + +Since the pipeline uses Docker, it's easy to: + +* Debug what went wrong on your local machine. +* Test out a a tweak to your `test.sh` script before sending it out. +* Experiment against a new image before submitting your pull request. + +All of these use cases are great reasons to essentially run what Jenkins does on your local machine. + +IMPORTANT: To do this you must have Docker installed on your machine. + +1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-session-data-mongodb-github adoptopenjdk/openjdk8:latest /bin/bash` ++ +This will launch the Docker image and mount your source code at `spring-session-data-mongodb-github`. ++ +2. `cd spring-session-data-mongodb-github` ++ +Next, run the `test.sh` script from inside the container: ++ +2. `PROFILE=none ci/test.sh` + +Since the container is binding to your source, you can make edits from your IDE and continue to run build jobs. + +If you need to test the `build.sh` script, then do this: + +1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-session-data-mongodb-github --mount type=bind,source="/tmp/spring-session-data-mongodb-artifactory",target=/spring-session-data-mongodb-artifactory adoptopenjdk/openjdk8:latest /bin/bash` ++ +This will launch the Docker image and mount your source code at `spring-session-data-mongodb-github` and the temporary +artifactory output directory at `spring-session-data-mongodb-artifactory`. ++ +Next, run the `build.sh` script from inside the container: ++ +2. `ci/build.sh` + +IMPORTANT: `build.sh` will attempt to push to Artifactory. If you don't supply credentials, it will fail. + +NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images. + == Code of Conduct This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct]. By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io. diff --git a/ci/README.adoc b/ci/README.adoc deleted file mode 100644 index 010e078..0000000 --- a/ci/README.adoc +++ /dev/null @@ -1,61 +0,0 @@ -== Making a release - -1. Create a new release (on the main branch). -+ ----- -% ci/create-release.sh ----- -+ -2. With the release tagged, push the tagged version to the release branch. -+ ----- -% git checkout -b release -% git reset --hard -% git push -f origin release ----- - -NOTE: You can chain the previous set of commands together using `&&`. - -The pipeline will build and release the "release" branch. It will also build a new a new snapshot and stage it on artifactory. - -The pipeline will pick up the next tag and release it. It will also build a new snapshot and stage it on artifactory. - - -=== Running CI tasks locally - -Since the pipeline uses Docker, it's easy to: - -* Debug what went wrong on your local machine. -* Test out a a tweak to your `test.sh` script before sending it out. -* Experiment against a new image before submitting your pull request. - -All of these use cases are great reasons to essentially run what Jenkins does on your local machine. - -IMPORTANT: To do this you must have Docker installed on your machine. - -1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-session-data-mongodb-github adoptopenjdk/openjdk8:latest /bin/bash` -+ -This will launch the Docker image and mount your source code at `spring-session-data-mongodb-github`. -+ -2. `cd spring-session-data-mongodb-github` -+ -Next, run the `test.sh` script from inside the container: -+ -2. `PROFILE=none ci/test.sh` - -Since the container is binding to your source, you can make edits from your IDE and continue to run build jobs. - -If you need to test the `build.sh` script, then do this: - -1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-session-data-mongodb-github --mount type=bind,source="/tmp/spring-session-data-mongodb-artifactory",target=/spring-session-data-mongodb-artifactory adoptopenjdk/openjdk8:latest /bin/bash` -+ -This will launch the Docker image and mount your source code at `spring-session-data-mongodb-github` and the temporary -artifactory output directory at `spring-session-data-mongodb-artifactory`. -+ -Next, run the `build.sh` script from inside the container: -+ -2. `ci/build.sh` - -IMPORTANT: `build.sh` will attempt to push to Artifactory. If you don't supply credentials, it will fail. - -NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images. \ No newline at end of file