Skip to content

Commit

Permalink
[CI] unit testing on not x86 architectures (#3585)
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-w authored Jan 11, 2024
1 parent c422498 commit 800b280
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 4 deletions.
113 changes: 113 additions & 0 deletions .github/workflows/ci-more.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#
# Implementation of Continuous Integration process for linux and macOS by Github actions (with extra additionals...)
#
name: "CI"

on:
push:
pull_request:
# The branches below must be a subset of the branches above
branches: [master]

jobs:
ci-linux-qt5:
strategy:
matrix:
arch: [armv7, aarch64, riscv64]
name: "Linux (${{ matrix.arch }}; qt5)"
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.actor, 'transifex')"

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Build and run unit tests
uses: uraimo/run-on-arch-action@v2
id: build-qt5
with:
arch: ${{ matrix.arch }}
distro: ubuntu22.04

# Not required, but speeds up builds by storing container images in
# a GitHub package registry.
githubToken: ${{ github.GITHUB_TOKEN }}

# The shell to run commands with in the container
shell: /bin/bash

# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
# Update installed packages
apt update -y
ACCEPT_EULA=Y apt upgrade -o Dpkg::Options::="--force-overwrite" --yes
# Installing dependencies
apt install -y qtbase5-private-dev qtscript5-dev libqt5svg5-dev qttools5-dev-tools qttools5-dev libqt5opengl5-dev qtmultimedia5-dev libqt5multimedia5-plugins libqt5serialport5 libqt5serialport5-dev qtpositioning5-dev libgps-dev libqt5positioning5 libqt5positioning5-plugins libqt5charts5-dev zlib1g-dev libgl1-mesa-dev libdrm-dev libexiv2-dev libnlopt-cxx-dev
# Installing dev. env. dependencies
apt install -y build-essential gcc g++ cmake gettext fakeroot ccache xvfb
# Installing optional dependencies
# apt install -y qtwebengine5-dev libqt5webengine5 libqt5webenginecore5 libqt5webenginewidgets5
# Produce a binary artifact and place it in the mounted volume
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=On -DENABLE_SHOWMYSKY=Off -DENABLE_QTWEBENGINE=Off "${{ github.workspace }}"
make -j3
xvfb-run ctest --output-on-failure
ci-linux-qt6:
strategy:
matrix:
arch: [armv7, aarch64, riscv64]
name: "Linux (${{ matrix.arch }}; qt6)"
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.actor, 'transifex')"

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Build and run unit tests
uses: uraimo/run-on-arch-action@v2
id: build-qt6
with:
arch: ${{ matrix.arch }}
distro: ubuntu22.04

# Not required, but speeds up builds by storing container images in
# a GitHub package registry.
githubToken: ${{ github.GITHUB_TOKEN }}

# The shell to run commands with in the container
shell: /bin/bash

# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
# Update installed packages
apt update -y
ACCEPT_EULA=Y apt upgrade -o Dpkg::Options::="--force-overwrite" --yes
# Installing dependencies
apt install -y qt6-base-private-dev qt6-multimedia-dev qt6-positioning-dev qt6-tools-dev qt6-tools-dev-tools qt6-base-dev-tools qt6-qpa-plugins qt6-image-formats-plugins qt6-l10n-tools libqt6charts6-dev libqt6charts6 libqt6opengl6-dev libqt6positioning6-plugins libqt6serialport6-dev qt6-base-dev libexiv2-dev libnlopt-cxx-dev zlib1g-dev libgl1-mesa-dev libdrm-dev libglx-dev libxkbcommon-x11-dev libgps-dev
# Installing dev. env. dependencies
apt install -y build-essential gcc g++ cmake gettext fakeroot ccache xvfb
# Installing optional dependencies
# apt install -y qtwebengine5-dev libqt5webengine5 libqt5webenginecore5 libqt5webenginewidgets5
# Produce a binary artifact and place it in the mounted volume
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=On -DENABLE_SHOWMYSKY=Off -DENABLE_QTWEBENGINE=Off "${{ github.workspace }}"
make -j3
xvfb-run ctest --output-on-failure
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
# CI on Linux (Qt5)
ci-linux-qt5:
name: "Linux (qt5)"
name: "Linux (amd64; qt5)"
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.actor, 'transifex')"

Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:

# CI on Linux (Qt6)
ci-linux-qt6:
name: "Linux (qt6)"
name: "Linux (amd64; qt6)"
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.actor, 'transifex')"

Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:

# CI on macOS (Qt5)
ci-macos-qt5:
name: "macOS (qt5)"
name: "macOS (x86_64; qt5)"
runs-on: macos-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.actor, 'transifex')"

Expand Down Expand Up @@ -123,7 +123,7 @@ jobs:

# CI on macOS (Qt6)
ci-macos-qt6:
name: "macOS (qt6)"
name: "macOS (x86_64; qt6)"
runs-on: macos-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.actor, 'transifex')"

Expand Down

0 comments on commit 800b280

Please sign in to comment.