docs(readme): update for 0.5.3 #220
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build debug | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| jobs: | |
| build: | |
| name: Build on ${{ matrix.platform.host }} | |
| runs-on: ${{ matrix.platform.name }} | |
| env: | |
| QT_VERSION: "6.8.3" | |
| # Public Store values are repository Variables, not gh CLI credentials | |
| # or publisher secrets. The public staging registry is the safe default | |
| # when no profile variable is configured; production builds must opt in | |
| # explicitly with a repository variable using the custom profile. | |
| NEUROLINGSCE_STORE_PROFILE: ${{ vars.NEUROLINGSCE_STORE_PROFILE || 'staging' }} | |
| NEUROLINGSCE_MASCOT_INDEX_URL: ${{ vars.NEUROLINGSCE_MASCOT_INDEX_URL || '' }} | |
| NEUROLINGSCE_SUBMISSION_SERVICE_URL: ${{ vars.NEUROLINGSCE_SUBMISSION_SERVICE_URL || '' }} | |
| NEUROLINGSCE_GITHUB_LOGIN_CLIENT_ID: ${{ vars.NEUROLINGSCE_GITHUB_LOGIN_CLIENT_ID || '' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| - name: ubuntu-22.04 | |
| host: linux | |
| qt_arch: linux_gcc_64 | |
| qt_install_name: gcc_64 | |
| artifact_suffix: x86_64 | |
| artifact_path: build/bin/ | |
| - name: windows-latest | |
| host: windows | |
| qt_tools: tools_mingw1310 | |
| qt_arch: win64_mingw | |
| qt_install_name: mingw_64 | |
| artifact_suffix: x86_64 | |
| artifact_path: build/bin/ | |
| - name: macos-14 | |
| host: mac | |
| qt_arch: clang_64 | |
| qt_install_name: macos | |
| qt_modules: "qtmultimedia qtimageformats" | |
| artifact_suffix: arm64 | |
| artifact_path: build/macos/ | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: "recursive" | |
| - name: Install build dependencies | |
| if: matrix.platform.host == 'linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libxcb-cursor0 libarchive-dev libwayland-dev wayland-protocols ccache zip | |
| - name: Install macOS build dependencies | |
| if: matrix.platform.host == 'mac' | |
| run: | | |
| brew install ninja | |
| - name: Setup Python for aqt | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - name: Remove WindowsApps Python shim from PATH | |
| if: matrix.platform.host == 'windows' | |
| shell: pwsh | |
| run: | | |
| $paths = $env:PATH -split ';' | Where-Object { $_ -and ($_ -notlike '*\Microsoft\WindowsApps*') } | |
| "PATH=$($paths -join ';')" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| - name: Install Qt6 | |
| uses: jdpurcell/install-qt-action@v5 | |
| with: | |
| version: ${{ env.QT_VERSION }} | |
| host: ${{ matrix.platform.host }} | |
| target: "desktop" | |
| arch: ${{ matrix.platform.qt_arch }} | |
| modules: ${{ matrix.platform.qt_modules || 'qtmultimedia' }} | |
| tools: ${{ matrix.platform.qt_tools || '' }} | |
| cache: false | |
| - name: Setup ccache | |
| uses: hendrikmuhs/ccache-action@v1.2 | |
| with: | |
| key: ${{ matrix.platform.host }}-qt6-debug | |
| max-size: 500M | |
| - name: Configure with CMake | |
| shell: bash | |
| run: | | |
| cmake -S . -B build -G Ninja \ | |
| -D CMAKE_BUILD_TYPE=Debug \ | |
| -D CMAKE_PREFIX_PATH="${{ runner.workspace }}/Qt/${{ env.QT_VERSION }}/${{ matrix.platform.qt_install_name }}" \ | |
| -D NEUROLINGSCE_STORE_PROFILE="$NEUROLINGSCE_STORE_PROFILE" \ | |
| -D NEUROLINGSCE_MASCOT_INDEX_URL="$NEUROLINGSCE_MASCOT_INDEX_URL" \ | |
| -D NEUROLINGSCE_SUBMISSION_SERVICE_URL="$NEUROLINGSCE_SUBMISSION_SERVICE_URL" \ | |
| -D NEUROLINGSCE_GITHUB_LOGIN_CLIENT_ID="$NEUROLINGSCE_GITHUB_LOGIN_CLIENT_ID" \ | |
| -D CMAKE_C_COMPILER_LAUNCHER=ccache \ | |
| -D CMAKE_CXX_COMPILER_LAUNCHER=ccache | |
| - name: Build with CMake | |
| shell: bash | |
| run: | | |
| # Keep the Debug verification contract explicit: the GUI, dedicated | |
| # CLI and app-server protocol tests must all be buildable on every | |
| # matrix runner. macapp is a packaging wrapper and is built below. | |
| cmake --build build --parallel --config Debug \ | |
| --target NeurolingsCE NeurolingsCECli NeurolingsCECodexTests | |
| - name: Build macOS app bundle | |
| if: matrix.platform.host == 'mac' | |
| shell: bash | |
| run: | | |
| cmake --build build --parallel --config Debug --target macapp | |
| - name: Run CTest | |
| shell: bash | |
| run: | | |
| if [ "${{ matrix.platform.host }}" = "linux" ]; then | |
| export QT_QPA_PLATFORM=offscreen | |
| fi | |
| ctest --test-dir build -C Debug --output-on-failure | |
| - name: Package macOS .app | |
| if: matrix.platform.host == 'mac' | |
| shell: bash | |
| run: | | |
| cd build/macos | |
| /usr/bin/ditto -c -k --keepParent --sequesterRsrc \ | |
| NeurolingsCE.app NeurolingsCE-debug-${{ matrix.platform.artifact_suffix }}.zip | |
| - name: Archive ${{ matrix.platform.host }} ${{ matrix.platform.artifact_suffix }} debug build | |
| if: matrix.platform.host != 'mac' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: debug-${{ matrix.platform.host }}-${{ matrix.platform.artifact_suffix }} | |
| path: ${{ matrix.platform.artifact_path }} | |
| retention-days: 1 | |
| - name: Archive ${{ matrix.platform.host }} ${{ matrix.platform.artifact_suffix }} debug build | |
| if: matrix.platform.host == 'mac' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: debug-${{ matrix.platform.host }}-${{ matrix.platform.artifact_suffix }} | |
| path: build/macos/NeurolingsCE-debug-${{ matrix.platform.artifact_suffix }}.zip | |
| retention-days: 1 |