aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/actions/download-mingw/action.yml2
-rw-r--r--.github/actions/download-qt/action.yml4
-rw-r--r--.github/actions/download-qtc/action.yml2
-rw-r--r--.github/workflows/docs.yml6
-rw-r--r--.github/workflows/main.yml374
-rw-r--r--.github/workflows/release.yml77
6 files changed, 241 insertions, 224 deletions
diff --git a/.github/actions/download-mingw/action.yml b/.github/actions/download-mingw/action.yml
index f8fb47f28..24d196785 100644
--- a/.github/actions/download-mingw/action.yml
+++ b/.github/actions/download-mingw/action.yml
@@ -4,7 +4,7 @@ inputs:
version:
description: 'MinGW version'
required: false
- default: '8.1.0'
+ default: '9.0.0'
toolchain:
description: 'Toolchain'
required: false
diff --git a/.github/actions/download-qt/action.yml b/.github/actions/download-qt/action.yml
index e27358125..039f29ca6 100644
--- a/.github/actions/download-qt/action.yml
+++ b/.github/actions/download-qt/action.yml
@@ -4,7 +4,7 @@ inputs:
version:
description: 'Qt version'
required: false
- default: '5.15.2'
+ default: '6.6.0'
target:
description: 'Qt target (desktop, ios, android)'
required: false
@@ -17,6 +17,6 @@ runs:
steps:
- name: Install Qt
run: |
- QT_DIR=$(./scripts/install-qt.sh -d $HOME/Qt --version ${{ inputs.version }} --target ${{ inputs.target }} --toolchain ${{ inputs.toolchain }} qtbase qtdeclarative qttools qtscript qtscxml qt5compat)
+ QT_DIR=$(./scripts/install-qt.sh -d $HOME/Qt --version ${{ inputs.version }} --target ${{ inputs.target }} --toolchain ${{ inputs.toolchain }} qtbase qtdeclarative qttools qtscxml qt5compat)
(cygpath -w ${QTC_DIR} 2>/dev/null || echo ${QT_DIR}) >> ${GITHUB_PATH}
shell: bash
diff --git a/.github/actions/download-qtc/action.yml b/.github/actions/download-qtc/action.yml
index 292991b38..a04681df4 100644
--- a/.github/actions/download-qtc/action.yml
+++ b/.github/actions/download-qtc/action.yml
@@ -4,7 +4,7 @@ inputs:
version:
description: 'Qt Creator version'
required: false
- default: '5.0.3'
+ default: '11.0.3'
runs:
using: "composite"
steps:
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 248baf5f7..d820a03aa 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -27,10 +27,10 @@ jobs:
WITH_TESTS: 0
steps:
- uses: actions/checkout@v1
- - name: Pull the Focal Image
- run: docker-compose pull focal
+ - name: Pull the Docker Image
+ run: docker-compose pull jammy
- name: Build Qbs Docs
- run: docker-compose run focal ${{ matrix.config.script }}
+ run: docker-compose run jammy ${{ matrix.config.script }}
- name: Upload artifacts
uses: 'actions/upload-artifact@v2'
with:
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index bacf90555..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, 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")
- 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,7 +186,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
@@ -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,7 +243,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
@@ -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,93 +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 Linux tests (gcc, Qt 6.2 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',
+ 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.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 +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
@@ -423,30 +422,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 +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: ./
@@ -608,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: ./
@@ -681,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
@@ -694,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
@@ -703,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-2019
+ runs-on: windows-2022
timeout-minutes: 60
needs: build-windows
strategy:
@@ -716,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',
}
- {
@@ -736,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:
@@ -755,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: ./
@@ -769,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:
@@ -857,7 +891,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 +903,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
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7c3396a1d..1b65762e7 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -21,6 +21,7 @@ jobs:
options: 'qbs.installPrefix:""
modules.cpp.compilerWrapper:ccache
modules.qbsbuildconfig.enableAddressSanitizer:false
+ project.withTests:false
modules.qbsbuildconfig.enableUnitTests:false
modules.qbsbuildconfig.enableBundledQt:true
products.qbs_archive.targetName:qbs-linux-${{ github.run_id }}',
@@ -36,40 +37,37 @@ jobs:
run: mkdir -p ~/.ccache
- name: test
run: echo ${{ github.ref }}
- - 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 jammy-qt6
- name: Print ccache stats
- run: docker-compose run focal ccache -s
+ run: docker-compose run jammy-qt6 ccache -s
- name: Build Qbs
- run: docker-compose run focal ${{ matrix.config.script }}
+ run: docker-compose run jammy-qt6 ${{ matrix.config.script }}
- name: Print ccache stats
- run: docker-compose run focal ccache -s
+ run: docker-compose run jammy-qt6 ccache -s
- name: Get archive name
id: get-archive-name
- run: echo ::set-output name=archive-name::$(git describe)
+ run: echo "archive-name=$(git describe)" >> $GITHUB_OUTPUT
- 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
build-macos:
name: Build on macOS
- runs-on: macos-10.15
+ runs-on: macos-12
timeout-minutes: 60
env:
BUILD_OPTIONS: |
qbs.installPrefix:""
modules.cpp.compilerWrapper:ccache
+ project.withTests:false
modules.qbsbuildconfig.enableUnitTests:false
modules.qbsbuildconfig.enableAddressSanitizer:false
modules.qbsbuildconfig.enableBundledQt:true
@@ -79,15 +77,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 }}-release-ccache-${{ steps.get-timestamp.outputs.timestamp }}
- restore-keys: ${{ runner.os }}-release-ccache-
+ key: ${{ runner.os }}-release-ccache
- name: Install required packages
run: |
brew install ccache p7zip
@@ -98,13 +92,11 @@ jobs:
toolchain: clang_64
- name: Install Qt Creator
uses: ./.github/actions/download-qtc
- with:
- version: 5.0.3
- name: Setup Qbs
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
@@ -114,7 +106,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
@@ -132,16 +124,11 @@ jobs:
- name: Create .ccache dir
run: mkdir -p ~/.ccache
shell: bash
- - 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: ~/.ccache
- key: ${{ runner.os }}-release-msvc-docker-clcache-${{ steps.get-timestamp.outputs.timestamp }}
- restore-keys: ${{ runner.os }}-release-msvc-docker-clcache-
+ key: ${{ runner.os }}-release-msvc-docker-clcache
- name: Pull the Windows Image
run: docker-compose pull windows
- name: Print clcache stats
@@ -152,26 +139,24 @@ jobs:
-p dist
qbs.buildVariant:release
modules.cpp.compilerWrapper:clcache
+ project.withTests:false
modules.qbsbuildconfig.enableBundledQt:true
modules.qbsbuildconfig.enableUnitTests:false
modules.cpp.treatWarningsAsErrors:true
project.withDocumentation:true
- config:release-64 profile:qt64
- config:release profile:qt
+ config:release profile:qt64
- name: Print clcache stats
run: docker-compose run --rm windows clcache -s
- name: Get archive name
id: get-archive-name
- run: echo ::set-output name=archive-name::$(git describe)
- shell: bash
+ run: echo "archive-name=$(git describe)" >> $GITHUB_OUTPUT
- name: Upload artifacts
- uses: 'actions/upload-artifact@v2'
+ uses: 'actions/upload-artifact@v4'
with:
name: qbs-windows-${{ github.run_id }}
path: |
release/qbs.*.nupkg
release/qbs-windows-*.zip
- release-64/qbs-windows-*.zip
create-archives:
name: Create Archives
@@ -179,9 +164,11 @@ jobs:
needs: [build-linux, build-windows-with-docker]
steps:
- uses: actions/checkout@v1
+ with:
+ submodules: true
- name: Get version name
id: get-version-name
- run: echo ::set-output name=version-name::$(cat VERSION)
+ run: echo "version-name=$(cat VERSION)" >> $GITHUB_OUTPUT
- name: Create directories
run: |
mkdir release
@@ -197,7 +184,7 @@ jobs:
cd tmp/
tar czf ../release/qbs-src-${{ steps.get-version-name.outputs.version-name }}.tar.gz qbs-src-${{ steps.get-version-name.outputs.version-name }}
- name: Download Linux artifacts
- uses: actions/download-artifact@v1
+ uses: actions/download-artifact@v4
with:
name: qbs-linux-${{ github.run_id }}.tar.gz
path: ./tmp
@@ -208,15 +195,14 @@ jobs:
cd tmp/
tar czf ../release/qbs-linux-x86_64-${{ steps.get-version-name.outputs.version-name }}.tar.gz qbs-linux-x86_64-${{ steps.get-version-name.outputs.version-name }}
- name: Download Windows artifacts
- uses: actions/download-artifact@v1
+ uses: actions/download-artifact@v4
with:
name: qbs-windows-${{ github.run_id }}
- path: ./tmp
+ path: ./tmp/release
- name: Copy Windows artifacts
run: |
cp ./tmp/release/qbs.*.nupkg ./release
- cp ./tmp/release/qbs-windows-x86-*.zip ./release
- cp ./tmp/release-64/qbs-windows-x86_64-*.zip ./release
+ cp ./tmp/release/qbs-windows-x86_64-*.zip ./release
- name: Copy changelog
run: cp changelogs/changes-${{ steps.get-version-name.outputs.version-name }}.md release || echo "changelog not found"
- name: Generate checksums
@@ -226,9 +212,9 @@ jobs:
find . -type f -printf '%f\n' | grep -v .txt | xargs sha256sum > sha256sums.txt
- name: Get archive name
id: get-archive-name
- run: echo ::set-output name=archive-name::$(git describe)
+ run: echo "archive-name=$(git describe)" >> $GITHUB_OUTPUT
- name: Upload artifacts
- uses: 'actions/upload-artifact@v2'
+ uses: 'actions/upload-artifact@v4'
with:
name: qbs-release-${{ steps.get-archive-name.outputs.archive-name }}
path: |
@@ -236,7 +222,6 @@ jobs:
release/qbs-src-*.tar.gz
release/qbs-linux-*.tar.gz
release/qbs.*.nupkg
- release/qbs-windows-x86-*.zip
release/qbs-windows-x86_64-*.zip
release/changes-*.md
release/md5sums.txt