name: Build Cross-Compiled ROS 2 Images permissions: contents: read on: workflow_dispatch: inputs: platform: description: "Target platform" required: true type: choice options: [rk3588, rk3576] default: rk3576 ros_distro: description: "ROS 2 distribution" required: true type: choice options: [rolling, jazzy, lyrical] default: lyrical jobs: build: runs-on: ubuntu-22.04 env: PLATFORM: ${{ inputs.platform }} ROS_DISTRO: ${{ inputs.ros_distro }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Debug inputs run: | echo "PLATFORM=$PLATFORM" echo "ROS_DISTRO=$ROS_DISTRO" NPROC=$(nproc) BUILD_JOBS=$(( NPROC / 2 > 0 ? NPROC / 2 : 1 )) echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV # ── Stage 0: Download Buildroot SDK ──────────────────────────────── - name: Download Buildroot SDK env: GITEA_TOKEN: ${{ secrets.ERIC_TOKEN }} run: | echo "token length: ${#GITEA_TOKEN}" mkdir -p cross_compile/${PLATFORM} SDK_URL="https://gitea.himicat.top/api/packages/xixing-tech/generic/${PLATFORM}-buildroot-sdk/1.0.0/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz" curl --fail -u "EricXZ:${GITEA_TOKEN}" \ -L -o cross_compile/${PLATFORM}/sdk.tar.gz \ "$SDK_URL" # ── Stage 1: cc-base ───────────────────────────────────────────── - name: Build cc-base run: docker compose -f cross_compile/compose.yaml build cc-base # ── Stage 2: cc-toolchain ───────────────────────────────────────── - name: Build cc-toolchain run: docker compose -f cross_compile/compose.yaml build cc-toolchain # ── Stage 3: vendor-packages ────────────────────────────────────── - name: Build vendor-packages run: docker compose -f cross_compile/compose.yaml build vendor-packages # ── Stage 4: ros2 ───────────────────────────────────────────────── - name: Build ROS 2 run: docker compose -f cross_compile/compose.yaml build ros2 # ── Summary ─────────────────────────────────────────────────────── - name: Image summary if: always() run: | echo "### Built Images :rocket:" >> $GITHUB_STEP_SUMMARY docker images \ --filter "reference=cc-*" \ --filter "reference=*/cc-*" \ --format "| \`{{.Repository}}:{{.Tag}}\` | {{.Size}} |" \ >> $GITHUB_STEP_SUMMARY