Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 3 additions & 59 deletions .github/workflows/CI-unixish-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,12 @@ on:
permissions:
contents: read

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

jobs:
build_cmake:

strategy:
matrix:
image: ["ubuntu:16.04", "ubuntu:18.04", "ubuntu:24.04", "ubuntu:24.10"]
image: ["ubuntu:24.04", "ubuntu:24.10"]
include:
- build_gui: false
- image: "ubuntu:24.04"
Expand All @@ -43,13 +40,7 @@ jobs:
image: ${{ matrix.image }}

steps:
# we need to stay at v3 for now because Node 20 does not support the older distros
# /__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)
- uses: actions/checkout@v3
if: matrix.image == 'ubuntu:16.04' || matrix.image == 'ubuntu:18.04'

- uses: actions/checkout@v4
if: matrix.image != 'ubuntu:16.04' && matrix.image != 'ubuntu:18.04'

- name: Install missing software on ubuntu
if: contains(matrix.image, 'ubuntu')
Expand All @@ -62,36 +53,15 @@ jobs:
run: |
apt-get install -y qt6-base-dev qt6-charts-dev qt6-tools-dev

# needs to be called after the package installation since
# - it doesn't call "apt-get update"
#
# needs to be to fixated on 1.2.11 so it works with older images - see https://github.com/hendrikmuhs/ccache-action/issues/178.
# using the older version will cause a two minute hang in its post-run step.
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2.11
if: matrix.image == 'ubuntu:16.04' || matrix.image == 'ubuntu:18.04'
with:
key: ${{ github.workflow }}-${{ matrix.image }}

# needs to be called after the package installation since
# - it doesn't call "apt-get update"
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
if: matrix.image != 'ubuntu:16.04' && matrix.image != 'ubuntu:18.04'
with:
key: ${{ github.workflow }}-${{ matrix.image }}

# tests require CMake 3.9 - ccache available
- name: CMake build (no tests)
if: matrix.image == 'ubuntu:16.04'
run: |
mkdir cmake.output
cd cmake.output
cmake -G "Unix Makefiles" -DHAVE_RULES=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ..
cmake --build . -- -j$(nproc)

- name: CMake build
if: ${{ !matrix.build_gui && matrix.image != 'ubuntu:16.04' }}
if: ${{ !matrix.build_gui }}
run: |
mkdir cmake.output
cd cmake.output
Expand All @@ -105,15 +75,14 @@ jobs:
cmake --build cmake.output -- -j$(nproc)

- name: Run CMake test
if: matrix.image != 'ubuntu:16.04'
run: |
cmake --build cmake.output --target check -- -j$(nproc)

build_make:

strategy:
matrix:
image: ["ubuntu:16.04", "ubuntu:18.04", "ubuntu:24.04", "ubuntu:24.10"]
image: ["ubuntu:24.04", "ubuntu:24.10"]
fail-fast: false # Prefer quick result

runs-on: ubuntu-22.04
Expand All @@ -122,36 +91,18 @@ jobs:
image: ${{ matrix.image }}

steps:
# we need to stay at v3 for now because Node 20 does not support the older distros
# /__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)
- uses: actions/checkout@v3
if: matrix.image == 'ubuntu:16.04' || matrix.image == 'ubuntu:18.04'

- uses: actions/checkout@v4
if: matrix.image != 'ubuntu:16.04' && matrix.image != 'ubuntu:18.04'

- name: Install missing software on ubuntu
if: contains(matrix.image, 'ubuntu')
run: |
apt-get update
apt-get install -y g++ make python3 libxml2-utils libpcre3-dev

# needs to be called after the package installation since
# - it doesn't call "apt-get update"
#
# needs to be to fixated on 1.2.11 so it works with older images - see https://github.com/hendrikmuhs/ccache-action/issues/178.
# using the older version will cause a two minute hang in its post-run step.
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2.11
if: matrix.image == 'ubuntu:16.04' || matrix.image == 'ubuntu:18.04'
with:
key: ${{ github.workflow }}-${{ matrix.image }}

# needs to be called after the package installation since
# - it doesn't call "apt-get update"
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
if: matrix.image != 'ubuntu:16.04' && matrix.image != 'ubuntu:18.04'
with:
key: ${{ github.workflow }}-${{ matrix.image }}

Expand Down Expand Up @@ -183,10 +134,3 @@ jobs:
run: |
./cppcheck --addon=threadsafety addons/test/threadsafety
./cppcheck --addon=threadsafety --std=c++03 addons/test/threadsafety

- name: Generate Qt help file on ubuntu 18.04
if: false # matrix.os == 'ubuntu-18.04'
run: |
pushd gui/help
qcollectiongenerator online-help.qhcp -o online-help.qhc