diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 769842cf..0370b33e 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -1,9 +1,46 @@ -name: GitHub Actions Demo -run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 +name: Build SocNetV CI +run-name: ${{ github.actor }} testing latest SocNetV build with GitHub Actions 🚀 on: [push] jobs: Explore-GitHub-Actions: - runs-on: ubuntu-latest + # runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-2019] + # Linux: https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/ + # macOS: https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/ + # Windows: https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/ + qt-version: [ '6.5.3', '6.6.3'] + experimental: [false] + exclude: + # some reason + - os: ubuntu-latest + qt-version: '6.5.3' + # some reason + - os: windows-2019 + qt-version: '6.5.3' + experimental: false + # Qt6 builds of macOS are currently breaking because of the workaround for https://bugreports.qt.io/browse/QTBUG-117225 + # See https://github.com/pbek/QOwnNotes/issues/3018 + - os: macos-latest + qt-version: '6.5.3' + experimental: false + include: + - os: ubuntu-latest + qt-version: '6.6.3' + experimental: true + - os: windows-2019 + qt-version: '6.6.3' + experimental: true + - os: macos-latest + qt-version: '6.6.3' + experimental: true + # Snapcraft + - os: ubuntu-22.04 + qt-version: '6.5.3' + experimental: false steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" @@ -15,5 +52,64 @@ jobs: - name: List files in the repository run: | ls ${{ github.workspace }} - - run: echo "🍏 This job's status is ${{ job.status }}." + + # + # Install Qt + # + + - if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' ) && matrix.qt-version != '6.2.4' + name: Install Qt 6 on Windows + uses: jurplel/install-qt-action@v4 + with: + aqtversion: '==2.1.*' + version: ${{ matrix.qt-version }} + arch: win64_mingw + modules: qtwebsockets core5compat xml network widgets printsupport charts svg + cache: true + - if: false == contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' ) + name: Install Qt 6 on Linux/macOS + uses: jurplel/install-qt-action@v4 + with: + aqtversion: '==2.0.0' + version: ${{ matrix.qt-version }} + modules: qtwebsockets core5compat xml network widgets printsupport charts svg + cache: true + + + + # + # Build SocNetV + # + - if: contains( matrix.os, 'ubuntu-latest') + name: Do Linux tests + run: | + echo "openssl version:" + echo `openssl version` + echo "Check output of 'which qmake6':" + which qmake6 + echo "Check qmake6 -v:" + qmake6 -v + run: | + qmake6 CONFIG+=debug && make -s -j 8 + echo "Building finished! " + echo "Files in current directory: " + find . + # qmake workaround: https://bugreports.qt.io/browse/QTBUG-117225?focusedId=754625&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-754625 + # See https://github.com/pbek/QOwnNotes/issues/3018 + - if: contains( matrix.os, 'macos') + name: Do macOS tests + run: | + qmake CONFIG+=debug socnetv.pro + mingw32-make + + - if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' ) && matrix.qt-version != '6.2.4' + name: Do Qt 6.3+ Windows tests + run: | + qmake CONFIG+=debug socnetv.pro + mingw32-make + make + dir +# windeployqt --debug tests.exe + + - run: echo "🍏 This job's status is ${{ job.status }}."