@@ -31,7 +31,7 @@ concurrency:
3131
3232jobs :
3333 pinocchio-pixi :
34- name : ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} ${{ matrix.compiler }}
34+ name : Standard - ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} ${{ matrix.compiler }}
3535 runs-on : ${{ matrix.os }}
3636 env :
3737 CCACHE_BASEDIR : ${GITHUB_WORKSPACE}
4747 fail-fast : false
4848 matrix :
4949 os : [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-15-intel]
50- environment : [all, all-py39 ]
50+ environment : [all, all-python-oldest ]
5151 build_type : [Release, Debug]
5252
5353 include :
9393 key : ccache-macos-linux-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}_${{ github.sha }}
9494 restore-keys : ccache-macos-linux-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}_
9595
96- -
uses :
prefix-dev/[email protected] .2 96+ -
uses :
prefix-dev/[email protected] .3 9797 with :
9898 cache : true
9999 environments : ${{ matrix.environment }}
@@ -115,15 +115,16 @@ jobs:
115115 await script({github, context, core})
116116 result-encoding : string
117117
118+ - name : Clear ccache statistics [MacOS/Linux/Windows]
119+ run : |
120+ pixi run -e ${{ matrix.environment }} ccache -z
121+
118122 - name : Build Pinocchio [MacOS/Linux/Windows]
119123 shell : bash -el {0}
120124 env :
121125 CMAKE_BUILD_PARALLEL_LEVEL : 2
122126 PINOCCHIO_BUILD_TYPE : ${{ matrix.build_type }}
123127 run : |
124- # Clear ccache statistics
125- pixi run -e ${{ matrix.environment }} ccache -z
126-
127128 # Launch configure but overwrite default options
128129 pixi run -e ${{ matrix.environment }} configure \
129130 -DBUILD_ADVANCED_TESTING=${{ env.BUILD_ADVANCED_TESTING }} \
@@ -137,12 +138,71 @@ jobs:
137138 run : |
138139 pixi run -e ${{ matrix.environment }} cmake --build build --target uninstall
139140
140- - name : Remove build directory to save disk space
141- if : contains(matrix.os, 'ubuntu') && contains(matrix.build_type, 'Debug')
141+ - name : Display ccache statistics
142+ shell : bash -el {0}
143+ run : |
144+ pixi run -e ${{ matrix.environment }} ccache -sv
145+
146+ pinocchio-python-standalone-pixi :
147+ name : Python standalone - ${{ matrix.os }} - Env ${{ matrix.environment }}
148+ runs-on : ${{ matrix.os }}
149+ env :
150+ CCACHE_BASEDIR : " ${GITHUB_WORKSPACE}"
151+ CCACHE_DIR : " ${GITHUB_WORKSPACE}/.ccache"
152+ CCACHE_COMPRESS : true
153+ CCACHE_COMPRESSLEVEL : 6
154+ # Since pixi will install a compiler, the compiler mtime will be changed.
155+ # This can invalidate the cache (https://ccache.dev/manual/latest.html#config_compiler_check)
156+ CCACHE_COMPILERCHECK : content
157+
158+ strategy :
159+ fail-fast : false
160+ matrix :
161+ os : [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-15-intel, windows-latest]
162+ environment : [all]
163+
164+ steps :
165+ # extract branch name or checkout devel branch for scheduled events
166+ - name : Get branch name or checkout devel
167+ shell : bash -el {0}
168+ run : |
169+ if [ "${{ github.event_name }}" == "schedule" ]; then
170+ echo "BRANCH_NAME=devel" >> $GITHUB_ENV
171+ echo "LABELS=build_all" >> $GITHUB_ENV
172+ else
173+ echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
174+ fi
175+
176+ - uses : actions/checkout@v5
177+ with :
178+ ref : ${{ env.BRANCH_NAME }}
179+ submodules : recursive
180+
181+ - uses : actions/cache@v4
182+ with :
183+ path : .ccache
184+ key : ccache-python-standalone-macos-linux-conda-${{ matrix.os }}-${{ matrix.environment }}_${{ github.sha }}
185+ restore-keys : ccache-python-standalone-macos-linux-conda-${{ matrix.os }}-${{ matrix.environment }}_
186+
187+ -
uses :
prefix-dev/[email protected] 188+ with :
189+ cache : true
190+ environments : ${{ matrix.environment }}
191+
192+ - name : Get Compilation Flags
193+ id : get_labels
194+ uses : actions/github-script@v8
195+ env :
196+ LABELS : ${{ env.LABELS }}
197+ with :
198+ script : |
199+ const script = require('./.github/workflows/scripts/get_compilation_flags.js');
200+ await script({github, context, core})
201+ result-encoding : string
202+
203+ - name : Clear ccache statistics [MacOS/Linux/Windows]
142204 run : |
143- # Remove build directory to save disk space
144- # This is only done on Ubuntu because this create some issues with clang and ccache on OSX
145- rm -rf build
205+ pixi run -e ${{ matrix.environment }} ccache -z
146206
147207 # Following steps will modify the pixi environment
148208 - name : Build Pinocchio cpp [MacOS/Linux/Windows]
@@ -154,7 +214,6 @@ jobs:
154214 pixi run -e ${{ matrix.environment }} configure \
155215 -B build_cpp \
156216 -DBUILD_PYTHON_INTERFACE=OFF \
157- -DBUILD_ADVANCED_TESTING=${{ env.BUILD_ADVANCED_TESTING }} \
158217 ${{ steps.get_labels.outputs.cmakeFlags }}
159218 pixi run -e ${{ matrix.environment }} cmake --build build_cpp --target all
160219 pixi run -e ${{ matrix.environment }} cmake --install build_cpp
@@ -170,7 +229,6 @@ jobs:
170229 -DBUILD_PYTHON_INTERFACE=ON \
171230 -DBUILD_STANDALONE_PYTHON_INTERFACE=ON \
172231 -B build_python \
173- -DBUILD_ADVANCED_TESTING=${{ env.BUILD_ADVANCED_TESTING }} \
174232 ${{ steps.get_labels.outputs.cmakeFlags }}
175233 pixi run -e ${{ matrix.environment }} cmake --build build_python --target all
176234 pixi run -e ${{ matrix.environment }} cmake --install build_python
@@ -181,6 +239,31 @@ jobs:
181239 run : |
182240 pixi run -e ${{ matrix.environment }} ccache -sv
183241
242+ pinocchio-pixi-build :
243+ name : Pixi build - ${{ matrix.os }}
244+ runs-on : ${{ matrix.os }}
245+
246+ strategy :
247+ fail-fast : false
248+ matrix :
249+ os : [ubuntu-latest, macos-latest, macos-15-intel, windows-latest]
250+
251+ steps :
252+ - uses : actions/checkout@v5
253+ with :
254+ submodules : recursive
255+
256+ -
uses :
prefix-dev/[email protected] 257+ env :
258+ CMAKE_BUILD_PARALLEL_LEVEL : 2
259+ with :
260+ cache : true
261+ environments : test-pixi-build
262+
263+ - name : Test package [MacOS/Linux/Windows]
264+ run : |
265+ pixi run -e test-pixi-build test
266+
184267 check :
185268 if : always()
186269 name : check-macos-linux-windows-pixi
0 commit comments