2022-12-22 08:18:45 +01:00

489 lines
13 KiB
YAML

name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build-linux-qt5-15:
name: Linux Qt 5.15 build
runs-on: ubuntu-latest
env:
DISPLAY: ":1"
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-5-15
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/5.15.2
key: ${{ runner.os }}-QtCache-Qt5
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '5.15.2'
host: 'linux'
target: 'desktop'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-5-15.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- name: Ubuntu and Qt version
run: |
cat /etc/issue
echo number of processors: $(nproc)
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: make
run: make -j$(nproc)
- name: Smoke test
run: |
echo starting Xvfb
Xvfb :1 &
sleep 10
echo starting iotdashboard
./examples/bin/iotdashboard &
sleep 10
echo taking screenshot
import -pause 1 -window root screenshot-linux-qt5-15.jpg
echo killing iotdashboard
killall iotdashboard
echo killing Xvfb
killall Xvfb
- name: Upload smoke test artifacts
uses: actions/upload-artifact@v2
with:
name: screenshot-linux-qt5-15.jpg
path: screenshot-linux-qt5-15.jpg
build-linux-qt-lts:
name: Linux Qt 6.2 (LTS) build
runs-on: ubuntu-latest
env:
DISPLAY: ":1"
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-2
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/6.2.4
key: ${{ runner.os }}-QtCache-Qt6-2
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.2.4'
host: 'linux'
target: 'desktop'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-6-2.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- name: Install needed xkbcommon symlink
run: sudo apt-get install libxkbcommon-dev -y
- name: Ubuntu and Qt version
run: |
cat /etc/issue
echo number of processors: $(nproc)
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: make
run: make -j$(nproc)
- name: Smoke test
run: |
echo starting Xvfb
Xvfb :1 &
sleep 10
echo starting gallery
./examples/bin/gallery &
sleep 10
echo taking screenshot
import -pause 1 -window root screenshot-linux-qt6-2.jpg
echo killing gallery
killall gallery
echo killing Xvfb
killall Xvfb
- name: Upload smoke test artifacts
uses: actions/upload-artifact@v2
with:
name: screenshot-linux-qt6-2.jpg
path: screenshot-linux-qt6-2.jpg
build-linux-qt-current:
name: Linux Qt 6.4 (current) build
runs-on: ubuntu-latest
env:
DISPLAY: ":1"
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-4
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/6.4.1
key: ${{ runner.os }}-QtCache-Qt6-4
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.4.1'
host: 'linux'
target: 'desktop'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-6-4.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- name: Install needed xkbcommon symlink
run: sudo apt-get install libxkbcommon-dev -y
- name: Ubuntu and Qt version
run: |
cat /etc/issue
echo number of processors: $(nproc)
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: make
run: make -j$(nproc)
- name: Smoke test
run: |
echo starting Xvfb
Xvfb :1 &
sleep 10
echo starting gallery
./examples/bin/gallery &
sleep 10
echo taking screenshot
import -pause 1 -window root screenshot-linux-qt6-4.jpg
echo killing gallery
killall gallery
echo killing Xvfb
killall Xvfb
- name: Upload smoke test artifacts
uses: actions/upload-artifact@v2
with:
name: screenshot-linux-qt6-4.jpg
path: screenshot-linux-qt6-4.jpg
build-windows-qt5-15:
name: Windows Qt 5.15 build
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-5-15
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/5.15.2
key: ${{ runner.os }}-QtCache-Qt5
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '5.15.2'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-5-15.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- uses: ilammy/msvc-dev-cmd@v1
- name: Windows and Qt version
run: |
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: jom
run: |
Invoke-WebRequest -Uri "https://download.qt.io/official_releases/jom/jom.zip" -OutFile jom.zip
unzip jom.zip
.\jom
- name: Smoke test
run: |
$Env:PATH += ";lib;plugins\skins"
echo "starting iotdashboard"
Start-Process .\examples\bin\iotdashboard -ArgumentList "-qwindowgeometry 1024x600+0+0"
Start-Sleep -s 10
- uses: OrbitalOwen/desktop-screenshot-action@0.1
with:
file-name: 'screenshot-windows-qt5-15.jpg'
- name: Cleanup smoke test
run: taskkill /IM iotdashboard.exe /T
build-windows-qt-lts:
name: Windows Qt 6.2 (LTS) build
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-2
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/6.2.4
key: ${{ runner.os }}-QtCache-Qt6-2
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.2.4'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-6-2.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- uses: ilammy/msvc-dev-cmd@v1
- name: Windows and Qt version
run: |
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: jom
run: |
Invoke-WebRequest -Uri "https://download.qt.io/official_releases/jom/jom.zip" -OutFile jom.zip
unzip jom.zip
.\jom
- name: Smoke test
run: |
$Env:PATH += ";lib;plugins\skins"
echo "starting gallery"
Start-Process .\examples\bin\gallery -ArgumentList "-qwindowgeometry 1024x600+0+0"
Start-Sleep -s 10
- uses: OrbitalOwen/desktop-screenshot-action@0.1
with:
file-name: 'screenshot-windows-qt6-2.jpg'
- name: Cleanup smoke test
run: taskkill /IM gallery.exe /T
build-windows-qt-current:
name: Windows Qt 6.4 (current) build
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-4
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/6.4.1
key: ${{ runner.os }}-QtCache-Qt6-4
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.4.1'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-6-4.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- uses: ilammy/msvc-dev-cmd@v1
- name: Windows and Qt version
run: |
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: jom
run: |
Invoke-WebRequest -Uri "https://download.qt.io/official_releases/jom/jom.zip" -OutFile jom.zip
unzip jom.zip
.\jom
- name: Smoke test
run: |
$Env:PATH += ";lib;plugins\skins"
echo "starting gallery"
Start-Process .\examples\bin\gallery -ArgumentList "-qwindowgeometry 1024x600+0+0"
Start-Sleep -s 10
- uses: OrbitalOwen/desktop-screenshot-action@0.1
with:
file-name: 'screenshot-windows-qt6-4.jpg'
- name: Cleanup smoke test
run: taskkill /IM gallery.exe /T
build-mac-qt5-15:
name: MacOS Qt 5.15 build
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-5-15
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/5.15.2
key: ${{ runner.os }}-QtCache-Qt5
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '5.15.2'
host: 'mac'
target: 'desktop'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-5-15.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- name: MacOS and Qt version
run: |
sw_vers
echo number of processors: $(sysctl -n hw.ncpu)
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: make
run: make -j$(sysctl -n hw.ncpu)
- name: Smoke test
run: |
DYLD_LIBRARY_PATH=./lib ./examples/bin/iotdashboard.app/Contents/MacOS/iotdashboard -qwindowgeometry 1024x600+75+100 &
sleep 10
- uses: OrbitalOwen/desktop-screenshot-action@0.1
with:
file-name: 'screenshot-macos-qt5-15.jpg'
- name: Cleanup smoke test
run: killall iotdashboard
build-mac-qt-lts:
name: MacOS Qt 6.2 (LTS) build
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-2
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/6.2.4
key: ${{ runner.os }}-QtCache-Qt6-2
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.2.4'
host: 'mac'
target: 'desktop'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-6-2.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- name: MacOS and Qt version
run: |
sw_vers
echo number of processors: $(sysctl -n hw.ncpu)
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: make
run: make -j$(sysctl -n hw.ncpu)
- name: Smoke test
run: |
DYLD_LIBRARY_PATH=./lib ./examples/bin/gallery.app/Contents/MacOS/gallery -qwindowgeometry 1024x600+75+100 &
sleep 10
- uses: OrbitalOwen/desktop-screenshot-action@0.1
with:
file-name: 'screenshot-macos-qt6-2.jpg'
- name: Cleanup smoke test
run: killall gallery
build-mac-qt-current:
name: MacOS Qt 6.4 (current) build
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-4
uses: actions/cache@v1 # not v2!
with:
path: ../Qt/6.4.1
key: ${{ runner.os }}-QtCache-Qt6-4
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.4.1'
host: 'mac'
target: 'desktop'
install-deps: 'true'
modules: 'qtwebengine'
cached: ${{ steps.cache-qt-6-4.outputs.cache-hit }}
setup-python: 'true'
tools: ''
set-env: 'true'
tools-only: 'false'
- name: MacOS and Qt version
run: |
sw_vers
echo number of processors: $(sysctl -n hw.ncpu)
qmake -v
- name: qmake
run: qmake qskinny.pro
- name: make
run: make -j$(sysctl -n hw.ncpu)
- name: Smoke test
run: |
DYLD_LIBRARY_PATH=./lib ./examples/bin/gallery.app/Contents/MacOS/gallery -qwindowgeometry 1024x600+75+100 &
sleep 10
- uses: OrbitalOwen/desktop-screenshot-action@0.1
with:
file-name: 'screenshot-macos-qt6-4.jpg'
- name: Cleanup smoke test
run: killall gallery