Skip to content
This repository has been archived by the owner on Dec 23, 2024. It is now read-only.

Commit

Permalink
Merge branch 'isaac-sim:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
budzianowski authored Dec 2, 2024
2 parents bc57f66 + 4d99147 commit 0d0fa41
Show file tree
Hide file tree
Showing 615 changed files with 33,097 additions and 6,127 deletions.
15 changes: 15 additions & 0 deletions .aws/mirror-buildspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
version: 0.2

phases:
install:
runtime-versions:
nodejs: 14
pre_build:
commands:
- git config --global user.name "Isaac LAB CI Bot"
- git config --global user.email "[email protected]"
build:
commands:
- git remote set-url origin https://github.com/${TARGET_REPO}.git
- git checkout $SOURCE_BRANCH
- git push --force https://[email protected]/${TARGET_REPO}.git $SOURCE_BRANCH:$TARGET_BRANCH
44 changes: 44 additions & 0 deletions .aws/postmerge-ci-buildspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
version: 0.2

phases:
build:
commands:
- echo "Building and pushing Docker image"
- |
# Determine branch name or use fallback
if [ -n "$CODEBUILD_WEBHOOK_HEAD_REF" ]; then
BRANCH_NAME=$(echo $CODEBUILD_WEBHOOK_HEAD_REF | sed 's/refs\/heads\///')
elif [ -n "$CODEBUILD_SOURCE_VERSION" ]; then
BRANCH_NAME=$CODEBUILD_SOURCE_VERSION
else
BRANCH_NAME="unknown"
fi
# Replace '/' with '-' and remove any invalid characters for Docker tag
SAFE_BRANCH_NAME=$(echo $BRANCH_NAME | sed 's/[^a-zA-Z0-9._-]/-/g')
# Use "latest" if branch name is empty or only contains invalid characters
if [ -z "$SAFE_BRANCH_NAME" ]; then
SAFE_BRANCH_NAME="latest"
fi
# Get the git repository short name
REPO_SHORT_NAME=$(basename -s .git `git config --get remote.origin.url`)
if [ -z "$REPO_SHORT_NAME" ]; then
REPO_SHORT_NAME="verification"
fi
# Combine repo short name and branch name for the tag
COMBINED_TAG="${REPO_SHORT_NAME}-${SAFE_BRANCH_NAME}"
docker login -u \$oauthtoken -p $NGC_TOKEN nvcr.io
docker build -t $IMAGE_NAME:$COMBINED_TAG \
--build-arg ISAACSIM_BASE_IMAGE_ARG=$ISAACSIM_BASE_IMAGE \
--build-arg ISAACSIM_VERSION_ARG=$ISAACSIM_BASE_VERSION \
--build-arg ISAACSIM_ROOT_PATH_ARG=/isaac-sim \
--build-arg ISAACLAB_PATH_ARG=/workspace/isaaclab \
--build-arg DOCKER_USER_HOME_ARG=/root \
-f docker/Dockerfile.base .
docker push $IMAGE_NAME:$COMBINED_TAG
docker tag $IMAGE_NAME:$COMBINED_TAG $IMAGE_NAME:$COMBINED_TAG-b$CODEBUILD_BUILD_NUMBER
docker push $IMAGE_NAME:$COMBINED_TAG-b$CODEBUILD_BUILD_NUMBER
84 changes: 84 additions & 0 deletions .aws/premerge-ci-buildspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
version: 0.2

phases:
pre_build:
commands:
- echo "Launching EC2 instance to run tests"
- |
INSTANCE_ID=$(aws ec2 run-instances \
--image-id ami-0b3a9d48380433e49 \
--count 1 \
--instance-type g5.2xlarge \
--key-name production/ssh/isaaclab \
--security-group-ids sg-02617e4b8916794c4 \
--subnet-id subnet-0907ceaeb40fd9eac \
--block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":500}}]' \
--output text \
--query 'Instances[0].InstanceId')
- aws ec2 wait instance-running --instance-ids $INSTANCE_ID
- |
EC2_INSTANCE_IP=$(aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" "Name=instance-id,Values=$INSTANCE_ID" \
--query 'Reservations[*].Instances[*].[PrivateIpAddress]' \
--output text)
- mkdir -p ~/.ssh
- |
aws ec2 describe-key-pairs --include-public-key --key-name production/ssh/isaaclab \
--query 'KeyPairs[0].PublicKey' --output text > ~/.ssh/id_rsa.pub
- |
aws secretsmanager get-secret-value --secret-id production/ssh/isaaclab \
--query SecretString --output text > ~/.ssh/id_rsa
- chmod 400 ~/.ssh/id_*
- echo "Host $EC2_INSTANCE_IP\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- |
aws ec2-instance-connect send-ssh-public-key \
--instance-id $INSTANCE_ID \
--availability-zone us-west-2a \
--ssh-public-key file://~/.ssh/id_rsa.pub \
--instance-os-user ubuntu
build:
commands:
- echo "Running tests on EC2 instance"
- SRC_DIR=$(basename $CODEBUILD_SRC_DIR)
- cd ..
- |
bash -c '
function retry_scp() {
local retries=5
local wait_time=30
local count=0
while [ $count -lt $retries ]; do
sleep $wait_time
scp -r $SRC_DIR ubuntu@$EC2_INSTANCE_IP:~
if [ $? -eq 0 ]; then
echo "SCP command succeeded"
return 0
fi
count=$((count + 1))
echo "SCP command failed. Retrying in $wait_time seconds..."
done
echo "SCP command failed after $retries attempts."
return 1
}
retry_scp
'
- ssh ubuntu@$EC2_INSTANCE_IP "docker login -u \\\$oauthtoken -p $NGC_TOKEN nvcr.io"
- |
ssh ubuntu@$EC2_INSTANCE_IP "
cd $SRC_DIR
DOCKER_BUILDKIT=1 docker build -t isaac-lab-dev \
--build-arg ISAACSIM_BASE_IMAGE_ARG=$ISAACSIM_BASE_IMAGE \
--build-arg ISAACSIM_VERSION_ARG=$ISAACSIM_BASE_VERSION \
--build-arg ISAACSIM_ROOT_PATH_ARG=/isaac-sim \
--build-arg ISAACLAB_PATH_ARG=/workspace/isaaclab \
--build-arg DOCKER_USER_HOME_ARG=/root \
-f docker/Dockerfile.base .
docker run --rm --entrypoint bash --gpus all --network=host \
--name isaac-lab-test isaac-lab-dev ./isaaclab.sh -t && exit \$?
"
post_build:
commands:
- echo "Terminating EC2 instance"
- aws ec2 terminate-instances --instance-ids $INSTANCE_ID
4 changes: 2 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ docs/
**/videos/*
*.tmp
# ignore docker
docker/exports/
docker/.container.yaml
docker/cluster/exports/
docker/.container.cfg
# ignore recordings
recordings/
# ignore __pycache__
Expand Down
76 changes: 76 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Codeowners are designated by their GitHub username. They are
# the people who are responsible for reviewing and approving PRs
# that modify the files that match the pattern.
#
# Codeowners are not the same as contributors. They are not
# automatically added to the PR, but they will be requested to
# review the PR when it is created.
#
# As a general rule, the codeowners are the people who are
# most familiar with the code that the PR is modifying. If you
# are not sure who to add, ask in the issue or in the PR itself.
#
# The format of the file is as follows:
# <file pattern> <codeowners>


# App experience files
# These are the files that are used to launch the app with the correct settings and configurations
/source/apps/ @kellyguo11 @hhansen-bdai @Mayankm96 @Dhoeller19

# Core Framework
/source/extensions/omni.isaac.lab/ @Dhoeller19 @Mayankm96 @jsmith-bdai @kellyguo11
/source/extensions/omni.isaac.lab/omni/isaac/lab/actuators @Dhoeller19 @Mayankm96 @nikitardn @jtigue-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/app @hhansen-bdai @kellyguo11
/source/extensions/omni.isaac.lab/omni/isaac/lab/assets @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96 @jtigue-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/deformable_object @kellyguo11 @Mayankm96 @masoudmoghani
/source/extensions/omni.isaac.lab/omni/isaac/lab/controllers @Mayankm96
/source/extensions/omni.isaac.lab/omni/isaac/lab/envs @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96
/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/manager_based_* @jsmith-bdai @Dhoeller19 @Mayankm96
/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/direct_* @kellyguo11
/source/extensions/omni.isaac.lab/omni/isaac/lab/managers @jsmith-bdai @Dhoeller19 @Mayankm96
/source/extensions/omni.isaac.lab/omni/isaac/lab/sensors @jsmith-bdai @Dhoeller19 @pascal-roth @Mayankm96 @jtigue-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/sensors/camera @kellyguo11 @pascal-roth
/source/extensions/omni.isaac.lab/omni/isaac/lab/sensors/contact_sensor @jtigue-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/sensors/frame_transformer @jsmith-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/sensors/ray_caster @pascal-roth @Dhoeller19
/source/extensions/omni.isaac.lab/omni/isaac/lab/sim @Mayankm96 @jsmith-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/sim/simulation_context.py @Dhoeller19 @kellyguo11
/source/extensions/omni.isaac.lab/omni/isaac/lab/terrains @Dhoeller19 @Mayankm96 @nikitardn
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils @Mayankm96 @jsmith-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/modifiers @jtigue-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/interpolation @jtigue-bdai
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/noise @jtigue-bdai @kellyguo11
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/warp @Dhoeller19 @pascal-roth
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/assets.py @Dhoeller19 @kellyguo11 @Mayankm96
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/math.py @jsmith-bdai @Dhoeller19 @Mayankm96
/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/configclass.py @Mayankm96 @Dhoeller19

# RL Environment
/source/extensions/omni.isaac.lab_tasks/ @Dhoeller19 @Mayankm96 @jsmith-bdai @kellyguo11
/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct @Dhoeller19 @kellyguo11
/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based @Dhoeller19 @Mayankm96 @jsmith-bdai @jtigue-bdai

# Assets
/source/extensions/omni.isaac.lab_assets/omni/isaac/lab_assets/ @Dhoeller19 @pascal-roth @jsmith-bdai

# Standalone Scripts
/source/standalone/demos/ @jsmith-bdai @jtigue-bdai @Dhoeller19 @kellyguo11 @Mayankm96
/source/standalone/environments/ @Mayankm96
/source/standalone/tools/ @jsmith-bdai @Mayankm96
/source/standalone/tutorials/ @jsmith-bdai @pascal-roth @kellyguo11 @Dhoeller19 @Mayankm96
/source/standalone/workflows/ @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96

# Github Actions
# This list is for people wanting to be notified every time there's a change
# related to Github Actions
/.github/ @kellyguo11 @jsmith-bdai

# Visual Studio Code
/.vscode/ @hhansen-bdai @Mayankm96

# Infrastructure (Docker, Docs, Tools)
/docker/ @hhansen-bdai @pascal-roth
/docs/ @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96
/tools/ @hhansen-bdai @jsmith-bdai @Dhoeller19
/isaaclab.* @hhansen-bdai @Dhoeller19 @Mayankm96 @kellyguo11
60 changes: 54 additions & 6 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,34 @@
name: Build & deploy docs

on: [push]
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
check-secrets:
name: Check secrets
runs-on: ubuntu-latest
outputs:
trigger-deploy: ${{ steps.trigger-deploy.outputs.defined }}
steps:
- id: trigger-deploy
env:
REPO_NAME: ${{ secrets.REPO_NAME }}
BRANCH_REF: ${{ secrets.BRANCH_REF }}
if: "${{ github.repository == env.REPO_NAME && github.ref == env.BRANCH_REF }}"
run: echo "defined=true" >> "$GITHUB_OUTPUT"

build-docs:
name: Build and deploy documentation
name: Build Docs
runs-on: ubuntu-latest
if: github.repository == 'isaac-sim/IsaacLab' && github.ref == 'refs/heads/main'
needs: [check-secrets]

steps:
- name: Checkout code
Expand All @@ -22,12 +44,38 @@ jobs:
working-directory: ./docs
run: pip install -r requirements.txt

- name: Generate docs
- name: Check branch docs building
working-directory: ./docs
run: make html
if: needs.check-secrets.outputs.trigger-deploy != 'true'
run: make current-docs

- name: Generate multi-version docs
working-directory: ./docs
run: |
git fetch --prune --unshallow --tags
make multi-docs
- name: Upload docs artifact
uses: actions/upload-artifact@v4
with:
name: docs-html
path: ./docs/_build

deploy-docs:
name: Deploy Docs
runs-on: ubuntu-latest
needs: [check-secrets, build-docs]
if: needs.check-secrets.outputs.trigger-deploy == 'true'

steps:
- name: Download docs artifact
uses: actions/download-artifact@v4
with:
name: docs-html
path: ./docs/_build

- name: Deploy to gh-pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/_build/html
publish_dir: ./docs/_build
12 changes: 0 additions & 12 deletions .github/workflows/postmerge-ci-buildspec.yml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/premerge-ci-buildspec.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@

# Docker/Singularity
**/*.sif
docker/exports/
docker/.container.yaml
docker/cluster/exports/
docker/.container.cfg

# IDE
**/.idea/
Expand Down
Loading

0 comments on commit 0d0fa41

Please sign in to comment.