#!/bin/bash
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  -e
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								# To build sim and docs, you can run the following to mount the scons cache to the same place as in CI: 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# mkdir -p .ci_cache/scons_cache 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# sudo mount --bind /tmp/scons_cache/ .ci_cache/scons_cache 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  $1  =  "base"  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_IMAGE = openpilot-base
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_FILE = Dockerfile.openpilot_base
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								elif  [  $1  =  "docs"  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_IMAGE = openpilot-docs
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_FILE = docs/docker/Dockerfile
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								elif  [  $1  =  "sim"  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_IMAGE = openpilot-sim
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_FILE = tools/sim/Dockerfile.sim
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								elif  [  $1  =  "prebuilt"  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_IMAGE = openpilot-prebuilt
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_FILE = Dockerfile.openpilot
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								elif  [  $1  =  "cl"  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_IMAGE = openpilot-base-cl
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  export  DOCKER_FILE = Dockerfile.openpilot_base_cl
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  " Invalid docker build image  $1 " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  exit  1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  DOCKER_REGISTRY = ghcr.io/commaai
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  COMMIT_SHA = $( git rev-parse HEAD) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LOCAL_TAG = $DOCKER_IMAGE 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								REMOTE_TAG = $DOCKER_REGISTRY /$LOCAL_TAG 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								REMOTE_SHA_TAG = $REMOTE_TAG :$COMMIT_SHA 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCRIPT_DIR = $( dirname " $0 " ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								OPENPILOT_DIR = $SCRIPT_DIR /../../
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								DOCKER_BUILDKIT = 1  docker buildx build --load --cache-to type = inline --cache-from type = registry,ref= $REMOTE_TAG  -t $REMOTE_TAG  -t $LOCAL_TAG  -f $OPENPILOT_DIR /$DOCKER_FILE  $OPENPILOT_DIR 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [ [  ! -z " $PUSH_IMAGE "  ] ] ; 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								then 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  docker push $REMOTE_TAG 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  docker tag $REMOTE_TAG  $REMOTE_SHA_TAG 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  docker push $REMOTE_SHA_TAG 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi