| 
									
										
										
										
											2022-11-22 05:38:50 +08:00
										 |  |  | #!/usr/bin/bash
 | 
					
						
							|  |  |  | set -o errexit | 
					
						
							|  |  |  | set -o nounset | 
					
						
							|  |  |  | set -o pipefail | 
					
						
							|  |  |  | set -o xtrace | 
					
						
							| 
									
										
										
										
											2022-12-20 18:27:04 +08:00
										 |  |  | cd "$(dirname "$0")" | 
					
						
							| 
									
										
										
										
											2022-11-22 05:38:50 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # https://github.com/jenkinsci/acceptance-test-harness/releases | 
					
						
							| 
									
										
										
										
											2023-12-18 02:48:55 +08:00
										 |  |  | export ATH_VERSION=5770.v81b_784f28b_d7 | 
					
						
							| 
									
										
										
										
											2022-11-22 05:38:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-19 23:06:26 +08:00
										 |  |  | if [[ $# -eq 0 ]]; then | 
					
						
							| 
									
										
										
										
											2023-06-30 21:53:21 +08:00
										 |  |  | 	export JDK=17 | 
					
						
							| 
									
										
										
										
											2023-04-19 23:06:26 +08:00
										 |  |  | 	export BROWSER=firefox | 
					
						
							|  |  |  | else | 
					
						
							| 
									
										
										
										
											2023-04-28 00:38:13 +08:00
										 |  |  | 	export JDK=$1 | 
					
						
							|  |  |  | 	export BROWSER=$2 | 
					
						
							| 
									
										
										
										
											2023-04-19 23:06:26 +08:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-18 21:41:20 +08:00
										 |  |  | MVN='mvn -B -ntp -Pquick-build -am -pl war package' | 
					
						
							|  |  |  | if [[ -n ${MAVEN_SETTINGS-} ]]; then | 
					
						
							|  |  |  | 	MVN="${MVN} -s ${MAVEN_SETTINGS}" | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2022-11-22 05:38:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-18 21:41:20 +08:00
										 |  |  | [[ -f war/target/jenkins.war ]] || $MVN | 
					
						
							| 
									
										
										
										
											2022-11-22 05:38:50 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | mkdir -p target/ath-reports | 
					
						
							|  |  |  | chmod a+rwx target/ath-reports | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-20 18:27:04 +08:00
										 |  |  | exec docker run --rm \
 | 
					
						
							| 
									
										
										
										
											2023-04-28 00:38:13 +08:00
										 |  |  | 	--env JDK \
 | 
					
						
							| 
									
										
										
										
											2022-12-20 18:27:04 +08:00
										 |  |  | 	--env ATH_VERSION \
 | 
					
						
							| 
									
										
										
										
											2023-04-19 23:06:26 +08:00
										 |  |  | 	--env BROWSER \
 | 
					
						
							| 
									
										
										
										
											2022-12-20 18:27:04 +08:00
										 |  |  | 	--shm-size 2g `# avoid selenium.WebDriverException exceptions like 'Failed to decode response from marionette' and webdriver closed` \ | 
					
						
							|  |  |  | 	--volume "$(pwd)"/war/target/jenkins.war:/jenkins.war:ro \
 | 
					
						
							|  |  |  | 	--volume /var/run/docker.sock:/var/run/docker.sock:rw \
 | 
					
						
							|  |  |  | 	--volume "$(pwd)"/target/ath-reports:/reports:rw \
 | 
					
						
							|  |  |  | 	--interactive \
 | 
					
						
							|  |  |  | 	jenkins/ath:"$ATH_VERSION" \
 | 
					
						
							|  |  |  | 	bash <<-'INSIDE' | 
					
						
							|  |  |  | 		set -o errexit | 
					
						
							|  |  |  | 		set -o nounset | 
					
						
							|  |  |  | 		set -o pipefail | 
					
						
							|  |  |  | 		set -o xtrace | 
					
						
							|  |  |  | 		cd | 
					
						
							| 
									
										
										
										
											2023-04-28 00:38:13 +08:00
										 |  |  | 		set-java.sh "${JDK}" | 
					
						
							| 
									
										
										
										
											2022-12-20 18:27:04 +08:00
										 |  |  | 		# Start the VNC system provided by the image from the default user home directory | 
					
						
							|  |  |  | 		eval "$(vnc.sh)" | 
					
						
							|  |  |  | 		env | sort | 
					
						
							|  |  |  | 		git clone --branch "$ATH_VERSION" --depth 1 https://github.com/jenkinsci/acceptance-test-harness | 
					
						
							|  |  |  | 		cd acceptance-test-harness | 
					
						
							| 
									
										
										
										
											2023-04-19 23:06:26 +08:00
										 |  |  | 		run.sh "$BROWSER" /jenkins.war \
 | 
					
						
							| 
									
										
										
										
											2022-12-20 18:27:04 +08:00
										 |  |  | 			-Dmaven.test.failure.ignore \
 | 
					
						
							|  |  |  | 			-DforkCount=1 \
 | 
					
						
							|  |  |  | 			-Dgroups=org.jenkinsci.test.acceptance.junit.SmokeTest | 
					
						
							|  |  |  | 		cp --verbose target/surefire-reports/TEST-*.xml /reports | 
					
						
							|  |  |  | 	INSIDE |