aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/main.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r--.github/workflows/main.yml458
1 files changed, 297 insertions, 161 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 88e0bf13c..71c1ae4ac 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 }}
@@ -32,33 +34,29 @@ jobs:
- uses: actions/checkout@v1
- 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")
- 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
+ key: ${{ 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 +64,58 @@ 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, UBSAN)',
+ image: 'jammy-qt6',
+ script: './scripts/build-qbs-with-qbs.sh',
+ options: 'modules.cpp.compilerWrapper:ccache
+ modules.qbsbuildconfig.enableUbSanitizer:true
+ modules.qbs.debugInformation:true
+ modules.qbsbuildconfig.enableBundledQt:true',
+ cacheid: 'gcc-ubsan',
}
- {
- name: 'Build on Linux (gcc, Qt 6)',
- image: 'focal-qt6',
+ name: 'Build on Linux (gcc, Qt 5.15)',
+ image: 'jammy-qt5',
script: './scripts/build-qbs-with-qbs.sh',
options: 'modules.cpp.compilerWrapper:ccache
- modules.qbsbuildconfig.enableAddressSanitizer:false
modules.qbs.debugInformation:true
modules.qbsbuildconfig.enableBundledQt:true',
- cacheid: 'gcc-qt6',
+ 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")
- 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
+ key: ${{ 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 +124,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-10.15
+ runs-on: macos-12
timeout-minutes: 60
env:
BUILD_OPTIONS: |
@@ -137,15 +157,11 @@ jobs:
- uses: actions/checkout@v1
- 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")
- 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 }}-ccache
- name: Install required packages
run: |
brew install ccache p7zip
@@ -160,7 +176,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,14 +186,14 @@ 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
build-windows:
name: Build on Windows
- runs-on: windows-latest
+ runs-on: windows-2022
timeout-minutes: 60
env:
BUILD_OPTIONS: |
@@ -191,18 +207,13 @@ jobs:
QT_ASSUME_STDERR_HAS_CONSOLE: 1
steps:
- uses: actions/checkout@v1
- - name: prepare timestamp
- id: get-timestamp
- run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ")
- 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-
+ key: ${{ runner.os }}-msvc-clcache
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install required packages
@@ -220,6 +231,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,14 +243,14 @@ 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
build-windows-mingw:
name: Build on Windows (MinGW)
- runs-on: windows-latest
+ runs-on: windows-2022
timeout-minutes: 60
env:
BUILD_OPTIONS: |
@@ -252,18 +264,13 @@ jobs:
CCACHE_DIR: ${{ github.workspace }}\ccache
steps:
- uses: actions/checkout@v1
- - name: prepare timestamp
- id: get-timestamp
- run: echo ::set-output name=timestamp::$(date -u +"%Y-%m-%dT%H:%M:%SZ")
- shell: bash
- name: ccache cache files
- uses: actions/cache@v2
+ uses: actions/cache@v4
with:
path: ${{ github.workspace }}/ccache
- key: ${{ runner.os }}-mingw-ccache-${{ steps.get-timestamp.outputs.timestamp }}
- restore-keys: ${{ runner.os }}-mingw-ccache-
+ key: ${{ runner.os }}-mingw-ccache
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install required packages
@@ -274,14 +281,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 +302,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,81 +310,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 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 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.15)',
- image: 'focal-android-515',
+ image: 'jammy-android-515',
+ suffix: 'linux-jammy',
profile: '',
script: './scripts/test-qt-for-android.sh',
}
- {
- name: 'Run Android tests (Qt 6.0.0)',
- image: 'focal-android-600',
+ 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.2.0)',
- image: 'focal-android-620',
- 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',
}
@@ -390,12 +401,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
@@ -411,37 +422,38 @@ 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)
runs-on: [self-hosted, windows, x64]
timeout-minutes: 30
needs: build-windows
- if: ${{ github.actor == 'rweickelt' }}
+ # baremetal VM is down, disable the workflow for now
+ if: 'false'
env:
QBS_TEST_SOURCE_ROOT: 'tests'
QT_ASSUME_STDERR_HAS_CONSOLE: 1
@@ -449,7 +461,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: ./
@@ -595,70 +607,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 12.5)',
- runner: 'macos-11.0',
+ name: 'Run macOS tests (Xcode 15.1)',
+ runner: 'macos-13',
target: 'desktop',
toolchain: 'clang_64',
- testProfile: 'xcode_12_5_1-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 12.5, Qt 6.0)',
- runner: 'macos-11.0',
+ name: 'Run macOS tests (Xcode 15.1, Qt 5.15)',
+ runner: 'macos-13',
target: 'desktop',
toolchain: 'clang_64',
- testProfile: 'xcode_12_5_1-macosx-x86_64',
- qtVersion: '6.0.2',
+ xcodeVersion: '15.1',
+ testProfile: 'xcode_15_1-macosx-x86_64',
+ qtVersion: '5.15.2',
script: './scripts/test-qt.sh',
}
- {
- name: 'Run iOS tests (Xcode 12.5)',
- runner: 'macos-11.0',
+ name: 'Run iOS tests (Xcode 15.1)',
+ runner: 'macos-13',
target: 'ios',
toolchain: 'ios',
- testProfile: 'xcode_12_5_1-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 12.5)',
- runner: 'macos-11.0',
+ name: 'Run iOS-sim tests (Xcode 15.1)',
+ runner: 'macos-13',
target: 'ios',
toolchain: 'ios',
- testProfile: 'xcode_12_5_1-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 11.6)',
- runner: 'macos-10.15',
+ name: 'Run macOS tests (Xcode 14.3.1)',
+ runner: 'macos-13',
target: 'desktop',
toolchain: 'clang_64',
- testProfile: 'xcode_11_6-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 10.3)',
- runner: 'macos-10.15',
+ name: 'Run macOS tests (Xcode 14.2)',
+ runner: 'macos-13',
target: 'desktop',
toolchain: 'clang_64',
- testProfile: 'xcode_10_3-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: 'xcode_13_4_1-macosx-x86_64',
+ 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: ./
@@ -668,12 +695,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
@@ -681,6 +718,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
@@ -690,12 +736,12 @@ 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:
name: ${{ matrix.config.name }}
- runs-on: windows-latest
+ runs-on: windows-2022
timeout-minutes: 60
needs: build-windows
strategy:
@@ -703,19 +749,19 @@ jobs:
matrix:
config:
- {
- name: 'Run Windows tests (MSVC 2019)',
+ name: 'Run Windows tests (MSVC 2022)',
target: 'desktop',
toolchain: 'win64_msvc2019_64',
- testProfile: 'MSVC2019-x64',
- qtVersion: '5.15.2',
+ testProfile: 'MSVC2022-x64',
+ qtVersion: '6.5.0',
script: './scripts/test-qbs.sh',
}
- {
- name: 'Run Windows tests (MSVC 2019, Qt 6.0.2)',
+ name: 'Run Windows tests (MSVC 2022, Qt 5.15)',
target: 'desktop',
toolchain: 'win64_msvc2019_64',
- testProfile: 'MSVC2019-x64',
- qtVersion: '6.0.2',
+ testProfile: 'MSVC2022-x64',
+ qtVersion: '5.15.2',
script: './scripts/test-qt.sh',
}
- {
@@ -723,15 +769,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:
@@ -742,7 +788,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: ./
@@ -756,6 +802,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:
@@ -781,3 +828,92 @@ jobs:
- name: Run Tests
run: ${{ matrix.config.script }} ./release/install-root/bin
shell: bash
+
+ test-windows-extra:
+ name: ${{ matrix.config.name }}
+ runs-on: windows-latest
+ timeout-minutes: 60
+ needs: build-windows
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - {
+ name: 'Run Windows tests (OpenWatcom DOS 32 bit)',
+ testProfile: 'watcom-2_0_0-dos-x86',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (OpenWatcom DOS 16 bit)',
+ testProfile: 'watcom-2_0_0-dos-x86_16',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (OpenWatcom OS/2 32 bit)',
+ testProfile: 'watcom-2_0_0-os2-x86',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (OpenWatcom OS/2 16 bit)',
+ testProfile: 'watcom-2_0_0-os2-x86_16',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (OpenWatcom Windows 32 bit)',
+ testProfile: 'watcom-2_0_0-windows-x86',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (OpenWatcom Windows 16 bit)',
+ testProfile: 'watcom-2_0_0-windows-x86_16',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (DigitalMars DOS 16 bit)',
+ testProfile: 'dmc-8_57_0-dos-x86_16',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (DigitalMars Windows 32 bit)',
+ testProfile: 'dmc-8_57_0-windows-x86',
+ script: './scripts/test-baremetal.sh',
+ }
+ - {
+ name: 'Run Windows tests (DigitalMars Windows 16 bit)',
+ testProfile: 'dmc-8_57_0-windows-x86_16',
+ script: './scripts/test-baremetal.sh',
+ }
+ env:
+ QTEST_FUNCTION_TIMEOUT: 9000000
+ QBS_AUTOTEST_PROFILE: 'extra'
+ QBS_TEST_SOURCE_ROOT: 'tests'
+ QT_ASSUME_STDERR_HAS_CONSOLE: 1
+ steps:
+ - uses: actions/checkout@v1
+ - name: Download artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: qbs-windows-${{ github.run_id }}.zip
+ path: ./
+ - name: Unpack artifact
+ run: |
+ mkdir -p release/install-root
+ cd release/install-root
+ 7z x ../../qbs-windows-${{ github.run_id }}.zip
+ shell: bash
+ - name: Update PATH
+ run: echo "./release/install-root/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
+ - name: Install OpenWatcom
+ uses: ./.github/actions/download-ow
+ - name: Install DigitalMars
+ uses: ./.github/actions/download-dm
+ - name: Setup Qbs
+ run: |
+ qbs setup-toolchains --detect
+ qbs config profiles.extra.baseProfile ${{ matrix.config.testProfile }}
+ qbs config defaultProfile extra
+ qbs config --list
+ shell: bash
+ - name: Run Tests
+ run: ${{ matrix.config.script }} ./release/install-root/bin
+ shell: bash