mirror of
				https://github.com/bensuperpc/dockcross.git
				synced 2025-10-31 16:16:23 +01:00 
			
		
		
		
	ci: Enable parallel build using circleci-matrix
The base image is built on the container 0. In the mean time, the other containers wait for the base image to be ready.
This commit is contained in:
		
							
								
								
									
										56
									
								
								.circleci-matrix.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								.circleci-matrix.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| env: | ||||
|   - IMAGE=android-arm | ||||
|   - IMAGE=browser-asmjs | ||||
|   - IMAGE=linux-arm64 | ||||
|   - IMAGE=linux-armv5 | ||||
|   - IMAGE=linux-armv6 | ||||
|   - IMAGE=linux-armv7 | ||||
|   - IMAGE=linux-ppc64le | ||||
|   - IMAGE=linux-x64 | ||||
|   - IMAGE=linux-x86 | ||||
|   - IMAGE=manylinux-x64 | ||||
|   - IMAGE=manylinux-x86 | ||||
|   - IMAGE=windows-x64 | ||||
|   - IMAGE=windows-x86 | ||||
| command: | ||||
|   - | | ||||
|     if [[ $TASK == "test" ]]; then | ||||
|       if [[ $CIRCLE_NODE_INDEX == 0 ]]; then | ||||
|         if [[ -e ~/docker/base.tar ]]; then docker load -i ~/docker/base.tar; fi | ||||
|         docker pull dockcross/base | ||||
|         make base.test | ||||
|         mkdir -p ~/docker; docker save dockcross/base > ~/docker/base.tar | ||||
|         touch ~/BASE_READY | ||||
|       else | ||||
|         if [[ ! -f ~/BASE_LOADED ]]; then | ||||
|           echo "Waiting for node0" | ||||
|           while true; do | ||||
|             sleep 5 | ||||
|             ssh -q node0 [[ -f ~/BASE_READY ]] | ||||
|             exit_code=$? | ||||
|             if [[ $exit_code -eq 0 ]]; then break; elif [[ $exit_code -eq 1 ]]; then echo -n "."; else exit $exit_code;fi | ||||
|           done | ||||
|           echo "" | ||||
|           echo "Copying base image from node0" | ||||
|           mkdir -p ~/docker; scp node0:~/docker/base.tar ~/docker/base.tar | ||||
|           docker load -i ~/docker/base.tar | ||||
|           docker pull dockcross/base | ||||
|           touch ~/BASE_LOADED | ||||
|         else | ||||
|           echo "Base image already loaded" | ||||
|         fi | ||||
|       fi | ||||
|       if [[ -e ~/docker/$IMAGE.tar ]]; then docker load -i ~/docker/$IMAGE.tar; fi | ||||
|       docker pull dockcross/$IMAGE | ||||
|       make $IMAGE.test | ||||
|       mkdir -p ~/docker; docker save dockcross/$IMAGE > ~/docker/$IMAGE.tar | ||||
|     fi | ||||
|   - | | ||||
|     if [[ $TASK == "deploy" ]]; then | ||||
|       docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS | ||||
|       if [[ $CIRCLE_NODE_INDEX == 0 ]] && [[ ! -f ~/BASE_PUSHED ]]; then | ||||
|         docker push dockcross/base | ||||
|         touch ~/BASE_PUSHED | ||||
|       fi | ||||
|       docker push dockcross/$IMAGE | ||||
|     fi | ||||
							
								
								
									
										52
									
								
								circle.yml
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								circle.yml
									
									
									
									
									
								
							| @@ -12,54 +12,22 @@ dependencies: | ||||
|  | ||||
|   override: | ||||
|     - docker info | ||||
|     - if [[ -e ~/docker/base.tar ]]; then docker load -i ~/docker/base.tar; fi | ||||
|     - docker pull dockcross/base | ||||
|     - | | ||||
|       for image in $(make display_images); do | ||||
|         if [[ -e ~/docker/$image.tar ]]; then | ||||
|           echo "Loading $image.tar" | ||||
|           docker load -i ~/docker/$image.tar; | ||||
|         fi | ||||
|         docker pull dockcross/$image | ||||
|       done | ||||
|     - curl -fsSL https://git.io/v2Ifs -o ~/bin/circleci-matrix | ||||
|     - chmod +x ~/bin/circleci-matrix | ||||
|  | ||||
| test: | ||||
|   override: | ||||
|     - make base.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/base > ~/docker/base.tar | ||||
|     - make android-arm.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/android-arm > ~/docker/android-arm.tar | ||||
|     - make browser-asmjs.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/browser-asmjs > ~/docker/browser-asmjs.tar | ||||
|     - make linux-arm64.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-arm64 > ~/docker/linux-arm64.tar | ||||
|     - make linux-armv5.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-armv5 > ~/docker/linux-armv5.tar | ||||
|     - make linux-armv6.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-armv6 > ~/docker/linux-armv6.tar | ||||
|     - make linux-armv7.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-armv7 > ~/docker/linux-armv7.tar | ||||
|     - make linux-ppc64le.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-ppc64le > ~/docker/linux-ppc64le.tar | ||||
|     - make linux-x64.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-x64 > ~/docker/linux-x64.tar | ||||
|     - make linux-x86.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/linux-x86 > ~/docker/linux-x86.tar | ||||
|     - make manylinux-x64.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/manylinux-x64 > ~/docker/manylinux-x64.tar | ||||
|     - make manylinux-x86.test | ||||
|     - mkdir -p ~/docker; docker save dockcross/manylinux-x86 > ~/docker/manylinux-x86.tar | ||||
|     - make windows-x64.test: | ||||
|     - circleci-matrix: | ||||
|         parallel: true | ||||
|         timeout: 3000 | ||||
|     - mkdir -p ~/docker; docker save dockcross/windows-x64 > ~/docker/windows-x64.tar | ||||
|     - make windows-x86.test: | ||||
|         timeout: 3000 | ||||
|     - mkdir -p ~/docker; docker save dockcross/windows-x86 > ~/docker/windows-x86.tar | ||||
|         environment: | ||||
|           TASK: test | ||||
|  | ||||
| deployment: | ||||
|   hub: | ||||
|     branch: master | ||||
|     commands: | ||||
|       - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS | ||||
|       - docker push dockcross/base | ||||
|       - for image in $(make display_images); do docker push dockcross/$image; done | ||||
|       - circleci-matrix: | ||||
|           parallel: true | ||||
|           environment: | ||||
|             TASK: deploy | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jean-Christophe Fillion-Robin
					Jean-Christophe Fillion-Robin