diff options
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r-- | .github/workflows/main.yml | 365 |
1 files changed, 211 insertions, 154 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f3ab462c9..7e13907d5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,14 +16,16 @@ jobs: matrix: config: - { - name: 'Build on Linux (gcc)', + name: 'Build on Linux (Jammy, gcc)', + image: 'jammy-qt6', options: 'modules.cpp.compilerWrapper:ccache modules.qbs.debugInformation:true modules.qbsbuildconfig.enableBundledQt:true - products.qbs_archive.targetName:qbs-linux-${{ github.run_id }} + products.qbs_archive.targetName:qbs-linux-jammy-${{ github.run_id }} products.qbs_archive.includeTests:true', script: './scripts/build-qbs-with-qbs.sh', - cacheid: 'gcc', + cacheid: 'gcc-qt6-jammy', + suffix: 'linux-jammy', } env: BUILD_OPTIONS: ${{ matrix.config.options }} @@ -34,31 +36,32 @@ jobs: run: mkdir -p ~/.ccache - name: prepare timestamp id: get-timestamp - run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ") + run: echo "timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT + shell: bash - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.ccache key: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache-${{ steps.get-timestamp.outputs.timestamp }} - restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache- - - name: Pull the Focal Image - run: docker-compose pull focal + restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache + - name: Pull the Docker Image + run: docker-compose pull ${{ matrix.config.image }} - name: Print ccache stats - run: docker-compose run focal ccache -s + run: docker-compose run ${{ matrix.config.image }} ccache -s - name: Build Qbs - run: docker-compose run focal ${{ matrix.config.script }} + run: docker-compose run ${{ matrix.config.image }} ${{ matrix.config.script }} - name: Print ccache stats - run: docker-compose run focal ccache -s + run: docker-compose run ${{ matrix.config.image }} ccache -s - name: Upload artifacts - uses: 'actions/upload-artifact@v2' + uses: 'actions/upload-artifact@v4' with: - name: qbs-linux-${{ github.run_id }}.tar.gz - path: release/qbs-linux-${{ github.run_id }}.tar.gz + name: qbs-${{ matrix.config.suffix }}-${{ github.run_id }}.tar.gz + path: release/qbs-${{ matrix.config.suffix }}-${{ github.run_id }}.tar.gz build-linux-extra: name: ${{ matrix.config.name }} runs-on: ubuntu-latest - timeout-minutes: 60 + timeout-minutes: 90 strategy: fail-fast: false matrix: @@ -66,52 +69,63 @@ jobs: - { name: 'Build on Linux (clang_tidy)', script: './scripts/run-analyzer.sh', - image: 'focal', + image: 'jammy-qt6', options: 'profile:qt-clang_64 modules.cpp.compilerWrapper:ccache', cacheid: 'clang', } - { name: 'Build on Linux (CMake)', script: './scripts/build-qbs-with-cmake.sh', - image: 'focal-qt6', + image: 'jammy-qt6', cacheid: 'cmake', } - { - name: 'Build on Linux (QMake)', - script: './scripts/build-qbs-with-qmake.sh', - image: 'focal', - options: 'CONFIG+=ccache', - cacheid: 'qmake', + name: 'Build on Linux (gcc, ASAN)', + image: 'jammy-qt6', + script: './scripts/build-qbs-with-qbs.sh', + options: 'modules.cpp.compilerWrapper:ccache + modules.qbsbuildconfig.enableAddressSanitizer:true + modules.qbs.debugInformation:true + modules.qbsbuildconfig.enableBundledQt:true', + cacheid: 'gcc-asan', } - { - name: 'Build on Linux (gcc, Qt 6)', - image: 'focal-qt6', + name: 'Build on Linux (gcc, UBSAN)', + image: 'jammy-qt6', script: './scripts/build-qbs-with-qbs.sh', options: 'modules.cpp.compilerWrapper:ccache - modules.qbsbuildconfig.enableAddressSanitizer:false + modules.qbsbuildconfig.enableUbSanitizer:true modules.qbs.debugInformation:true modules.qbsbuildconfig.enableBundledQt:true', - cacheid: 'gcc-qt6', + cacheid: 'gcc-ubsan', + } + - { + name: 'Build on Linux (gcc, Qt 5.15)', + image: 'jammy-qt5', + script: './scripts/build-qbs-with-qbs.sh', + options: 'modules.cpp.compilerWrapper:ccache + modules.qbs.debugInformation:true + modules.qbsbuildconfig.enableBundledQt:true', + cacheid: 'gcc-qt5', } env: BUILD_OPTIONS: ${{ matrix.config.options }} QTEST_FUNCTION_TIMEOUT: 9000000 steps: - uses: actions/checkout@v1 - with: - submodules: true - name: Create .ccache dir run: mkdir -p ~/.ccache - name: prepare timestamp id: get-timestamp - run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ") + run: echo "timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT + shell: bash - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.ccache key: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache-${{ steps.get-timestamp.outputs.timestamp }} - restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache- - - name: Pull the Focal Image + restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache + - name: Pull the Docker Image run: docker-compose pull ${{ matrix.config.image }} - name: Print ccache stats run: docker-compose run ${{ matrix.config.image }} ccache -s @@ -120,9 +134,25 @@ jobs: - name: Print ccache stats run: docker-compose run ${{ matrix.config.image }} ccache -s + clang-format: + name: Check Style + runs-on: macos-13 + timeout-minutes: 60 + strategy: + fail-fast: false + steps: + - uses: actions/checkout@v1 + - name: Update PATH + run: echo "$(brew --prefix llvm@15)/bin" >> ${GITHUB_PATH} + - name: Run clang-format + run: | + git diff -U0 --no-color --relative HEAD^ | $(brew --prefix llvm@15)/share/clang/clang-format-diff.py -i -p1 -regex ".*\.(cxx|cpp|hpp|h)" -v + - name: Check diff + run: git diff --exit-code + build-macos: name: Build on macOS - runs-on: macos-11 + runs-on: macos-12 timeout-minutes: 60 env: BUILD_OPTIONS: | @@ -139,13 +169,14 @@ jobs: run: mkdir -p ~/.ccache - name: prepare timestamp id: get-timestamp - run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ") + run: echo "timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT + shell: bash - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.ccache - key: ${{ runner.os }}-ccache-${{ steps.get-timestamp.outputs.timestamp }} - restore-keys: ${{ runner.os }}-ccache- + key: ${{ runner.os }}-clang-ccache-${{ steps.get-timestamp.outputs.timestamp }} + restore-keys: ${{ runner.os }}-clang-ccache - name: Install required packages run: | brew install ccache p7zip @@ -160,7 +191,7 @@ jobs: run: | qbs setup-toolchains --detect qbs setup-qt --detect - qbs config profiles.qt.baseProfile xcode-macosx-x86_64 + qbs config profiles.qt.baseProfile xcode_13_2_1-macosx-x86_64 qbs config defaultProfile qt qbs config --list - name: Print ccache stats @@ -170,7 +201,7 @@ jobs: - name: Print ccache stats run: ccache -s - name: Upload artifacts - uses: 'actions/upload-artifact@v2' + uses: 'actions/upload-artifact@v4' with: name: qbs-macos-${{ github.run_id }}.tar.gz path: release/qbs-macos-${{ github.run_id }}.tar.gz @@ -193,16 +224,16 @@ jobs: - uses: actions/checkout@v1 - name: prepare timestamp id: get-timestamp - run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ") + run: echo "timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT shell: bash - name: clcache cache files - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/clcache key: ${{ runner.os }}-msvc-clcache-${{ steps.get-timestamp.outputs.timestamp }} - restore-keys: ${{ runner.os }}-msvc-clcache- - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + restore-keys: ${{ runner.os }}-msvc-clcache + - name: Set up Python + uses: actions/setup-python@v5 with: python-version: 3.8 - name: Install required packages @@ -220,6 +251,7 @@ jobs: run: | qbs setup-toolchains --detect qbs setup-qt $(which qmake).exe qt + qbs config profiles.qt.baseProfile MSVC2022-1-x86_x64 qbs config defaultProfile qt qbs config --list shell: bash @@ -231,7 +263,7 @@ jobs: - name: Print clcache stats run: clcache -s - name: Upload artifacts - uses: 'actions/upload-artifact@v2' + uses: 'actions/upload-artifact@v4' with: name: qbs-windows-${{ github.run_id }}.zip path: release/qbs-windows-${{ github.run_id }}.zip @@ -254,16 +286,16 @@ jobs: - uses: actions/checkout@v1 - name: prepare timestamp id: get-timestamp - run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ") + run: echo "timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT shell: bash - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v4 with: - path: ${{ github.workspace }}/ccache + path: ~/.ccache key: ${{ runner.os }}-mingw-ccache-${{ steps.get-timestamp.outputs.timestamp }} - restore-keys: ${{ runner.os }}-mingw-ccache- - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + restore-keys: ${{ runner.os }}-mingw-ccache + - name: Set up Python + uses: actions/setup-python@v5 with: python-version: 3.8 - name: Install required packages @@ -274,14 +306,13 @@ jobs: - name: Install Qt uses: ./.github/actions/download-qt with: - toolchain: win64_mingw81 + toolchain: win64_mingw - name: Install Qt Creator uses: ./.github/actions/download-qtc - name: Install MinGW uses: ./.github/actions/download-mingw - name: Setup Qbs run: | - qbs setup-toolchains --detect qbs setup-toolchains --type mingw $(which g++).exe mingw-qt qbs setup-qt $(which qmake).exe qt qbs config profiles.qt.baseProfile mingw-qt @@ -296,7 +327,7 @@ jobs: - name: Print ccache stats run: ccache -s - name: Upload artifacts - uses: 'actions/upload-artifact@v2' + uses: 'actions/upload-artifact@v4' with: name: qbs-windows-mingw-${{ github.run_id }}.zip path: release/qbs-windows-mingw-${{ github.run_id }}.zip @@ -304,93 +335,86 @@ jobs: test-linux: name: ${{ matrix.config.name }} runs-on: ubuntu-latest - timeout-minutes: 60 + timeout-minutes: 90 needs: build-linux strategy: fail-fast: false matrix: config: - { - name: 'Run Linux tests (gcc)', - image: 'focal', + name: 'Run Linux tests (gcc, Qt 6)', + image: 'jammy-qt6', + suffix: 'linux-jammy', profile: 'qt-gcc_64', script: './scripts/test-qbs.sh', } - { - name: 'Run Linux tests (clang)', - image: 'focal', + name: 'Run Linux tests (clang, Qt 6)', + image: 'jammy-qt6', + suffix: 'linux-jammy', profile: 'qt-clang_64', script: './scripts/test-qbs.sh', } - { - name: 'Run Linux tests (gcc, Qt 6.0)', - image: 'focal-qt6', + name: 'Run Linux tests (gcc, Qt 5)', + image: 'jammy-qt5', + suffix: 'linux-jammy', profile: 'qt-gcc_64', script: './scripts/test-qt.sh', } - { - name: 'Run Linux tests (gcc, Qt 6.3 static)', - image: 'focal-qt6-static', + name: 'Run Linux tests (gcc, Qt 6.5 static)', + image: 'jammy-qt6-static', + suffix: 'linux-jammy', profile: 'qt-gcc_64', script: './scripts/test-qt.sh', } - { - name: 'Run Android tests (Qt 5.13)', - image: 'focal-android-513', - profile: '', - script: './scripts/test-qt-for-android.sh', - } - - { - name: 'Run Android tests (Qt 5.14)', - image: 'focal-android-514', - profile: '', - script: './scripts/test-qt-for-android.sh', - } - - { name: 'Run Android tests (Qt 5.15)', - image: 'focal-android-515', - profile: '', - script: './scripts/test-qt-for-android.sh', - } - - { - name: 'Run Android tests (Qt 6.0.0)', - image: 'focal-android-600', + image: 'jammy-android-515', + suffix: 'linux-jammy', profile: '', script: './scripts/test-qt-for-android.sh', } - { - name: 'Run Android tests (Qt 6.2.0)', - image: 'focal-android-620', + name: 'Run Android tests (Qt 6.2)', + image: 'jammy-android-62', + suffix: 'linux-jammy', profile: '', script: './scripts/test-qt-for-android.sh', } - { - name: 'Run Android tests (Qt 6.3.0)', - image: 'focal-android-630', - profile: '', - script: './scripts/test-qt-for-android.sh', - } + name: 'Run Android tests (Qt 6.5)', + image: 'jammy-android-65', + suffix: 'linux-jammy', + profile: '', + script: './scripts/test-qt-for-android.sh', + } - { name: 'Run Android tests (ndk r19c)', - image: 'focal-android-ndk-r19c', + image: 'jammy-android-ndk-r19c', + suffix: 'linux-jammy', profile: '', script: './scripts/test-for-android.sh', } - { name: 'Run Android tests (ndk r21e)', - image: 'focal-android-ndk-r21e', + image: 'jammy-android-ndk-r21e', + suffix: 'linux-jammy', profile: '', script: './scripts/test-for-android.sh', } - { name: 'Run Android tests (ndk r23)', - image: 'focal-android-ndk-r23', + image: 'jammy-android-ndk-r23', + suffix: 'linux-jammy', profile: '', script: './scripts/test-for-android.sh', } - { name: 'Run Linux tests (Qt 4.8.7)', - image: 'focal-qt4', + image: 'jammy-qt4', + suffix: 'linux-jammy', profile: '', script: './scripts/test-qt4.sh', } @@ -402,12 +426,12 @@ jobs: steps: - uses: actions/checkout@v1 - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: - name: qbs-linux-${{ github.run_id }}.tar.gz + name: qbs-${{ matrix.config.suffix }}-${{ github.run_id }}.tar.gz path: ./ - name: Unpack artifact - run: mkdir -p release/install-root/ && tar xzf qbs-linux-${{ github.run_id }}.tar.gz -C release/install-root/ + run: mkdir -p release/install-root/ && tar xzf qbs-${{ matrix.config.suffix }}-${{ github.run_id }}.tar.gz -C release/install-root/ - name: Pull the Docker Image run: docker-compose pull ${{ matrix.config.image }} - name: Run tests @@ -423,30 +447,30 @@ jobs: steps: - uses: actions/checkout@v1 - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: - name: qbs-linux-${{ github.run_id }}.tar.gz + name: qbs-linux-jammy-${{ github.run_id }}.tar.gz path: ./ - name: Unpack artifact - run: mkdir -p release/install-root/ && tar xzf qbs-linux-${{ github.run_id }}.tar.gz -C release/install-root/ - - name: Pull the Focal-Baremetal Image - run: docker-compose pull focal-baremetal - - name: arm-none-eabi-gcc-9_2 - run: QBS_AUTOTEST_PROFILE=arm-none-eabi-gcc-9_2 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + run: mkdir -p release/install-root/ && tar xzf qbs-linux-jammy-${{ github.run_id }}.tar.gz -C release/install-root/ + - name: Pull the Docker Image + run: docker-compose pull jammy-baremetal + - name: arm-none-eabi-gcc-10_3 + run: QBS_AUTOTEST_PROFILE=arm-none-eabi-gcc-10_3 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - name: avr-gcc-5_4 - run: QBS_AUTOTEST_PROFILE=avr-gcc-5_4 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + run: QBS_AUTOTEST_PROFILE=avr-gcc-5_4 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - name: msp430-gcc-4_6 - run: QBS_AUTOTEST_PROFILE=msp430-gcc-4_6 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - - name: xtensa-lx106-elf-gcc-9_2 - run: QBS_AUTOTEST_PROFILE=xtensa-lx106-elf-gcc-9_2 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - - name: riscv64-unknown-elf-gcc-9_3 - run: QBS_AUTOTEST_PROFILE=riscv64-unknown-elf-gcc-9_3 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - - name: sdcc-3_8_0-mcs51 - run: QBS_AUTOTEST_PROFILE=sdcc-3_8_0-mcs51 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - - name: sdcc-3_8_0-stm8 - run: QBS_AUTOTEST_PROFILE=sdcc-3_8_0-stm8 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - - name: sdcc-3_8_0-hcs8 - run: QBS_AUTOTEST_PROFILE=sdcc-3_8_0-hcs8 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + run: QBS_AUTOTEST_PROFILE=msp430-gcc-4_6 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + - name: riscv64-unknown-elf-gcc-10_2 + run: QBS_AUTOTEST_PROFILE=riscv64-unknown-elf-gcc-10_2 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + - name: sdcc-4_0_0-hcs8 + run: QBS_AUTOTEST_PROFILE=sdcc-4_0_0-hcs8 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + - name: sdcc-4_0_0-mcs51 + run: QBS_AUTOTEST_PROFILE=sdcc-4_0_0-mcs51 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + - name: sdcc-4_0_0-stm8 + run: QBS_AUTOTEST_PROFILE=sdcc-4_0_0-stm8 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin + - name: xtensa-lx106-elf-gcc-10_3 + run: QBS_AUTOTEST_PROFILE=xtensa-lx106-elf-gcc-10_3 docker-compose run jammy-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin test-baremetal-windows: name: Run Baremetal tests (Windows) @@ -462,7 +486,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: name: qbs-windows-${{ github.run_id }}.zip path: ./ @@ -608,70 +632,85 @@ jobs: QTEST_FUNCTION_TIMEOUT: 9000000 QBS_AUTOTEST_PROFILE: 'qt' QBS_TEST_SOURCE_ROOT: 'tests' + QBS_EXTRA_GRPC_LIBS: 'absl_cord,absl_cordz_handle,absl_cordz_info,absl_synchronization,grpc,gpr' strategy: fail-fast: false matrix: config: - { - name: 'Run macOS tests (Xcode 13.4)', - runner: 'macos-12', + name: 'Run macOS tests (Xcode 15.1)', + runner: 'macos-13', target: 'desktop', toolchain: 'clang_64', - testProfile: 'xcode_13_4-macosx-x86_64', - qtVersion: '5.15.2', + xcodeVersion: '15.1', + testProfile: 'xcode_15_1-macosx-x86_64', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } - { - name: 'Run macOS tests (Xcode 13.4, Qt 6.3)', - runner: 'macos-12', + name: 'Run macOS tests (Xcode 15.1, Qt 5.15)', + runner: 'macos-13', target: 'desktop', toolchain: 'clang_64', - testProfile: 'xcode_13_4-macosx-x86_64', - qtVersion: '6.3.1', + xcodeVersion: '15.1', + testProfile: 'xcode_15_1-macosx-x86_64', + qtVersion: '5.15.2', script: './scripts/test-qt.sh', } - { - name: 'Run iOS tests (Xcode 13.4)', - runner: 'macos-12', + name: 'Run iOS tests (Xcode 15.1)', + runner: 'macos-13', target: 'ios', toolchain: 'ios', - testProfile: 'xcode_13_4-iphoneos-arm64', - qtVersion: '5.15.2', + xcodeVersion: '15.1', + testProfile: 'xcode_15_1-iphoneos-arm64', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } - { - name: 'Run iOS-sim tests (Xcode 13.4)', - runner: 'macos-12', + name: 'Run iOS-sim tests (Xcode 15.1)', + runner: 'macos-13', target: 'ios', toolchain: 'ios', - testProfile: 'xcode_13_4-iphonesimulator-x86_64', - qtVersion: '5.15.2', + xcodeVersion: '15.1', + testProfile: 'xcode_15_1-iphonesimulator-x86_64', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } - { - name: 'Run macOS tests (Xcode 12.5)', - runner: 'macos-11.0', + name: 'Run macOS tests (Xcode 14.3.1)', + runner: 'macos-13', target: 'desktop', toolchain: 'clang_64', - testProfile: 'xcode_12_5_1-macosx-x86_64', - qtVersion: '5.15.2', + xcodeVersion: '14.3.1', + testProfile: 'xcode_14_3_1-macosx-x86_64', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } - { - name: 'Run macOS tests (Xcode 11.7)', - runner: 'macos-11.0', + name: 'Run macOS tests (Xcode 14.2)', + runner: 'macos-13', target: 'desktop', toolchain: 'clang_64', - testProfile: 'xcode_11_7-macosx-x86_64', - qtVersion: '5.15.2', + xcodeVersion: '14.2', + testProfile: 'xcode_14_2-macosx-x86_64', + qtVersion: '6.5.0', + script: './scripts/test-qbs.sh', + } + - { + name: 'Run macOS tests (Xcode-less)', + runner: 'macos-13', + target: 'desktop', + toolchain: 'clang_64', + xcodeVersion: '', + testProfile: 'clang', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } steps: - uses: actions/checkout@v1 - with: - submodules: true - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: name: qbs-macos-${{ github.run_id }}.tar.gz path: ./ @@ -681,12 +720,22 @@ jobs: run: echo "./release/install-root/usr/local/bin" >> $GITHUB_PATH - name: Install required packages run: brew install capnp ccache grpc icoutils makensis protobuf p7zip + - name: Install Host Qt + if: matrix.config.toolchain == 'ios' + uses: ./.github/actions/download-qt + with: + target: 'desktop' + toolchain: 'clang_64' + version: ${{ matrix.config.qtVersion }} - name: Install Qt uses: ./.github/actions/download-qt with: target: ${{ matrix.config.target }} toolchain: ${{ matrix.config.toolchain }} version: ${{ matrix.config.qtVersion }} + - name: Select Xcode + run: sudo xcode-select --switch /Applications/Xcode_${{ matrix.config.xcodeVersion }}.app + if: matrix.config.xcodeVersion != '' - name: Setup Qbs run: | qbs setup-toolchains --detect @@ -694,6 +743,15 @@ jobs: qbs config profiles.qt.baseProfile ${{ matrix.config.testProfile }} qbs config defaultProfile qt qbs config --list + if: matrix.config.xcodeVersion != '' + - name: Setup Qbs (Xcode-less) + run: | + qbs setup-toolchains /usr/bin/clang++ ${{ matrix.config.testProfile }} + qbs setup-qt $(which qmake) qt + qbs config profiles.qt.baseProfile ${{ matrix.config.testProfile }} + qbs config defaultProfile qt + qbs config --list + if: matrix.config.xcodeVersion == '' - name: Run Tests run: | sudo chmod g+w /cores @@ -703,7 +761,7 @@ jobs: if: ${{ failure() }} run: | for f in $(find /cores -maxdepth 1 -name 'core.*' -print); do - lldb --core $f --batch --one-line "bt" + lldb --core $f --batch --one-line "bt all" done; test-windows: @@ -720,15 +778,15 @@ jobs: target: 'desktop', toolchain: 'win64_msvc2019_64', testProfile: 'MSVC2022-x64', - qtVersion: '5.15.2', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } - { - name: 'Run Windows tests (MSVC 2022, Qt 6.0.2)', + name: 'Run Windows tests (MSVC 2022, Qt 5.15)', target: 'desktop', toolchain: 'win64_msvc2019_64', testProfile: 'MSVC2022-x64', - qtVersion: '6.0.2', + qtVersion: '5.15.2', script: './scripts/test-qt.sh', } - { @@ -736,15 +794,15 @@ jobs: target: 'desktop', toolchain: 'win64_msvc2019_64', testProfile: 'clang-cl-x86_64', - qtVersion: '5.15.2', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } - { name: 'Run Windows tests (MinGW)', target: 'desktop', - toolchain: 'win64_mingw81', + toolchain: 'win64_mingw', testProfile: 'mingw-qt', - qtVersion: '5.15.2', + qtVersion: '6.5.0', script: './scripts/test-qbs.sh', } env: @@ -755,7 +813,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: name: qbs-windows-${{ github.run_id }}.zip path: ./ @@ -769,6 +827,7 @@ jobs: run: echo "./release/install-root/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Install required packages run: choco install -y pkgconfiglite --download-checksum=6004df17818f5a6dbf19cb335cc92702 + continue-on-error: true # pkgconfiglite installation is flaky - name: Install Qt uses: ./.github/actions/download-qt with: @@ -857,7 +916,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: name: qbs-windows-${{ github.run_id }}.zip path: ./ @@ -869,8 +928,6 @@ jobs: shell: bash - name: Update PATH run: echo "./release/install-root/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - name: Install required packages - run: choco install -y pkgconfiglite --download-checksum=6004df17818f5a6dbf19cb335cc92702 - name: Install OpenWatcom uses: ./.github/actions/download-ow - name: Install DigitalMars |