| 
									
										
										
										
											2019-07-09 12:07:17 +02:00
										 |  |  | = Continuous Integration | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-15 13:04:54 -05:00
										 |  |  | image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2Fmain&subject=2020.0.0%20(main)[link=https://jenkins.spring.io/view/SpringData/job/spring-data-elasticsearch/] | 
					
						
							| 
									
										
										
										
											2020-07-10 21:50:31 +02:00
										 |  |  | image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2F4.0.x&subject=Neumann%20(4.0.x)[link=https://jenkins.spring.io/view/SpringData/job/spring-data-elasticsearch/] | 
					
						
							|  |  |  | image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2F3.2.x&subject=Moore%20(3.2.x)[link=https://jenkins.spring.io/view/SpringData/job/spring-data-elasticsearch/] | 
					
						
							| 
									
										
										
										
											2019-07-09 12:07:17 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | == Running CI tasks locally | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Since this pipeline is purely Docker-based, it's easy to: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Debug what went wrong on your local machine. | 
					
						
							| 
									
										
										
										
											2020-12-15 11:09:24 -06:00
										 |  |  | * Test out a a tweak to your `verify.sh` script before sending it out. | 
					
						
							| 
									
										
										
										
											2019-07-09 12:07:17 +02:00
										 |  |  | * Experiment against a new image before submitting your pull request. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | All of these use cases are great reasons to essentially run what the CI server 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-elasticsearch-github adoptopenjdk/openjdk8:latest /bin/bash` | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | This will launch the Docker image and mount your source code at `spring-data-elasticsearch-github`. | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | 2. `cd spring-data-elasticsearch-github` | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | Next, run your tests from inside the container: | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | 3. `./mvnw clean dependency:list test -Dsort` (or whatever profile you need to test out) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 package things up, do this: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-27 20:59:19 +02:00
										 |  |  | 1. `docker run -it -v /var/run/docker.sock:/var/run/docker.sock --mount type=bind,source="$(pwd)",target=/spring-data-elasticsearch-github adoptopenjdk/openjdk8:latest /bin/bash` | 
					
						
							| 
									
										
										
										
											2019-07-09 12:07:17 +02:00
										 |  |  | + | 
					
						
							|  |  |  | This will launch the Docker image and mount your source code at `spring-data-elasticsearch-github`. | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | 2. `cd spring-data-elasticsearch-github` | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | Next, try to package everything up from inside the container: | 
					
						
							|  |  |  | + | 
					
						
							|  |  |  | 3. `./mvnw -Pci,snapshot -Dmaven.test.skip=true clean package` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images. |