From 2cb3dfcd26a5558d0a8d1f20a34a3eb811706f29 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 10:34:30 -0700 Subject: [PATCH 01/10] Initial version of github workflows --- .github/dependabot.yml | 6 +++++ .github/workflows/ci.yaml | 39 +++++++++++++++++++++++++++++++ .github/workflows/pre-commit.yaml | 34 +++++++++++++++++++++++++++ .pre-commit-config.yaml | 28 +++++++--------------- 4 files changed, 87 insertions(+), 20 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/pre-commit.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..79fc83a --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..e6a7acf --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,39 @@ +name: ROS Industrial CI + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + test-implementation: + name: Test Implementation + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + env: + - IMAGE: rolling-ci + ROS_DISTRO: rolling + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Log into registry + uses: docker/login-action@v3.3.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Run ROS Industrial CI + uses: ros-industrial/industrial_ci@master + env: + DOCKER_IMAGE: dustynv/ros:humble-ros-base-l4t-r36.3.0 + CXXFLAGS: >- + -Wall -Wextra -Wpedantic -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml new file mode 100644 index 0000000..0967015 --- /dev/null +++ b/.github/workflows/pre-commit.yaml @@ -0,0 +1,34 @@ +name: Check pre-commit + +on: + pull_request: + push: + branches: + - main + workflow_dispatch: + +jobs: + pre-commit: + name: Format + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install clang-format-14 + run: sudo apt-get install clang-format-14 + + - name: Run pre-commit + uses: pre-commit/action@v3.0.1 + id: precommit + + - name: Upload pre-commit changes + if: failure() && steps.precommit.outcome == 'failure' + uses: rhaschke/upload-git-patch-action@main + with: + name: pre-commit diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 842295c..be965fe 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,19 +14,6 @@ repos: - id: mixed-line-ending - id: trailing-whitespace -# - repo: https://github.com/pocc/pre-commit-hooks -# rev: v1.3.5 -# hooks: -# - id: clang-format -# args: [--style=Google] -# - id: clang-tidy -# - id: oclint -# - id: uncrustify -# - id: cppcheck -# - id: cpplint -# args: ["--filter=-build/include_order,-readability/todo,-whitespace/indent_namespace"] -# - id: include-what-you-use - - repo: https://github.com/pre-commit/mirrors-clang-format rev: v20.1.0 hooks: @@ -40,11 +27,12 @@ repos: - id: cpplint exclude: .cu args: ["--filter=-build/include_order,-readability/todo,-whitespace/indent_namespace"] + - id: cppcheck + exclude: .cu - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.2 - hooks: - - id: ruff - args: [ --fix ] - - id: ruff-format +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.11.2 + hooks: + - id: ruff + args: [ --fix ] + - id: ruff-format From f1801ee15aa394e28beb3de21e11a39202f1e891 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 10:43:57 -0700 Subject: [PATCH 02/10] apt-get install cppcheck in pre-commit.yaml --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 0967015..8fcc677 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -21,7 +21,7 @@ jobs: python-version: "3.10" - name: Install clang-format-14 - run: sudo apt-get install clang-format-14 + run: sudo apt-get install clang-format-14 cppcheck - name: Run pre-commit uses: pre-commit/action@v3.0.1 From d116918b5f34c32bc2625af1af87ccddcf9cefe0 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 10:48:47 -0700 Subject: [PATCH 03/10] Shift to ARM builder --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 8fcc677..cf5e9c9 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -10,7 +10,7 @@ on: jobs: pre-commit: name: Format - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm steps: - name: Checkout repository uses: actions/checkout@v4 From 92354e124547c07177b414bfd937a67ef37b8e0e Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 11:01:35 -0700 Subject: [PATCH 04/10] Whoops, run CI on arm, pre-commit on x86 --- .github/workflows/ci.yaml | 6 +++--- .github/workflows/pre-commit.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e6a7acf..1c19880 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,9 +8,9 @@ on: workflow_dispatch: jobs: - test-implementation: - name: Test Implementation - runs-on: ubuntu-latest + industrial-ci: + name: Run Industrial CI + runs-on: ubuntu-24.04-arm strategy: fail-fast: false diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index cf5e9c9..8fcc677 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -10,7 +10,7 @@ on: jobs: pre-commit: name: Format - runs-on: ubuntu-24.04-arm + runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 From 287fc81fcb297e59afcf320953b84d7fef07f162 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 11:39:19 -0700 Subject: [PATCH 05/10] Try again on installing deps --- .github/workflows/ci.yaml | 2 +- .github/workflows/install_deps.sh | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/install_deps.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1c19880..44ee442 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -34,6 +34,6 @@ jobs: - name: Run ROS Industrial CI uses: ros-industrial/industrial_ci@master env: - DOCKER_IMAGE: dustynv/ros:humble-ros-base-l4t-r36.3.0 + BEFORE_INIT: './install_deps.sh' CXXFLAGS: >- -Wall -Wextra -Wpedantic -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls diff --git a/.github/workflows/install_deps.sh b/.github/workflows/install_deps.sh new file mode 100644 index 0000000..d66607a --- /dev/null +++ b/.github/workflows/install_deps.sh @@ -0,0 +1,10 @@ +#!/usr/bin/sh + +echo "deb https://repo.download.nvidia.com/jetson/common main" > /etc/apt/sources.list.d/nvidia-l4t-apt-source.list +echo "deb https://repo.download.nvidia.com/jetson/ main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list + +apt-get update +apt-get install -y \ + libegl-dev \ + libegl1 \ + nvidia-l4t-jetson-multimedia-api From 7814828154ab82121b771b788df87b2c2ede156d Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 11:49:44 -0700 Subject: [PATCH 06/10] Explicitly set ROS_DISTRO --- .github/workflows/ci.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 44ee442..c506fef 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,10 +14,7 @@ jobs: strategy: fail-fast: false - matrix: - env: - - IMAGE: rolling-ci - ROS_DISTRO: rolling + steps: - name: Checkout repository uses: actions/checkout@v4 @@ -35,5 +32,6 @@ jobs: uses: ros-industrial/industrial_ci@master env: BEFORE_INIT: './install_deps.sh' + ROS_DISTRO: humble CXXFLAGS: >- -Wall -Wextra -Wpedantic -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls From bc57988948ba540efcfd34a6c9151437a6cf1218 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 11:56:35 -0700 Subject: [PATCH 07/10] Change path to BEFORE_INIT script --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c506fef..2861653 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -31,7 +31,7 @@ jobs: - name: Run ROS Industrial CI uses: ros-industrial/industrial_ci@master env: - BEFORE_INIT: './install_deps.sh' + BEFORE_INIT: '.github/workflows/install_deps.sh' ROS_DISTRO: humble CXXFLAGS: >- -Wall -Wextra -Wpedantic -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls From aa4d53c24c4de4d61c836a31f890beccd5448d3b Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 12:03:54 -0700 Subject: [PATCH 08/10] Call BEFORE_INIT script with sh --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2861653..8ae3b39 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -31,7 +31,7 @@ jobs: - name: Run ROS Industrial CI uses: ros-industrial/industrial_ci@master env: - BEFORE_INIT: '.github/workflows/install_deps.sh' + BEFORE_INIT: 'sh .github/workflows/install_deps.sh' ROS_DISTRO: humble CXXFLAGS: >- -Wall -Wextra -Wpedantic -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls From d832a36476aff990322f5b336a5265a26daed595 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 12:15:05 -0700 Subject: [PATCH 09/10] Add Nvidia key --- .github/workflows/ci.yaml | 2 +- .github/workflows/install_deps.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8ae3b39..6117ddb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -32,6 +32,6 @@ jobs: uses: ros-industrial/industrial_ci@master env: BEFORE_INIT: 'sh .github/workflows/install_deps.sh' - ROS_DISTRO: humble + DOCKER_IMAGE: dustynv/ros:humble-ros-base-l4t-r36.3.0 CXXFLAGS: >- -Wall -Wextra -Wpedantic -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls diff --git a/.github/workflows/install_deps.sh b/.github/workflows/install_deps.sh index d66607a..a156cc8 100644 --- a/.github/workflows/install_deps.sh +++ b/.github/workflows/install_deps.sh @@ -1,7 +1,7 @@ #!/usr/bin/sh -echo "deb https://repo.download.nvidia.com/jetson/common main" > /etc/apt/sources.list.d/nvidia-l4t-apt-source.list -echo "deb https://repo.download.nvidia.com/jetson/ main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list +apt-key adv --fetch-key https://repo.download.nvidia.com/jetson/jetson-ota-public.asc +echo "deb https://repo.download.nvidia.com/jetson/common r36.3 main" > /etc/apt/sources.list.d/nvidia-l4t-apt-source.list apt-get update apt-get install -y \ From cf5996bd2ba374e907c318e7554a78fc33f032e0 Mon Sep 17 00:00:00 2001 From: Aaron Marburg Date: Tue, 25 Mar 2025 12:24:13 -0700 Subject: [PATCH 10/10] Add t234 repo from Nvidia --- .github/workflows/install_deps.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/install_deps.sh b/.github/workflows/install_deps.sh index a156cc8..b47b371 100644 --- a/.github/workflows/install_deps.sh +++ b/.github/workflows/install_deps.sh @@ -2,6 +2,8 @@ apt-key adv --fetch-key https://repo.download.nvidia.com/jetson/jetson-ota-public.asc echo "deb https://repo.download.nvidia.com/jetson/common r36.3 main" > /etc/apt/sources.list.d/nvidia-l4t-apt-source.list +echo "deb https://repo.download.nvidia.com/jetson/t234 r36.3 main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list + apt-get update apt-get install -y \