Skip to content

Commit c4bd025

Browse files
Improve CI (#151)
* 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>
1 parent 3e72969 commit c4bd025

File tree

1 file changed

+82
-102
lines changed

1 file changed

+82
-102
lines changed

.github/workflows/ci.yaml

Lines changed: 82 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
on:
3+
workflow_dispatch:
4+
pull_request:
35
push:
4-
tags:
5-
- "*"
66
name: Build
77
env:
88
L4T32_BSP: 32.7.4
@@ -11,8 +11,64 @@ env:
1111
jobs:
1212
build:
1313
strategy:
14+
fail-fast: false
1415
matrix:
15-
ubuntu: ["22.04", "24.04"]
16+
include:
17+
# Ubuntu 22.04 + L4T 32 (Nano family)
18+
- ubuntu: "22.04"
19+
board: "jetson-nano"
20+
revision: "300"
21+
l4t_version: "32"
22+
l4t_bsp: ${L4T32_BSP}
23+
- ubuntu: "22.04"
24+
board: "jetson-nano"
25+
revision: "200"
26+
l4t_version: "32"
27+
l4t_bsp: ${L4T32_BSP}
28+
- ubuntu: "22.04"
29+
board: "jetson-nano"
30+
revision: "100"
31+
l4t_version: "32"
32+
l4t_bsp: ${L4T32_BSP}
33+
- ubuntu: "22.04"
34+
board: "jetson-nano-2gb"
35+
l4t_version: "32"
36+
l4t_bsp: ${L4T32_BSP}
37+
38+
# Ubuntu 24.04 + L4T 36 (Orin family)
39+
- ubuntu: "24.04"
40+
board: "jetson-orin-nano"
41+
device: "SD"
42+
l4t_version: "36"
43+
l4t_bsp: ${L4T36_BSP}
44+
- ubuntu: "24.04"
45+
board: "jetson-orin-nano"
46+
device: "USB"
47+
l4t_version: "36"
48+
l4t_bsp: ${L4T36_BSP}
49+
50+
# Ubuntu 22.04 + L4T 35 (Xavier family)
51+
- ubuntu: "22.04"
52+
board: "jetson-agx-xavier"
53+
device: "SD"
54+
l4t_version: "35"
55+
l4t_bsp: ${L4T35_BSP}
56+
- ubuntu: "22.04"
57+
board: "jetson-agx-xavier"
58+
device: "USB"
59+
l4t_version: "35"
60+
l4t_bsp: ${L4T35_BSP}
61+
- ubuntu: "22.04"
62+
board: "jetson-xavier-nx"
63+
device: "SD"
64+
l4t_version: "35"
65+
l4t_bsp: ${L4T35_BSP}
66+
- ubuntu: "22.04"
67+
board: "jetson-xavier-nx"
68+
device: "USB"
69+
l4t_version: "35"
70+
l4t_bsp: ${L4T35_BSP}
71+
1672
permissions:
1773
contents: write
1874
runs-on: ubuntu-latest
@@ -43,114 +99,38 @@ jobs:
4399
- name: Create rootfs
44100
run: just build-jetson-rootfs ${{ matrix.ubuntu }}
45101

46-
- name: Build jetson image for Jetson nano revision 300
47-
if: matrix.ubuntu == '22.04'
48-
run: |
49-
just build-jetson-image \
50-
-b jetson-nano \
51-
-r 300
52-
mv jetson.img "jetson-nano-300_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
53-
pigz "jetson-nano-300_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
54-
ls -lht "jetson-nano-300_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
55-
56-
- name: Build jetson image for Jetson nano revision 200
57-
if: matrix.ubuntu == '22.04'
58-
run: |
59-
just build-jetson-image \
60-
-b jetson-nano \
61-
-r 200
62-
mv jetson.img "jetson-nano-200_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
63-
pigz "jetson-nano-200_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
64-
ls -lht "jetson-nano-200_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
65-
66-
- name: Build jetson image for Jetson nano revision 100
67-
if: matrix.ubuntu == '22.04'
68-
run: |
69-
just build-jetson-image \
70-
-b jetson-nano \
71-
-r 100
72-
mv jetson.img "jetson-nano-100_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
73-
pigz "jetson-nano-100_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
74-
ls -lht "jetson-nano-100_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
75-
76-
- name: Build jetson image for Jetson nano 2G
77-
if: matrix.ubuntu == '22.04'
78-
run: |
79-
just build-jetson-image \
80-
-b jetson-nano-2gb
81-
mv jetson.img "jetson-nano-2gb_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
82-
pigz "jetson-nano-2gb_${{ matrix.ubuntu }}_${L4T32_BSP}.img"
83-
ls -lht "jetson-nano-2gb_${{ matrix.ubuntu }}_${L4T32_BSP}.img.gz"
84-
85-
- name: Build jetson image for jetson orin nano SD
86-
if: matrix.ubuntu == '24.04'
102+
- name: Build jetson image
87103
run: |
88104
just build-jetson-image \
89-
-b jetson-orin-nano \
90-
-d SD \
91-
-l 36
92-
mv jetson.img "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_SD.img"
93-
pigz "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_SD.img"
94-
ls -lht "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_SD.img.gz"
105+
-b ${{ matrix.board }} \
106+
${{ matrix.revision && format('-r {0}', matrix.revision) || '' }} \
107+
${{ matrix.device && format('-d {0}', matrix.device) || '' }} \
108+
${{ matrix.l4t_version && format('-l {0}', matrix.l4t_version) || '' }}
95109
96-
- name: Build jetson image for jetson orin nano USB
97-
if: matrix.ubuntu == '24.04'
98-
run: |
99-
just build-jetson-image \
100-
-b jetson-orin-nano \
101-
-d USB \
102-
-l 36
103-
mv jetson.img "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_USB.img"
104-
pigz "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_USB.img"
105-
ls -lht "jetson-orin-nano_${{ matrix.ubuntu }}_${L4T36_BSP}_USB.img.gz"
110+
IMAGE_NAME="${{ matrix.board }}"
111+
[[ -n "${{ matrix.revision }}" ]] && IMAGE_NAME="${IMAGE_NAME}-${{ matrix.revision }}"
112+
[[ -n "${{ matrix.device }}" ]] && IMAGE_NAME="${IMAGE_NAME}_${{ matrix.device }}"
106113
107-
- name: Build jetson image for jetson agx xavier SD
108-
if: matrix.ubuntu == '22.04'
109-
run: |
110-
just build-jetson-image \
111-
-b jetson-agx-xavier \
112-
-d SD \
113-
-l 35
114-
mv jetson.img "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
115-
pigz "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
116-
ls -lht "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img.gz"
114+
IMAGE_NAME="${IMAGE_NAME}-${{ matrix.ubuntu }}-${{ matrix.l4t_bsp }}"
115+
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_ENV
117116
118-
- name: Build jetson image for jetson agx xavier USB
119-
if: matrix.ubuntu == '22.04'
120-
run: |
121-
just build-jetson-image \
122-
-b jetson-agx-xavier \
123-
-d USB \
124-
-l 35
125-
mv jetson.img "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
126-
pigz "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
127-
ls -lht "jetson-agx-xavier_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img.gz"
117+
mv jetson.img "${IMAGE_NAME}.img"
118+
pigz "${IMAGE_NAME}.img"
119+
ls -lht "${IMAGE_NAME}.img.gz"
128120
129-
- name: Build jetson image for jetson xavier nx SD
130-
if: matrix.ubuntu == '22.04'
131-
run: |
132-
just build-jetson-image \
133-
-b jetson-xavier-nx \
134-
-d SD \
135-
-l 35
136-
mv jetson.img "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
137-
pigz "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img"
138-
ls -lht "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_SD.img.gz"
139-
140-
- name: Build jetson image for jetson xavier nx USB
141-
if: matrix.ubuntu == '22.04'
142-
run: |
143-
just build-jetson-image \
144-
-b jetson-xavier-nx \
145-
-d USB \
146-
-l 35
147-
mv jetson.img "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
148-
pigz "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img"
149-
ls -lht "jetson-xavier-nx_${{ matrix.ubuntu }}_${L4T35_BSP}_USB.img.gz"
121+
- name: Upload artifact
122+
uses: actions/upload-artifact@v4
123+
timeout-minutes: 120
124+
with:
125+
name: ${{ env.IMAGE_NAME }}
126+
path: "jetson*"
127+
if-no-files-found: error
128+
retention-days: 7
150129

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

0 commit comments

Comments
 (0)