@@ -16,12 +16,26 @@ concurrency:
1616 cancel-in-progress : true
1717
1818jobs :
19+ images :
20+ name : Define Base Images
21+ runs-on : ubuntu-latest
22+ outputs :
23+ lint : ghcr.io/nvidia/cutile-python/lint:2026-01-05-90f182d5d748
24+ docs : ghcr.io/nvidia/cutile-python/docs:2025-12-19-3c6df79d5907
25+ build_py310 : ghcr.io/nvidia/cutile-python/build_py_3.10_x86_64:2025-12-19-e23b1344670f
26+ build_py311 : ghcr.io/nvidia/cutile-python/build_py_3.11_x86_64:2025-12-19-34e46267aabe
27+ build_py312 : ghcr.io/nvidia/cutile-python/build_py_3.12_x86_64:2025-12-19-fef7c09fc6e4
28+ build_py313 : ghcr.io/nvidia/cutile-python/build_py_3.13_x86_64:2025-12-19-3c040613bc5c
29+ steps :
30+ - run : echo "Defining image tags"
31+
1932 lint :
2033 name : Lint
34+ needs : images
2135 runs-on : ubuntu-latest
2236 timeout-minutes : 10
2337 container :
24- image : ghcr.io/nvidia/cutile-python/ lint:2026-01-05-90f182d5d748
38+ image : ${{ needs.images.outputs. lint }}
2539 steps :
2640 - name : Checkout repository
2741 uses : actions/checkout@v6
3751
3852 - name : Check inline samples are up to date
3953 run : python test/tools/inline_samples.py --check
54+
55+ docs :
56+ name : Build Docs
57+ if : false
58+ needs : [images, build]
59+ runs-on : ubuntu-latest
60+ timeout-minutes : 10
61+ container :
62+ image : ${{ needs.images.outputs.docs }}
63+ steps :
64+ - name : Checkout repository
65+ uses : actions/checkout@v6
66+
67+ - name : Download wheel
68+ uses : actions/download-artifact@v4
69+ with :
70+ name : wheel-py3.12-linux-x86_64
71+ path : dist/
72+
73+ - name : Install wheel
74+ run : pip install dist/*.whl
75+
76+ - name : Build documentation
77+ run : make -C docs html
78+
79+ - name : Upload docs artifact
80+ uses : actions/upload-artifact@v4
81+ with :
82+ name : docs-html
83+ path : docs/build/html
84+ retention-days : 7
85+
86+ build :
87+ name : Build Wheel (Python ${{ matrix.python-version }})
88+ needs : images
89+ runs-on : ubuntu-latest
90+ timeout-minutes : 30
91+ strategy :
92+ matrix :
93+ include :
94+ - python-version : " 3.10"
95+ image_key : build_py310
96+ - python-version : " 3.11"
97+ image_key : build_py311
98+ - python-version : " 3.12"
99+ image_key : build_py312
100+ - python-version : " 3.13"
101+ image_key : build_py313
102+ container :
103+ image : ${{ needs.images.outputs[matrix.image_key] }}
104+ steps :
105+ - name : Checkout repository
106+ uses : actions/checkout@v6
107+
108+ - name : Build wheel
109+ run : python setup.py bdist_wheel
110+
111+ - name : Upload wheel artifact
112+ uses : actions/upload-artifact@v4
113+ with :
114+ name : wheel-py${{ matrix.python-version }}-linux-x86_64
115+ path : dist/*.whl
116+ if-no-files-found : error
117+ retention-days : 7
0 commit comments