From 39859b73a31dc97d61d8a68d9c204b1320a7c578 Mon Sep 17 00:00:00 2001 From: Greg Turnquist Date: Fri, 1 Mar 2019 09:56:43 -0600 Subject: [PATCH] DATAMONGO-2184 - Add CI README. --- ci/README.adoc | 39 +++++++++++++++++++++++++++++++++++++++ ci/build.sh | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 ci/README.adoc diff --git a/ci/README.adoc b/ci/README.adoc new file mode 100644 index 000000000..3e6527190 --- /dev/null +++ b/ci/README.adoc @@ -0,0 +1,39 @@ +== Running CI tasks locally + +Since Concourse is built on top of 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 Concourse 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-data-mongodb-github springci/spring-data-8-jdk-with-mongodb /bin/bash` ++ +This will launch the Docker image and mount your source code at `spring-data-mongodb-github`. ++ +Next, run the `test.sh` script from inside the container: ++ +2. `PROFILE=none spring-data-mongodb-github/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, do this: + +1. `mkdir /tmp/spring-data-mongodb-artifactory` +2. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-data-mongodb-github --mount type=bind,source="/tmp/spring-data-mongodb-artifactory",target=/spring-data-mongodb-artifactory springci/spring-data-8-jdk-with-mongodb /bin/bash` ++ +This will launch the Docker image and mount your source code at `spring-data-mongodb-github` and the temporary +artifactory output directory at `spring-data-mongodb-artifactory`. ++ +Next, run the `build.sh` script from inside the container: ++ +3. `spring-data-mongodb-github/ci/build.sh` + +IMPORTANT: `build.sh` doesn't actually push to Artifactory so don't worry about accidentally deploying anything. +It just deploys to a local folder. That way, the `artifactory-resource` later in the pipeline can pick up these artifacts +and deliver them to artifactory. + +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 diff --git a/ci/build.sh b/ci/build.sh index d958b3a5b..317a70354 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -euo pipefail