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