diff options
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r-- | .github/workflows/main.yml | 115 |
1 files changed, 109 insertions, 6 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 953f19949..6d0bfad56 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,17 +62,20 @@ jobs: - { name: 'Build on Linux (clang_tidy)', script: './scripts/run-analyzer.sh', + image: 'focal', 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', cacheid: 'cmake', } - { name: 'Build on Linux (QMake)', script: './scripts/build-qbs-with-qmake.sh', + image: 'focal', options: 'CONFIG+=ccache', cacheid: 'qmake', } @@ -81,6 +84,8 @@ jobs: QTEST_FUNCTION_TIMEOUT: 9000000 steps: - uses: actions/checkout@v1 + with: + submodules: true - name: Create .ccache dir run: mkdir -p ~/.ccache - name: prepare timestamp @@ -93,13 +98,13 @@ jobs: 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 + 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 build-macos: name: Build on macOS @@ -137,8 +142,6 @@ jobs: toolchain: clang_64 - name: Install Qt Creator uses: ./.github/actions/download-qtc - with: - version: 4.13.2 - name: Setup Qbs run: | qbs setup-toolchains --detect @@ -165,6 +168,7 @@ jobs: env: BUILD_OPTIONS: | modules.cpp.compilerWrapper:clcache + modules.qbs.debugInformation:true modules.qbsbuildconfig.enableAddressSanitizer:false modules.qbsbuildconfig.enableBundledQt:true products.qbs_archive.targetName:qbs-windows-${{ github.run_id }} @@ -218,6 +222,71 @@ jobs: 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 + timeout-minutes: 60 + env: + BUILD_OPTIONS: | + modules.cpp.compilerWrapper:ccache + modules.qbsbuildconfig.enableAddressSanitizer:false + modules.qbsbuildconfig.enableBundledQt:true + products.qbs_archive.targetName:qbs-windows-mingw-${{ github.run_id }} + products.qbs_archive.includeTests:true, + QT_ASSUME_STDERR_HAS_CONSOLE: 1 + WITH_TESTS: 0 + 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 + with: + path: ${{ github.workspace }}/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 + with: + python-version: 3.8 + - name: Install required packages + run: | + choco install ccache + python -m pip install --upgrade pip + pip install beautifulsoup4 lxml + - name: Install Qt + uses: ./.github/actions/download-qt + with: + toolchain: win64_mingw81 + - 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 + qbs config defaultProfile qt + qbs config --list + shell: bash + - name: Print ccache stats + run: ccache -s + - name: Build Qbs + run: scripts/build-qbs-with-qbs.sh + shell: bash + - name: Print ccache stats + run: ccache -s + - name: Upload artifacts + uses: 'actions/upload-artifact@v2' + with: + name: qbs-windows-mingw-${{ github.run_id }}.zip + path: release/qbs-windows-mingw-${{ github.run_id }}.zip + test-linux: name: ${{ matrix.config.name }} runs-on: ubuntu-latest @@ -264,6 +333,12 @@ jobs: script: './scripts/test-qt-for-android.sh', } - { + name: 'Run Android tests (Qt 6.0.0)', + image: 'focal-android-600', + profile: '', + script: './scripts/test-qt-for-android.sh', + } + - { name: 'Run Linux tests (Qt 4.8.7)', image: 'focal-qt4', profile: '', @@ -328,9 +403,11 @@ jobs: runs-on: [self-hosted, windows, x64] timeout-minutes: 30 needs: build-windows + if: ${{ github.actor == 'rweickelt' }} env: QBS_TEST_SOURCE_ROOT: 'tests' QT_ASSUME_STDERR_HAS_CONSOLE: 1 + QTEST_FUNCTION_TIMEOUT: 9000000 steps: - uses: actions/checkout@v1 - name: Download artifact @@ -455,6 +532,21 @@ jobs: - name: rx-elf-gcc-8_3_0_202004-GNURX run: QBS_AUTOTEST_PROFILE=rx-elf-gcc-8_3_0_202004-GNURX scripts/test-baremetal.sh release/install-root/bin shell: bash + - name: cosmic-4_3_11-arm + run: QBS_AUTOTEST_PROFILE=cosmic-4_3_11-arm scripts/test-baremetal.sh release/install-root/bin + shell: bash + - name: cosmic-4_5_2-stm8 + run: QBS_AUTOTEST_PROFILE=cosmic-4_5_2-stm8 scripts/test-baremetal.sh release/install-root/bin + shell: bash + - name: cosmic-4_6_3-hcs8 + run: QBS_AUTOTEST_PROFILE=cosmic-4_6_3-hcs8 scripts/test-baremetal.sh release/install-root/bin + shell: bash + - name: cosmic-4_8_11-hcs12 + run: QBS_AUTOTEST_PROFILE=cosmic-4_8_11-hcs12 scripts/test-baremetal.sh release/install-root/bin + shell: bash + - name: cosmic-4_1_0-m68k + run: QBS_AUTOTEST_PROFILE=cosmic-4_1_0-m68k scripts/test-baremetal.sh release/install-root/bin + shell: bash test-macos: name: ${{ matrix.config.name }} @@ -590,6 +682,14 @@ jobs: qtVersion: '5.15.2', script: './scripts/test-qbs.sh', } + - { + name: 'Run Windows tests (MinGW)', + target: 'desktop', + toolchain: 'win64_mingw81', + testProfile: 'mingw-qt', + qtVersion: '5.15.2', + script: './scripts/test-qbs.sh', + } env: QTEST_FUNCTION_TIMEOUT: 9000000 QBS_AUTOTEST_PROFILE: 'qt' @@ -617,9 +717,12 @@ jobs: with: toolchain: ${{ matrix.config.toolchain }} version: ${{ matrix.config.qtVersion }} + - 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 ${{ matrix.config.testProfile }} qbs config defaultProfile qt |