Skip to content

Commit

Permalink
Improve CI (#151)
Browse files Browse the repository at this point in the history
* ci: Move to matrix

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>

* ci: Build for manual dispatch, PRs and any push

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>

* ci: Upload artifacts

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>

---------

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
  • Loading branch information
patrickelectric authored Feb 1, 2025
1 parent 3e72969 commit c4bd025
Showing 1 changed file with 82 additions and 102 deletions.
184 changes: 82 additions & 102 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
on:
workflow_dispatch:
pull_request:
push:
tags:
- "*"
name: Build
env:
L4T32_BSP: 32.7.4
Expand All @@ -11,8 +11,64 @@ env:
jobs:
build:
strategy:
fail-fast: false
matrix:
ubuntu: ["22.04", "24.04"]
include:
# Ubuntu 22.04 + L4T 32 (Nano family)
- ubuntu: "22.04"
board: "jetson-nano"
revision: "300"
l4t_version: "32"
l4t_bsp: ${L4T32_BSP}
- ubuntu: "22.04"
board: "jetson-nano"
revision: "200"
l4t_version: "32"
l4t_bsp: ${L4T32_BSP}
- ubuntu: "22.04"
board: "jetson-nano"
revision: "100"
l4t_version: "32"
l4t_bsp: ${L4T32_BSP}
- ubuntu: "22.04"
board: "jetson-nano-2gb"
l4t_version: "32"
l4t_bsp: ${L4T32_BSP}

# Ubuntu 24.04 + L4T 36 (Orin family)
- ubuntu: "24.04"
board: "jetson-orin-nano"
device: "SD"
l4t_version: "36"
l4t_bsp: ${L4T36_BSP}
- ubuntu: "24.04"
board: "jetson-orin-nano"
device: "USB"
l4t_version: "36"
l4t_bsp: ${L4T36_BSP}

# Ubuntu 22.04 + L4T 35 (Xavier family)
- ubuntu: "22.04"
board: "jetson-agx-xavier"
device: "SD"
l4t_version: "35"
l4t_bsp: ${L4T35_BSP}
- ubuntu: "22.04"
board: "jetson-agx-xavier"
device: "USB"
l4t_version: "35"
l4t_bsp: ${L4T35_BSP}
- ubuntu: "22.04"
board: "jetson-xavier-nx"
device: "SD"
l4t_version: "35"
l4t_bsp: ${L4T35_BSP}
- ubuntu: "22.04"
board: "jetson-xavier-nx"
device: "USB"
l4t_version: "35"
l4t_bsp: ${L4T35_BSP}

permissions:
contents: write
runs-on: ubuntu-latest
Expand Down Expand Up @@ -43,114 +99,38 @@ jobs:
- name: Create rootfs
run: just build-jetson-rootfs ${{ matrix.ubuntu }}

- name: Build jetson image for Jetson nano revision 300
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-nano \
-r 300
mv jetson.img "jetson-nano-300_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
pigz "jetson-nano-300_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
ls -lht "jetson-nano-300_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
- name: Build jetson image for Jetson nano revision 200
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-nano \
-r 200
mv jetson.img "jetson-nano-200_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
pigz "jetson-nano-200_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
ls -lht "jetson-nano-200_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
- name: Build jetson image for Jetson nano revision 100
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-nano \
-r 100
mv jetson.img "jetson-nano-100_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
pigz "jetson-nano-100_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
ls -lht "jetson-nano-100_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
- name: Build jetson image for Jetson nano 2G
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-nano-2gb
mv jetson.img "jetson-nano-2gb_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
pigz "jetson-nano-2gb_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
ls -lht "jetson-nano-2gb_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
- name: Build jetson image for jetson orin nano SD
if: matrix.ubuntu == '24.04'
- name: Build jetson image
run: |
just build-jetson-image \
-b jetson-orin-nano \
-d SD \
-l 36
mv jetson.img "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_SD.img"
pigz "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_SD.img"
ls -lht "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_SD.img.gz"
-b ${{ matrix.board }} \
${{ matrix.revision && format('-r {0}', matrix.revision) || '' }} \
${{ matrix.device && format('-d {0}', matrix.device) || '' }} \
${{ matrix.l4t_version && format('-l {0}', matrix.l4t_version) || '' }}
- name: Build jetson image for jetson orin nano USB
if: matrix.ubuntu == '24.04'
run: |
just build-jetson-image \
-b jetson-orin-nano \
-d USB \
-l 36
mv jetson.img "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_USB.img"
pigz "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_USB.img"
ls -lht "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_USB.img.gz"
IMAGE_NAME="${{ matrix.board }}"
[[ -n "${{ matrix.revision }}" ]] && IMAGE_NAME="${IMAGE_NAME}-${{ matrix.revision }}"
[[ -n "${{ matrix.device }}" ]] && IMAGE_NAME="${IMAGE_NAME}_${{ matrix.device }}"
- name: Build jetson image for jetson agx xavier SD
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-agx-xavier \
-d SD \
-l 35
mv jetson.img "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
pigz "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
ls -lht "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img.gz"
IMAGE_NAME="${IMAGE_NAME}-${{ matrix.ubuntu }}-${{ matrix.l4t_bsp }}"
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_ENV
- name: Build jetson image for jetson agx xavier USB
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-agx-xavier \
-d USB \
-l 35
mv jetson.img "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
pigz "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
ls -lht "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img.gz"
mv jetson.img "${IMAGE_NAME}.img"
pigz "${IMAGE_NAME}.img"
ls -lht "${IMAGE_NAME}.img.gz"
- name: Build jetson image for jetson xavier nx SD
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-xavier-nx \
-d SD \
-l 35
mv jetson.img "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
pigz "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
ls -lht "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img.gz"
- name: Build jetson image for jetson xavier nx USB
if: matrix.ubuntu == '22.04'
run: |
just build-jetson-image \
-b jetson-xavier-nx \
-d USB \
-l 35
mv jetson.img "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
pigz "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
ls -lht "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img.gz"
- name: Upload artifact
uses: actions/upload-artifact@v4
timeout-minutes: 120
with:
name: ${{ env.IMAGE_NAME }}
path: "jetson*"
if-no-files-found: error
retention-days: 7

- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
body: |
[CHANGELOG.md](${{ github.server_url }}/${{ github.repository }}/blob/master/CHANGELOG.md)
files: "jetson*"
files: ${{ env.IMAGE_NAME }}

0 comments on commit c4bd025

Please sign in to comment.