#!/usr/bin/env bash
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  -e
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  GIT_COMMITTER_NAME = "Vehicle Researcher" 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  GIT_COMMITTER_EMAIL = "user@comma.ai" 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  GIT_AUTHOR_NAME = "Vehicle Researcher" 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  GIT_AUTHOR_EMAIL = "user@comma.ai" 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  GIT_SSH_COMMAND = "ssh -i /data/gitkey" 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								# set CLEAN to build outside of CI 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  ! -z " $CLEAN "  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Create folders 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  rm -rf /data/openpilot
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  mkdir -p /data/openpilot
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cd  /data/openpilot
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Create git repo 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git init
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git remote add origin git@github.com:commaai/openpilot.git
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git fetch origin devel-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cd  /data/openpilot
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git clean -xdf
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git branch -D release2-staging ||  true 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								git fetch origin release2-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git fetch origin dashcam-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Create release2 with no history 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  [  ! -z " $CLEAN "  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git checkout --orphan release2-staging origin/devel-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git checkout --orphan release2-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								VERSION = $( cat selfdrive/common/version.h |  awk -F[ \" -]   '{print $2}' ) 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  " #define COMMA_VERSION \" $VERSION -release\" "  > selfdrive/common/version.h
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git commit -m " openpilot v $VERSION " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Build signed panda firmware 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								pushd  panda/
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								CERT = /tmp/pandaextra/certs/release RELEASE = 1  scons -u .
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								mv board/obj/panda.bin.signed /tmp/panda.bin.signed
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								popd 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Build stuff 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								ln -sfn /data/openpilot /data/pythonpath
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  PYTHONPATH = "/data/openpilot:/data/openpilot/pyextra" 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCONS_CACHE = 1  scons -j3
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Run tests 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								python selfdrive/manager/test/test_manager.py
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								selfdrive/car/tests/test_car_interfaces.py
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Cleanup 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								find . -name '*.a'  -delete
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								find . -name '*.o'  -delete
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								find . -name '*.os'  -delete
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								find . -name '*.pyc'  -delete
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								find . -name '__pycache__'  -delete
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								rm -rf panda/board panda/certs panda/crypto
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								rm -rf .sconsign.dblite Jenkinsfile release/
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								rm models/supercombo.dlc
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Move back signed panda fw 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								mkdir -p panda/board/obj
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								mv /tmp/panda.bin.signed panda/board/obj/panda.bin.signed
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Restore phonelibs 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git checkout phonelibs/
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Mark as prebuilt release 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								touch prebuilt
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Add built files to git 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git add -f .
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git commit --amend -m " openpilot v $VERSION " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Print committed files that are normally gitignored 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#git status --ignored 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  [  ! -z " $PUSH "  ] ;  then 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git remote set-url origin git@github.com:commaai/openpilot.git
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Push to release2-staging 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git push -f origin release2-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  # Create dashcam release 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git rm selfdrive/car/*/carcontroller.py
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  git commit -m "create dashcam release from release2" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  git push -f origin release2-staging:dashcam-staging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi