Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
302481c
dev containers WIP
ConnorNeed Aug 15, 2025
6e42fcd
Trial #1
ConnorNeed Aug 15, 2025
ef9e7ca
try this load of shit
ConnorNeed Aug 15, 2025
c2490df
more shit
ConnorNeed Aug 15, 2025
2a5450d
try again (fuck me)
ConnorNeed Aug 15, 2025
4788405
insert curse word here
ConnorNeed Aug 15, 2025
e0678d5
FUCK
ConnorNeed Aug 15, 2025
0d2a7ce
SHIT
ConnorNeed Aug 15, 2025
5f8899b
ASS
ConnorNeed Aug 15, 2025
1cf3ab9
try this again (still hate devops)
ConnorNeed Aug 15, 2025
81a973a
5.0 any better?
ConnorNeed Aug 15, 2025
08ff67a
try again
ConnorNeed Aug 15, 2025
5ded586
another one bites the dust
ConnorNeed Aug 15, 2025
ca3ac82
fix race cond
ConnorNeed Aug 15, 2025
cfe178d
try again
ConnorNeed Aug 15, 2025
61563b6
hello. it's me
ConnorNeed Aug 15, 2025
a74abfa
staying alive
ConnorNeed Aug 15, 2025
d1cdabd
I hate my life
ConnorNeed Aug 15, 2025
4abee18
I am going to jump
ConnorNeed Aug 15, 2025
36864bb
add kindr
ConnorNeed Aug 15, 2025
68ba88d
kindr attempt 2
ConnorNeed Aug 15, 2025
1dde17b
hit me baby one more time
ConnorNeed Aug 15, 2025
290563a
WIP
ConnorNeed Aug 23, 2025
f14509b
I hurt
ConnorNeed Aug 23, 2025
7ccb0fd
damn daniel
ConnorNeed Aug 23, 2025
0c601d5
it builds
ConnorNeed Aug 25, 2025
a9f2c85
x86 seems good
ConnorNeed Aug 25, 2025
9d01195
dev container fixes
ConnorNeed Aug 25, 2025
54a0611
missing deps
ConnorNeed Aug 25, 2025
58f0e03
rm
ConnorNeed Aug 26, 2025
456b2c2
add git modules
ConnorNeed Aug 26, 2025
66b3629
refactor
ConnorNeed Aug 26, 2025
eeb2c09
fix typo
ConnorNeed Aug 26, 2025
eb6d1f4
sub
ConnorNeed Aug 26, 2025
8965ac0
zed this time?
ConnorNeed Aug 26, 2025
54d2c46
move shit
ConnorNeed Aug 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 39 additions & 0 deletions .devcontainer/amd64/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"name": "CPRT Dev Container",

"image": "cprtsoftware/rover:dev-amd64",

"runArgs": [
"--network=host",
"--volume=/dev:/dev",
"--volume=/sys:/sys",
"--volume=/etc/timezone:/etc/timezone",
"--ipc=host",
"--shm-size=2g"
],
"mounts": [
"source=${env:SSH_AUTH_SOCK},target=/ssh-agent,type=bind",
"source=${env:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached"
],
"containerEnv": {
"SSH_AUTH_SOCK": "/ssh-agent",
"NVIDIA_VISIBLE_DEVICES": "all",
"NVIDIA_DRIVER_CAPABILITIES": "all"
},
"remoteUser": "vscode",
"containerUser": "vscode",
"remoteEnv": {
"USER": "vscode"
},

// Usual extras (optional)
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"extensions": [ "ms-vscode.cpptools", "ms-azuretools.vscode-docker" ]
}
},
"postCreateCommand": "echo 'source /opt/ros/humble/setup.bash' >> ~/.bashrc"
}
41 changes: 41 additions & 0 deletions .devcontainer/jetson/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"name": "CPRT Dev Container",

"image": "cprtsoftware/rover:dev-arm64",

"runArgs": [
"--network=host",
"--volume=/dev:/dev",
"--volume=/sys:/sys",
"--volume=/etc/timezone:/etc/timezone",
"--runtime=nvidia",
"--gpus=all",
"--ipc=host",
"--shm-size=2g"
],
"mounts": [
"source=${env:SSH_AUTH_SOCK},target=/ssh-agent,type=bind",
"source=${env:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached"
],
"containerEnv": {
"SSH_AUTH_SOCK": "/ssh-agent",
"NVIDIA_VISIBLE_DEVICES": "all",
"NVIDIA_DRIVER_CAPABILITIES": "all"
},
"remoteUser": "vscode",
"containerUser": "vscode",
"remoteEnv": {
"USER": "vscode"
},

// Usual extras (optional)
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"extensions": [ "ms-vscode.cpptools", "ms-azuretools.vscode-docker" ]
}
},
"postCreateCommand": "source /opt/ros/humble/setup.bash"
}
43 changes: 43 additions & 0 deletions .devcontainer/windows/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"name": "CPRT Dev Container (Windows Host)",
"image": "cprtsoftware/rover:dev-arm64",

"runArgs": [
"--network=host",
"--ipc=host",
"--shm-size=2g",
"--gpus=all"
],

"mounts": [
"source=${env:USERPROFILE}\\.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached",
"source=${env:USERPROFILE}\\.ccache,target=/home/vscode/.ccache,type=bind",
"source=${env:USERPROFILE}\\.ssh,target=/home/vscode/.ssh,type=bind,consistency=cached"
],

"containerEnv": {
"NVIDIA_VISIBLE_DEVICES": "all",
"NVIDIA_DRIVER_CAPABILITIES": "all"
},

"remoteUser": "vscode",
"containerUser": "vscode",
"remoteEnv": {
"USER": "vscode"
},

"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"extensions": [
"ms-vscode.cpptools",
"ms-azuretools.vscode-docker",
"ms-iot.vscode-ros"
]
}
},

"postCreateCommand": "source /opt/ros/humble/setup.bash"
}
144 changes: 144 additions & 0 deletions .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
name: Docker CI/CD Multi-Arch

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

env:
IMAGE_NAME: cprtsoftware/rover

jobs:
setup:
runs-on: ubuntu-latest
outputs:
IMAGE_NAME: ${{ env.IMAGE_NAME }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

build-amd64:
runs-on: ubuntu-latest
needs: setup
env:
IMAGE_NAME: ${{ needs.setup.outputs.IMAGE_NAME }}
outputs:
app_digest: ${{ steps.build_app.outputs.digest }}
dev_digest: ${{ steps.build_dev.outputs.digest }}
steps:
- uses: actions/checkout@v4

- uses: docker/setup-buildx-action@v3

- name: Docker login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

# --- APP (rover) image, amd64 ---
- name: Build & push amd64 APP (with registry cache)
id: build_app
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
target: rover
platforms: linux/amd64
push: true
build-args: |
BASE_IMAGE=ubuntu:22.04
TARGETARCH=amd64
tags: |
${{ env.IMAGE_NAME }}:amd64
${{ env.IMAGE_NAME }}:${{ github.sha }}-amd64
cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:amd64-cache
cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:amd64-cache,mode=max
provenance: false

# --- DEV image, amd64 ---
- name: Build & push amd64 DEV (with registry cache)
id: build_dev
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
target: dev
platforms: linux/amd64
push: true
build-args: |
BASE_IMAGE=ubuntu:22.04
TARGETARCH=amd64
tags: |
${{ env.IMAGE_NAME }}:dev-amd64
${{ env.IMAGE_NAME }}:dev-${{ github.sha }}-amd64
cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:amd64-cache
cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:amd64-cache,mode=max
provenance: false

build-arm64:
runs-on: ubuntu-latest
needs: setup
env:
IMAGE_NAME: ${{ needs.setup.outputs.IMAGE_NAME }}
outputs:
app_digest: ${{ steps.build_app.outputs.digest }}
dev_digest: ${{ steps.build_dev.outputs.digest }}
steps:
- uses: actions/checkout@v4

- name: Set up QEMU (for arm emulation)
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64

- uses: docker/setup-buildx-action@v3

- name: Docker login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

# --- APP (rover) image, arm64 ---
- name: Build & push arm64 APP (with registry cache)
id: build_app
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
target: rover
platforms: linux/arm64
push: true
build-args: |
BASE_IMAGE=nvcr.io/nvidia/l4t-jetpack:r36.4.0
TARGETARCH=arm64
tags: |
${{ env.IMAGE_NAME }}:arm64
${{ env.IMAGE_NAME }}:${{ github.sha }}-arm64
cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:arm64-cache
cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:arm64-cache,mode=max
provenance: false

# --- DEV image, arm64 ---
- name: Build & push arm64 DEV (with registry cache)
id: build_dev
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
target: dev
platforms: linux/arm64
push: true
build-args: |
BASE_IMAGE=nvcr.io/nvidia/l4t-jetpack:r36.4.0
TARGETARCH=arm64
tags: |
${{ env.IMAGE_NAME }}:dev-arm64
${{ env.IMAGE_NAME }}:dev-${{ github.sha }}-arm64
cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:arm64-cache
cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:arm64-cache,mode=max
provenance: false
33 changes: 0 additions & 33 deletions .github/workflows/docker-build-science.yml

This file was deleted.

3 changes: 0 additions & 3 deletions .github/workflows/lint-and-format.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
name: Lint and Format Check

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
Expand Down
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Directories
install/
install*/
log/
build/
build*/
*.vscode
raman/

Expand All @@ -13,4 +13,6 @@ __pycache__
camera_setup/images/*

# macOS Directory Information
.DS_Store
.DS_Store

upgrade_pkg.tar.*
18 changes: 7 additions & 11 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
[submodule "src/kindr_ros"]
path = src/kindr_ros
url = https://github.com/SivertHavso/kindr_ros.git
branch = ros2
[submodule "src/zed-ros2-wrapper"]
path = src/zed-ros2-wrapper
url = https://github.com/stereolabs/zed-ros2-wrapper.git
[submodule "ublox"]
path = src/ublox
[submodule "src/third-party/ublox"]
path = src/third-party/ublox
url = https://github.com/KumarRobotics/ublox.git
branch = ros2
[submodule "src/ouster-ros"]
path = src/ouster-ros
[submodule "src/third-party/ouster-ros"]
path = src/third-party/ouster-ros
url = https://github.com/ouster-lidar/ouster-ros.git
branch = ros2
[submodule "src/third-party/zed-ros2-wrapper"]
path = src/third-party/zed-ros2-wrapper
url = https://github.com/stereolabs/zed-ros2-wrapper.git
Loading