1- # Copyright (c) 2025, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
1+ # Copyright (c) 2025-2026 , The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
22# All rights reserved.
33#
44# SPDX-License-Identifier: Apache-2.0
2828
2929
3030jobs :
31- test :
32- name : Run pre commit checks and tests
33- runs-on : [self-hosted, zurich]
34- timeout-minutes : 45
31+
32+ pre_commit :
33+ name : Pre-commit
34+ runs-on : [self-hosted, gpu]
35+ timeout-minutes : 30
3536
3637 container :
37- image : nvcr.io/nvstaging/isaac-amr/isaaclab_arena:latest
38- credentials :
39- username : $oauthtoken
40- password : ${{ env.NGC_API_KEY }}
38+ image : python:3.11-slim
39+
40+ env :
41+ # We're getting issues with the markers on the checked out files.
42+ SKIP : check-executables-have-shebangs,insert-license
4143
4244 steps :
4345 - &install_git_step
@@ -54,25 +56,23 @@ jobs:
5456 name : Clean up symlinks in submodules directory
5557 run : |
5658 rm -f .git/modules/submodules/IsaacLab/index.lock || true
57- rm -rf submodules/IsaacLab || true
59+ rm -rf submodules/* || true
60+
61+ # Fix "detected dubious ownership in repository" inside containers
62+ - &mark_repo_safe_step
63+ name : Mark repo as safe for git
64+ run : git config --global --add safe.directory "$PWD"
5865
5966 # Checkout Code
6067 - &checkout_step
6168 name : Checkout Code
6269 uses : actions/checkout@v4
6370 with :
64- fetch-depth : 0
65- clean : true
6671 submodules : true
6772 # LFS checkout here somehow causes issues when LFS stuff changes over time.
6873 # So I do LFS manually in a step after.
6974 # lfs: true
7075
71- # Fix "detected dubious ownership in repository" inside containers
72- - &mark_repo_safe_step
73- name : Mark repo as safe for git
74- run : git config --global --add safe.directory "$PWD"
75-
7676 # Pull LFS files explicitly (in case checkout didn't get them all)
7777 - &git_lfs_step
7878 name : Git LFS
@@ -81,21 +81,45 @@ jobs:
8181 git lfs install --local
8282 git lfs pull
8383
84- - &setup_python_step
85- name : Setup Python
86- uses : actions/setup-python@v3
84+ - name : git status
85+ run : |
86+ git status
87+
88+ - name : Run pre-commit
89+ uses : pre-commit/action@v3.0.1
90+ with :
91+ extra_args : --all-files --verbose
92+
93+ test :
94+ name : Run tests
95+ runs-on : [self-hosted, gpu]
96+ timeout-minutes : 60
97+ needs : [pre_commit]
98+
99+ container :
100+ image : nvcr.io/nvstaging/isaac-amr/isaaclab_arena:0.1.1
101+ credentials :
102+ username : $oauthtoken
103+ password : ${{ env.NGC_API_KEY }}
104+
105+ steps :
106+ - &nvidia_smi
107+ name : nvidia-smi
108+ run : nvidia-smi
109+
110+ # Setup
111+ - *install_git_step
112+ - *cleanup_step
113+ - *mark_repo_safe_step
114+ - *checkout_step
115+ - *git_lfs_step
87116
88117 - &install_project_step
89118 name : Install project and link isaac-sim
90119 run : |
91120 pip install --no-cache-dir -e .
92121 [ -e ./submodules/IsaacLab/_isaac_sim ] || ln -s /isaac-sim ./submodules/IsaacLab/_isaac_sim
93122
94- - name : Run pre-commit
95- run : |
96- pip install --no-cache-dir --upgrade pip pre-commit
97- pre-commit run --all-files
98-
99123 - name : Run pytest excluding policy-related tests. First we run all tests without cameras.
100124 run : /isaac-sim/python.sh -m pytest -sv -m "not with_cameras" isaaclab_arena/tests/ --ignore=isaaclab_arena/tests/policy/
101125
@@ -104,31 +128,34 @@ jobs:
104128
105129 test_policy :
106130 name : Run policy-related tests with GR00T & cuda12_8 deps
107- runs-on : [self-hosted, zurich]
108- timeout-minutes : 30
131+ runs-on : [self-hosted, gpu]
132+ timeout-minutes : 60
133+ needs : [pre_commit]
109134
110135 container :
111- image : nvcr.io/nvstaging/isaac-amr/isaaclab_arena:cuda_gr00t
136+ image : nvcr.io/nvstaging/isaac-amr/isaaclab_arena:0.1.1_gr00t
112137 credentials :
113138 username : $oauthtoken
114139 password : ${{ env.NGC_API_KEY }}
115140 steps :
141+ - *nvidia_smi
142+
116143 # Setup.
117144 - *install_git_step
118145 - *cleanup_step
119- - *checkout_step
120146 - *mark_repo_safe_step
147+ - *checkout_step
121148 - *git_lfs_step
122- - *setup_python_step
123149 - *install_project_step
124150
125151 - name : Run policy-related pytest
126152 run : /isaac-sim/python.sh -m pytest -sv isaaclab_arena/tests/policy/
127153
128154 build_docs_pre_merge :
129155 name : Build the docs (pre-merge)
130- runs-on : [self-hosted, zurich ]
156+ runs-on : [self-hosted, gpu ]
131157 timeout-minutes : 30
158+ needs : [pre_commit]
132159
133160 container :
134161 image : python:3.11-slim
@@ -156,7 +183,7 @@ jobs:
156183
157184 build_and_push_image_post_merge :
158185 name : Build & push NGC image (post-merge)
159- runs-on : [self-hosted, zurich ]
186+ runs-on : [self-hosted, gpu ]
160187 timeout-minutes : 60
161188 needs : [test, test_policy, build_docs_pre_merge] # only push if tests passed
162189 if : github.event_name == 'push' && github.ref == 'refs/heads/main'
@@ -194,9 +221,9 @@ jobs:
194221 - name : Build & push image to NGC
195222 run : |
196223 chmod +x ./docker/push_to_ngc* || true
197- ./docker/push_to_ngc.sh -p
224+ ./docker/push_to_ngc.sh -p -t 0.1.1
198225
199226 - name : Build & push image to NGC (GR00T Image)
200227 run : |
201228 chmod +x ./docker/push_to_ngc* || true
202- ./docker/push_to_ngc.sh -p -g -t cuda_gr00t
229+ ./docker/push_to_ngc.sh -p -g -t 0.1.1_gr00t
0 commit comments