|  |  | @ -216,96 +216,6 @@ jobs: | 
			
		
	
		
		
			
				
					
					|  |  |  |         ${{ env.RUN }} "ONNXCPU=1 $PYTEST selfdrive/test/process_replay/test_regen.py && \ |  |  |  |         ${{ env.RUN }} "ONNXCPU=1 $PYTEST selfdrive/test/process_replay/test_regen.py && \ | 
			
		
	
		
		
			
				
					
					|  |  |  |                         chmod -R 777 /tmp/comma_download_cache" |  |  |  |                         chmod -R 777 /tmp/comma_download_cache" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   test_cars: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     name: cars |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     runs-on: ${{ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       (github.repository == 'commaai/openpilot') && |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       ((github.event_name != 'pull_request') || |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       (github.event.pull_request.head.repo.full_name == 'commaai/openpilot')) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       && fromJSON('["namespace-profile-amd64-8x16", "namespace-experiments:docker.builds.local-cache=separate"]') |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       || fromJSON('["ubuntu-24.04"]') }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     strategy: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       fail-fast: false |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       matrix: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         job: [0, 1, 2, 3] |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     steps: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     - uses: actions/checkout@v4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         submodules: true |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     - uses: ./.github/workflows/setup-with-retry |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       id: setup-step |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     - name: Cache test routes |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       id: routes-cache |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       uses: actions/cache@v4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         path: .ci_cache/comma_download_cache |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         key: car_models-${{ hashFiles('selfdrive/car/tests/test_models.py', 'opendbc/car/tests/routes.py') }}-${{ matrix.job }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     - name: Build openpilot |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       run: ${{ env.RUN }} "scons -j$(nproc)" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     - name: Test car models |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       timeout-minutes: ${{ contains(runner.name, 'nsc') && (steps.routes-cache.outputs.cache-hit == 'true') && ((steps.setup-step.outputs.duration < 18) && 1 || 2) || 6 }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       run: | |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         ${{ env.RUN }} "MAX_EXAMPLES=1 $PYTEST selfdrive/car/tests/test_models.py && \ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         chmod -R 777 /tmp/comma_download_cache" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       env: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         NUM_JOBS: 4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         JOB_ID: ${{ matrix.job }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   car_docs_diff: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     name: PR comments |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     runs-on: ubuntu-latest |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     #if: github.event_name == 'pull_request' |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     if: false  # TODO: run this in opendbc? |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     steps: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - uses: actions/checkout@v4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           submodules: true |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           ref: ${{ github.event.pull_request.base.ref }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - run: git lfs pull |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - uses: ./.github/workflows/setup-with-retry |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - name: Get base car info |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         run: | |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           ${{ env.RUN }} "scons -j$(nproc) && python3 selfdrive/debug/dump_car_docs.py --path /tmp/openpilot_cache/base_car_docs" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           sudo chown -R $USER:$USER ${{ github.workspace }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - uses: actions/checkout@v4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           submodules: true |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           path: current |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - run: cd current && git lfs pull |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - name: Save car docs diff |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         id: save_diff |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         run: | |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           cd current |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           ${{ env.RUN }} "scons -j$(nproc)" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           output=$(${{ env.RUN }} "python3 selfdrive/debug/print_docs_diff.py --path /tmp/openpilot_cache/base_car_docs") |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           output="${output//$'\n'/'%0A'}" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           echo "::set-output name=diff::$output" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - name: Find comment |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if: ${{ env.AZURE_TOKEN != '' }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         id: fc |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           issue-number: ${{ github.event.pull_request.number }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           body-includes: This PR makes changes to |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - name: Update comment |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if: ${{ steps.save_diff.outputs.diff != '' && env.AZURE_TOKEN != '' }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           comment-id: ${{ steps.fc.outputs.comment-id }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           issue-number: ${{ github.event.pull_request.number }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           body: "${{ steps.save_diff.outputs.diff }}" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           edit-mode: replace |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       - name: Delete comment |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if: ${{ steps.fc.outputs.comment-id != '' && steps.save_diff.outputs.diff == '' && env.AZURE_TOKEN != '' }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         uses: actions/github-script@v7 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         with: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |           script: | |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             github.rest.issues.deleteComment({ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |               owner: context.repo.owner, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |               repo: context.repo.repo, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |               comment_id: ${{ steps.fc.outputs.comment-id }} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             }) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   simulator_driving: |  |  |  |   simulator_driving: | 
			
		
	
		
		
			
				
					
					|  |  |  |     name: simulator driving |  |  |  |     name: simulator driving | 
			
		
	
		
		
			
				
					
					|  |  |  |     runs-on: ${{ |  |  |  |     runs-on: ${{ | 
			
		
	
	
		
		
			
				
					|  |  | 
 |