Single data to be used by all UI models #2047
Workflow file for this run
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: PullRequest | |
| on: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - "*" | |
| pull_request: | |
| jobs: | |
| buildMac: | |
| name: "Build MacOS ${{ matrix.osversion }} with Qt 6" | |
| runs-on: macos-${{ matrix.osversion }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| osversion: [ 14, 15, 15-intel ] | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v7 | |
| - name: Install Qt 6 (Framework build) | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| host: 'mac' | |
| target: 'desktop' | |
| arch: 'clang_64' | |
| modules: 'qtserialport' | |
| - name: Configure project with CMake | |
| run: | | |
| mkdir build | |
| cd build | |
| echo "QT_ROOT_DIR=$QT_ROOT_DIR" | |
| APP_DIR_NAME="DLTViewer.app" | |
| cmake -G Ninja -DCMAKE_PREFIX_PATH=$QT_ROOT_DIR/lib/cmake \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DDLT_USE_QT_RPATH=OFF \ | |
| -DDLT_PARSER=OFF \ | |
| -DDLT_APP_DIR_NAME=${APP_DIR_NAME} \ | |
| -DDLT_LIBRARY_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/Frameworks" \ | |
| -DDLT_EXECUTABLE_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/MacOS" \ | |
| -DDLT_RESOURCE_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/Resources" \ | |
| -DDLT_PLUGIN_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/MacOS/plugins" \ | |
| .. | |
| - name: Build project | |
| run: | | |
| cmake --build build --parallel 4 | |
| - name: Install and deploy with macdeployqt | |
| run: | | |
| cmake --install build --prefix $(pwd)/build/install | |
| ls -l build/install/DLTViewer.app | |
| otool -L build/install/DLTViewer.app/Contents/MacOS/dlt-viewer | |
| otool -l build/install/DLTViewer.app/Contents/MacOS/dlt-viewer | grep -A2 LC_RPATH | |
| echo "Deploying DLTViewer.app with macdeployqt" | |
| $QT_ROOT_DIR/bin/macdeployqt build/install/DLTViewer.app -verbose=2 -dmg \ | |
| -libpath=$(pwd)/build/install/DLTViewer.app/Contents/Frameworks \ | |
| -executable=$(pwd)/build/install/DLTViewer.app/Contents/MacOS/dlt-viewer | |
| - name: Codesign app bundle | |
| if: "! github.event.pull_request.head.repo.fork " # not running on a fork | |
| # Extract the secrets we defined earlier as environment variables | |
| env: | |
| MACOS_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
| MACOS_CERTIFICATE_PWD: ${{ secrets.P12_PASSWORD }} | |
| MACOS_CERTIFICATE_NAME: ${{ secrets.APPLE_CERTIFICATE_NAME }} | |
| MACOS_CI_KEYCHAIN_PWD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
| run: scripts/darwin/codesign.sh | |
| - name: Notarize app bundle | |
| if: "! github.event.pull_request.head.repo.fork " # not running on a fork | |
| env: | |
| PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.APPLE_ID }} | |
| PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.TEAM_ID }} | |
| PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.APP_PASSWORD }} | |
| run: scripts/darwin/notarize.sh | |
| - name: Compress artifacts | |
| run: | | |
| cd $(pwd)/build | |
| mkdir -p dist | |
| tar -czvf "dist/DLTViewer-qt6-macos${{ matrix.osversion }}.tgz" -C $(pwd)/install . | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| if: ${{ success() }} | |
| with: | |
| name: DLTViewer-macos${{ matrix.osversion }}-qt6 | |
| path: build/dist/DLTViewer*.tgz | |
| buildUbuntu: | |
| name: Build ${{ matrix.ubuntu }} | |
| strategy: | |
| matrix: | |
| ubuntu: [ ubuntu-22.04, ubuntu-24.04 ] | |
| runs-on: ${{ matrix.ubuntu }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - name: install build environment | |
| run: scripts/linux/installUbuntu22and24.sh | |
| - name: Build project | |
| run: scripts/linux/buildUbuntu22and24.sh | |
| - name: Run tests | |
| run: ctest --test-dir build/qdlt | |
| - name: Create package | |
| if: ${{ matrix.ubuntu == 'ubuntu-24.04' }} | |
| run: ./build_viewer_debs_noble.sh | |
| - name: Archive artifact | |
| if: ${{ matrix.ubuntu == 'ubuntu-24.04' && success() }} | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: DLTViewer-Ubuntu-24.04 | |
| path: debtmp/covesa-dlt-viewer_*.deb | |
| buildWindows_x64: | |
| name: Build Windows x86_64 | |
| strategy: | |
| matrix: | |
| windows: [ windows-2022 ] | |
| task: [ sdk ] | |
| qt: [ 6 ] | |
| runs-on: ${{ matrix.windows }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - name: Install qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| modules: qtserialport | |
| - name: Build with CMake ${{ matrix.task }} | |
| run: > | |
| $env:WORKSPACE=$env:GITHUB_WORKSPACE; | |
| $env:CPACK_7Z="true"; | |
| $env:CPACK_NSIS="true"; | |
| ./build_sdk_windows_qt${{ matrix.qt }}_MSVC_cmake.bat | |
| - name: Archive artifact | |
| uses: actions/upload-artifact@v7 | |
| if: ${{ success() }} | |
| with: | |
| name: DLTViewer-windows-x86_64 | |
| path: | | |
| build/dist/DLTViewer*.7z | |
| build/dist/DLTViewer*.exe | |
| build/dist/*.md | |
| buildWindows_arm: | |
| name: Build Windows ARM | |
| strategy: | |
| matrix: | |
| windows: [ windows-11-arm ] | |
| task: [ sdk ] | |
| qt: [ 6 ] | |
| runs-on: ${{ matrix.windows }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - name: Install qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| modules: qtserialport | |
| - name: Build with CMake ${{ matrix.task }} | |
| run: > | |
| $env:WORKSPACE=$env:GITHUB_WORKSPACE; | |
| $env:CPACK_7Z="true"; | |
| $env:CPACK_NSIS="true"; | |
| ./build_sdk_windows_arm_qt${{ matrix.qt }}_MSVC_cmake.bat | |
| - name: Archive artifact | |
| uses: actions/upload-artifact@v7 | |
| if: ${{ success() }} | |
| with: | |
| name: DLTViewer-windows-arm64 | |
| path: | | |
| build/dist/DLTViewer*.7z | |
| build/dist/DLTViewer*.exe | |
| build/dist/*.md | |
| createRelease: | |
| name: Create release | |
| runs-on: ubuntu-24.04 | |
| needs: [ buildMac, buildUbuntu, buildWindows_x64, buildWindows_arm ] | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| # TODO: restore AppImage build then enable this step, see https://github.com/COVESA/dlt-viewer/issues/717 | |
| # - name: Download DLT Linux artifacts | |
| # uses: actions/download-artifact@v8 | |
| # with: | |
| # name: DLT-Linux | |
| # continue-on-error: true | |
| - name: Download DLT macOS 14 artifacts arm64 | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: DLTViewer-macos14-qt6 | |
| - name: Download DLT macOS 15 artifacts arm64 | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: DLTViewer-macos15-qt6 | |
| - name: Download DLT macOS artifacts x86 | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: DLTViewer-macos15-intel-qt6 | |
| - name: Download DLT Windows artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: DLTViewer-windows-x86_64 | |
| - name: Download DLT Windows arm artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: DLTViewer-windows-arm64 | |
| - name: Find Tag | |
| id: tagger | |
| uses: jimschubert/query-tag-action@v2.2 | |
| with: | |
| skip-unshallow: 'true' | |
| abbrev: false | |
| commit-ish: HEAD | |
| - name: Check pre-release | |
| run: | | |
| echo "tag=${{steps.tagger.outputs.tag}}" | |
| if [[ ${{ steps.tagger.outputs.tag }} == *alpha* || ${{ steps.tagger.outputs.tag }} == *beta* ]] | |
| then | |
| prerelease=true | |
| else | |
| prerelease=false | |
| fi | |
| echo "PRE_RELEASE=$prerelease" >> $GITHUB_ENV | |
| echo "prerelease=$prerelease" | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| tag_name: ${{steps.tagger.outputs.tag}} | |
| generate_release_notes: true | |
| prerelease: ${{ env.PRE_RELEASE }} | |
| name: ${{steps.tagger.outputs.tag}} | |
| files: | | |
| DLT* | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |