Skip to content

Commit fb09d48

Browse files
committed
fix(ci): fix build failures from CI run #283
- mne_inverse_pipeline: rewrite to use MnaProject::pipeline/MnaStep API instead of nonexistent MnaProject::graph; use qInstallMessageHandler instead of MNELogger::setupFromEnvironment - annotationmodel.cpp: remove duplicate 'entries' variable redefinitions in saveAnnotationCsv and saveAnnotationTxt - sliceobject.h: add Eigen/Geometry include for Vector3d::cross() - Remove macOS Intel CI jobs (MacOSDynamicIntel, MacOSStaticIntel, macOSSDKIntel, MacOSInstallerIntel) — macos-13 runners deprecated
1 parent 8a49397 commit fb09d48

File tree

6 files changed

+33
-415
lines changed

6 files changed

+33
-415
lines changed

.github/workflows/release-installer.yml

Lines changed: 0 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -236,156 +236,6 @@ jobs:
236236
cp MNE-CPP-*-Darwin.dmg "${{ steps.tag.outputs.asset_prefix }}-macos-installer-arm64.dmg"
237237
gh release upload "${{ steps.tag.outputs.tag }}" "${{ steps.tag.outputs.asset_prefix }}-macos-installer-arm64.dmg" --clobber
238238
239-
MacOSInstallerIntel:
240-
runs-on: macos-13
241-
242-
steps:
243-
- name: Clone repository
244-
uses: actions/checkout@v5
245-
246-
- name: Install Qt Installer Framework
247-
env:
248-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
249-
run: |
250-
./scripts/ci/download_toolchain.sh \
251-
--kind ifw \
252-
--version "${{ env.QIF_VERSION }}" \
253-
--output-dir "$RUNNER_TEMP/ifw"
254-
255-
- name: Determine release tag
256-
id: tag
257-
shell: bash
258-
run: |
259-
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
260-
TAG="${GITHUB_REF#refs/tags/}"
261-
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
262-
echo "asset_prefix=mne-cpp-${TAG#v}" >> "$GITHUB_OUTPUT"
263-
elif [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
264-
echo "tag=latest" >> "$GITHUB_OUTPUT"
265-
echo "asset_prefix=mne-cpp-latest" >> "$GITHUB_OUTPUT"
266-
else
267-
echo "tag=dev_build" >> "$GITHUB_OUTPUT"
268-
echo "asset_prefix=mne-cpp-dev" >> "$GITHUB_OUTPUT"
269-
fi
270-
271-
- name: Prepare installer payload
272-
shell: bash
273-
env:
274-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
275-
run: |
276-
./scripts/deploy/prepare_bootstrap_installer.sh \
277-
--release-tag "${{ steps.tag.outputs.tag }}" \
278-
--asset-prefix "${{ steps.tag.outputs.asset_prefix }}" \
279-
--platform macos \
280-
--arch x86_64 \
281-
--output-dir build_installer/staging
282-
283-
- name: Import Apple Developer ID certificate
284-
if: env.APPLE_DEVELOPER_ID_P12 != ''
285-
env:
286-
APPLE_DEVELOPER_ID_P12: ${{ secrets.APPLE_DEVELOPER_ID_P12 }}
287-
APPLE_DEVELOPER_ID_PASSWORD: ${{ secrets.APPLE_DEVELOPER_ID_PASSWORD }}
288-
run: |
289-
KEYCHAIN_PATH="$RUNNER_TEMP/signing.keychain-db"
290-
KEYCHAIN_PASSWORD="$(openssl rand -hex 16)"
291-
292-
security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
293-
security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
294-
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
295-
296-
echo "$APPLE_DEVELOPER_ID_P12" | base64 --decode > "$RUNNER_TEMP/certificate.p12"
297-
security import "$RUNNER_TEMP/certificate.p12" \
298-
-k "$KEYCHAIN_PATH" \
299-
-P "$APPLE_DEVELOPER_ID_PASSWORD" \
300-
-T /usr/bin/codesign \
301-
-T /usr/bin/productsign
302-
303-
security set-key-partition-list -S apple-tool:,apple:,codesign: \
304-
-s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
305-
306-
security list-keychains -d user -s "$KEYCHAIN_PATH" $(security list-keychains -d user | tr -d '"')
307-
308-
IDENTITY=$(security find-identity -v -p codesigning "$KEYCHAIN_PATH" | head -1 | awk -F'"' '{print $2}')
309-
echo "CODESIGN_IDENTITY=$IDENTITY" >> $GITHUB_ENV
310-
echo "KEYCHAIN_PATH=$KEYCHAIN_PATH" >> $GITHUB_ENV
311-
echo "Signing identity: $IDENTITY"
312-
313-
- name: Build installer with binarycreator
314-
run: |
315-
binarycreator \
316-
-c build_installer/staging/config/config.xml \
317-
-p build_installer/staging/packages \
318-
MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin
319-
320-
- name: Codesign installer app
321-
if: env.CODESIGN_IDENTITY != ''
322-
run: |
323-
codesign --force --deep --options runtime --timestamp \
324-
--sign "$CODESIGN_IDENTITY" \
325-
"MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.app"
326-
codesign --verify --verbose "MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.app"
327-
328-
- name: Free up disk space before DMG creation
329-
run: |
330-
echo "=== Disk usage before cleanup ==="
331-
df -h
332-
sudo rm -rf /usr/local/share/gtk-doc /usr/local/Cellar \
333-
/usr/local/lib/node_modules /usr/share/dotnet \
334-
/opt/hostedtoolcache /Users/runner/Library/Caches/* 2>/dev/null || true
335-
echo "=== Disk usage after cleanup ==="
336-
df -h
337-
338-
- name: Create DMG
339-
run: |
340-
hdiutil create \
341-
-volname "MNE-CPP ${{ env.MNE_CPP_VERSION }}" \
342-
-srcfolder "MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.app" \
343-
-ov -format UDZO \
344-
"MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.dmg"
345-
ls -lh MNE-CPP-*-Darwin.dmg
346-
347-
- name: Codesign DMG
348-
if: env.CODESIGN_IDENTITY != ''
349-
run: |
350-
codesign --force --timestamp \
351-
--sign "$CODESIGN_IDENTITY" \
352-
"MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.dmg"
353-
codesign --verify --verbose "MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.dmg"
354-
355-
- name: Notarize DMG
356-
if: env.CODESIGN_IDENTITY != ''
357-
env:
358-
APPLE_ID: ${{ secrets.APPLE_ID }}
359-
APPLE_APP_PASSWORD: ${{ secrets.APPLE_APP_PASSWORD }}
360-
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
361-
run: |
362-
xcrun notarytool submit \
363-
"MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.dmg" \
364-
--apple-id "$APPLE_ID" \
365-
--password "$APPLE_APP_PASSWORD" \
366-
--team-id "$APPLE_TEAM_ID" \
367-
--wait \
368-
--timeout 30m
369-
370-
xcrun stapler staple "MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.dmg"
371-
372-
spctl --assess --type open --context context:primary-signature \
373-
"MNE-CPP-${{ env.MNE_CPP_VERSION }}-Darwin.dmg" \
374-
&& echo "Notarization verified successfully" \
375-
|| echo "Warning: spctl check returned non-zero (may be expected on CI)"
376-
377-
- name: Cleanup keychain
378-
if: always() && env.KEYCHAIN_PATH != ''
379-
run: |
380-
security delete-keychain "$KEYCHAIN_PATH" 2>/dev/null || true
381-
382-
- name: Upload installer
383-
env:
384-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
385-
run: |
386-
cp MNE-CPP-*-Darwin.dmg "${{ steps.tag.outputs.asset_prefix }}-macos-installer-x86_64.dmg"
387-
gh release upload "${{ steps.tag.outputs.tag }}" "${{ steps.tag.outputs.asset_prefix }}-macos-installer-x86_64.dmg" --clobber
388-
389239
WindowsInstaller:
390240
runs-on: windows-2025
391241

.github/workflows/release-macos.yml

Lines changed: 0 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -204,173 +204,3 @@ jobs:
204204
run: |
205205
cp mne-cpp-macos-static-arm64.tar.gz "${{ steps.release-info.outputs.prefix }}-macos-static-arm64.tar.gz"
206206
gh release upload "${{ steps.release-info.outputs.tag }}" "${{ steps.release-info.outputs.prefix }}-macos-static-arm64.tar.gz" --clobber
207-
208-
209-
MacOSDynamicIntel:
210-
runs-on: macos-13
211-
212-
steps:
213-
- name: Clone repository
214-
uses: actions/checkout@v5
215-
216-
- name: Determine release info
217-
id: release-info
218-
run: |
219-
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
220-
TAG="${GITHUB_REF#refs/tags/}"
221-
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
222-
echo "prefix=mne-cpp-${TAG#v}" >> "$GITHUB_OUTPUT"
223-
echo "should_upload=true" >> "$GITHUB_OUTPUT"
224-
elif [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
225-
echo "tag=latest" >> "$GITHUB_OUTPUT"
226-
echo "prefix=mne-cpp-latest" >> "$GITHUB_OUTPUT"
227-
echo "should_upload=true" >> "$GITHUB_OUTPUT"
228-
elif [[ "$GITHUB_REF" == "refs/heads/staging" ]]; then
229-
echo "tag=dev_build" >> "$GITHUB_OUTPUT"
230-
echo "prefix=mne-cpp-dev" >> "$GITHUB_OUTPUT"
231-
echo "should_upload=true" >> "$GITHUB_OUTPUT"
232-
else
233-
echo "tag=none" >> "$GITHUB_OUTPUT"
234-
echo "prefix=mne-cpp-local" >> "$GITHUB_OUTPUT"
235-
echo "should_upload=false" >> "$GITHUB_OUTPUT"
236-
fi
237-
- name: Install Python 3.10 version
238-
uses: actions/setup-python@v6
239-
with:
240-
python-version: '3.10'
241-
architecture: 'x64'
242-
- name: Download Qt toolchain
243-
env:
244-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
245-
run: |
246-
./scripts/ci/download_toolchain.sh \
247-
--kind qt \
248-
--version "6.11.0" \
249-
--linkage dynamic \
250-
--output-dir "$RUNNER_TEMP/qt"
251-
- name: Download Eigen package
252-
env:
253-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
254-
run: |
255-
./scripts/ci/download_toolchain.sh \
256-
--kind eigen \
257-
--version "5.0.1" \
258-
--output-dir "$GITHUB_WORKSPACE/src/external/eigen"
259-
- name: Download ONNX Runtime
260-
env:
261-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
262-
run: |
263-
./scripts/ci/download_toolchain.sh \
264-
--kind onnxruntime \
265-
--version "1.21.0" \
266-
--output-dir "$GITHUB_WORKSPACE/src/external/onnxruntime"
267-
- name: Configure and compile MNE-CPP
268-
run: |
269-
./scripts/build/build_project.sh -- -DUSE_ONNXRUNTIME=ON
270-
- name: Deploy binaries (MacOS)
271-
run: |
272-
./scripts/deploy/deploy.bat dynamic pack
273-
- name: Upload release binaries
274-
if: steps.release-info.outputs.should_upload == 'true'
275-
env:
276-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
277-
run: |
278-
cp mne-cpp-macos-dynamic-x86_64.tar.gz "${{ steps.release-info.outputs.prefix }}-macos-dynamic-x86_64.tar.gz"
279-
gh release upload "${{ steps.release-info.outputs.tag }}" "${{ steps.release-info.outputs.prefix }}-macos-dynamic-x86_64.tar.gz" --clobber
280-
281-
282-
MacOSStaticIntel:
283-
runs-on: macos-13
284-
285-
steps:
286-
- name: Clone repository
287-
uses: actions/checkout@v5
288-
289-
- name: Determine release info
290-
id: release-info
291-
run: |
292-
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
293-
TAG="${GITHUB_REF#refs/tags/}"
294-
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
295-
echo "prefix=mne-cpp-${TAG#v}" >> "$GITHUB_OUTPUT"
296-
echo "should_upload=true" >> "$GITHUB_OUTPUT"
297-
elif [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
298-
echo "tag=latest" >> "$GITHUB_OUTPUT"
299-
echo "prefix=mne-cpp-latest" >> "$GITHUB_OUTPUT"
300-
echo "should_upload=true" >> "$GITHUB_OUTPUT"
301-
elif [[ "$GITHUB_REF" == "refs/heads/staging" ]]; then
302-
echo "tag=dev_build" >> "$GITHUB_OUTPUT"
303-
echo "prefix=mne-cpp-dev" >> "$GITHUB_OUTPUT"
304-
echo "should_upload=true" >> "$GITHUB_OUTPUT"
305-
else
306-
echo "tag=none" >> "$GITHUB_OUTPUT"
307-
echo "prefix=mne-cpp-local" >> "$GITHUB_OUTPUT"
308-
echo "should_upload=false" >> "$GITHUB_OUTPUT"
309-
fi
310-
- name: Install Python 3.10 version
311-
uses: actions/setup-python@v6
312-
with:
313-
python-version: '3.10'
314-
architecture: 'x64'
315-
- name: Install dependencies
316-
run: |
317-
brew list ninja >/dev/null 2>&1 || brew install ninja
318-
- name: Download Eigen package
319-
env:
320-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
321-
run: |
322-
./scripts/ci/download_toolchain.sh \
323-
--kind eigen \
324-
--version "5.0.1" \
325-
--output-dir "$GITHUB_WORKSPACE/src/external/eigen"
326-
- name: Download ONNX Runtime
327-
env:
328-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
329-
run: |
330-
./scripts/ci/download_toolchain.sh \
331-
--kind onnxruntime \
332-
--version "1.21.0" \
333-
--output-dir "$GITHUB_WORKSPACE/src/external/onnxruntime"
334-
- name: Cache static Qt binaries
335-
id: cache-qt-static
336-
uses: actions/cache@v5
337-
with:
338-
path: Qt6_static
339-
key: qt-6.11.0-static-macos-x86_64
340-
- name: Download pre-built static Qt
341-
id: download-qt-static
342-
if: steps.cache-qt-static.outputs.cache-hit != 'true'
343-
continue-on-error: true
344-
env:
345-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
346-
run: |
347-
gh release download qt_binaries -p "qt6_6110_static_binaries_macos.tar.gz" -D /tmp
348-
mkdir -p Qt6_static
349-
tar xfz /tmp/qt6_6110_static_binaries_macos.tar.gz -C Qt6_static
350-
- name: Build static Qt from source
351-
if: steps.cache-qt-static.outputs.cache-hit != 'true' && steps.download-qt-static.outcome != 'success'
352-
run: |
353-
cd ..
354-
git clone https://code.qt.io/qt/qt5.git -b v6.11.0
355-
cd qt5
356-
./init-repository -f --module-subset=qtbase,qtsvg,qtshadertools
357-
cd ..
358-
mkdir qt6_shadow
359-
cd qt6_shadow
360-
../qt5/configure -static -release -prefix "$GITHUB_WORKSPACE/Qt6_static" -skip webengine -nomake tests -nomake examples -no-dbus -no-ssl -no-pch -opensource -confirm-license -- -DCMAKE_BUILD_TYPE=Release
361-
cmake --build . --parallel $(sysctl -n hw.ncpu)
362-
cmake --install .
363-
- name: Configure and compile MNE-CPP (static)
364-
run: |
365-
export CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/Qt6_static
366-
./scripts/build/build_project.sh static -- -DUSE_ONNXRUNTIME=ON
367-
- name: Deploy binaries (MacOS)
368-
run: |
369-
./scripts/deploy/deploy.bat static pack
370-
- name: Upload release binaries
371-
if: steps.release-info.outputs.should_upload == 'true'
372-
env:
373-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
374-
run: |
375-
cp mne-cpp-macos-static-x86_64.tar.gz "${{ steps.release-info.outputs.prefix }}-macos-static-x86_64.tar.gz"
376-
gh release upload "${{ steps.release-info.outputs.tag }}" "${{ steps.release-info.outputs.prefix }}-macos-static-x86_64.tar.gz" --clobber

.github/workflows/release-sdk.yml

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -139,65 +139,6 @@ jobs:
139139
name: mne-cpp-sdk-macos-arm64
140140
path: ${{ runner.temp }}/mne-cpp-sdk-${{ env.MNE_CPP_VERSION }}-macos-arm64.tar.gz
141141

142-
macOSSDKIntel:
143-
runs-on: macos-13
144-
steps:
145-
- name: Clone repository
146-
uses: actions/checkout@v5
147-
148-
- name: Install Python 3.10
149-
uses: actions/setup-python@v6
150-
with:
151-
python-version: '3.10'
152-
153-
- name: Download Qt toolchain
154-
env:
155-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
156-
run: |
157-
./scripts/ci/download_toolchain.sh \
158-
--kind qt \
159-
--version "6.11.0" \
160-
--linkage dynamic \
161-
--output-dir "$RUNNER_TEMP/qt"
162-
163-
- name: Download Eigen package
164-
env:
165-
GH_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
166-
run: |
167-
./scripts/ci/download_toolchain.sh \
168-
--kind eigen \
169-
--output-dir "$RUNNER_TEMP/eigen"
170-
171-
- name: Configure
172-
run: |
173-
cmake -S . -B build \
174-
-DCMAKE_PREFIX_PATH="$RUNNER_TEMP/qt" \
175-
-DCMAKE_INSTALL_PREFIX="$RUNNER_TEMP/sdk" \
176-
-DEIGEN3_DIR="$RUNNER_TEMP/eigen" \
177-
-DCMAKE_BUILD_TYPE=Release
178-
179-
- name: Build
180-
run: cmake --build build --parallel $(sysctl -n hw.ncpu)
181-
182-
- name: Install SDK
183-
run: cmake --install build --component sdk
184-
185-
- name: Copy examples
186-
run: |
187-
mkdir -p "$RUNNER_TEMP/sdk/share/mne-cpp/examples"
188-
cp -r resources/examples/*.mna "$RUNNER_TEMP/sdk/share/mne-cpp/examples/" 2>/dev/null || true
189-
190-
- name: Package
191-
run: |
192-
cd "$RUNNER_TEMP"
193-
tar czf "mne-cpp-sdk-${MNE_CPP_VERSION}-macos-x86_64.tar.gz" sdk/
194-
195-
- name: Upload artifact
196-
uses: actions/upload-artifact@v4
197-
with:
198-
name: mne-cpp-sdk-macos-x86_64
199-
path: ${{ runner.temp }}/mne-cpp-sdk-${{ env.MNE_CPP_VERSION }}-macos-x86_64.tar.gz
200-
201142
WindowsSDK:
202143
runs-on: windows-2025
203144
steps:

0 commit comments

Comments
 (0)