aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/main.yml
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2021-11-05 16:13:03 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2022-02-04 11:29:03 +0000
commitcb3d7e862c69c59e3b0111e19ace157be07acb88 (patch)
tree216be539d04d3819fefb6f21e7d46c334570ac84 /.github/workflows/main.yml
parent38757a783a5a89f35a12184e77550017ee52d32e (diff)
Long live Open Watcom toolchain
This patch adds basic support for the Open Watcom toolchain. This patch uses the `owcc` compiler (supplied with the toolchain), which is a wrapper that supports the POSIX standard. Reason is that the native OW compiler and linker has a limitations in the command line arguments (e.g. they have wrong quotes handling and so on). This patch supports both the latest official version v1.9 and also its fork v2.0. Also added the CI autotests for the version v2.0 for the Windows host. These autotests only perform a limited number of tests (only the bare-metal tests) due to the following toolchain limitations: * The toolchain does not have STL support (there seems to be some kind of the partial support in the form of separate legacy STL ports). * The toolchain support something compatible with the C++98 standard. * The toolchain does not support the shared libraries on Linux hosts. These limitations make it impossible or unjustified to reuse most of the available tests (it requires a lot of work). There was also an attempt to set up CI for tests on Linux host, but for some reason the toolchain installer crashes on CI (although it works fine on a local PC with Ubuntu). Change-Id: Iecf76f51f0b09d31a89683f786b9cd7a825f235e Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r--.github/workflows/main.yml49
1 files changed, 49 insertions, 0 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 81a3e4721..8dd4d1dfb 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -787,3 +787,52 @@ 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)',
+ testProfile: 'watcom-2_0_0-x86',
+ 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@v1
+ 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 required packages
+ run: choco install -y pkgconfiglite --download-checksum=6004df17818f5a6dbf19cb335cc92702
+ - name: Install OpenWatcom
+ uses: ./.github/actions/download-ow
+ - 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