161 lines
5.1 KiB
YAML
161 lines
5.1 KiB
YAML
name: CI Build
|
|
|
|
on: [push]
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
qt_version: [5.15.2, 6.4.0]
|
|
platform: [ubuntu-20.04, windows-latest, macos-latest]
|
|
include:
|
|
- qt_version: 6.4.0
|
|
additional_arguments: -D QT_DEFAULT_MAJOR_VERSION=6
|
|
build_cmake: true
|
|
- platform: ubuntu-20.04
|
|
make: make
|
|
#CXXFLAGS: -Wall -Wextra
|
|
MAKEFLAGS: -j2
|
|
- platform: macos-latest
|
|
make: make
|
|
#CXXFLAGS: -Wall -Wextra
|
|
MAKEFLAGS: -j3
|
|
- platform: windows-latest
|
|
make: nmake
|
|
QMAKE_MSC_VER: 16.11.31911.196
|
|
cmake_params: -D CMAKE_CXX_FLAGS_DEBUG="/g"
|
|
- platform: ubuntu-20.04
|
|
tests: [sqlite, posgtresql]
|
|
- platform: ubuntu-20.04
|
|
qt_version: system
|
|
tests: [sqlite, posgtresql, mysql]
|
|
make: make
|
|
name: ubuntu-20.04, system
|
|
- platform: windows-latest
|
|
qt_version: 5.15.2
|
|
tests: [mssql]
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
name: ${{ matrix.platform }} - Qt ${{ matrix.qt_version }}
|
|
|
|
env:
|
|
CXXFLAGS: ${{ matrix.CXXFLAGS }}
|
|
MAKEFLAGS: ${{ matrix.MAKEFLAGS }}
|
|
QMAKE_MSC_VER: ${{ matrix.QMAKE_MSC_VER }}
|
|
CMAKE_PREFIX_PATH: $Qt6_DIR/lib/cmake
|
|
CMAKE_CXX_FLAGS_DEBUG: ${{ matrix.CMAKE_CXX_FLAGS_DEBUG }}
|
|
|
|
steps:
|
|
- name: Clone repo
|
|
uses: actions/checkout@v2.3.4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install Qt
|
|
if: matrix.qt_version != 'system'
|
|
uses: jurplel/install-qt-action@v2.14.0
|
|
with:
|
|
version: ${{ matrix.qt_version }}
|
|
|
|
- name: Install Qt from package manager
|
|
if: matrix.qt_version == 'system'
|
|
run: |
|
|
sudo apt install qt5-default qt5-qmake qt5-qmake-bin libqt5core5a libqt5gui5 libqt5sql5 libqt5sql5-psql libqt5sql5-mysql libqt5sql5-sqlite
|
|
|
|
- name: Setup MSVC environment for QMake
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
uwp: false
|
|
|
|
- name: Build with QMake
|
|
run: |
|
|
mkdir build-qmake
|
|
cd build-qmake
|
|
qmake ../nut.pro
|
|
${{ matrix.make }} qmake_all
|
|
${{ matrix.make }}
|
|
|
|
- name: Build with CMake
|
|
if: startsWith(matrix.qt_version, '6.')
|
|
run: |
|
|
mkdir build-cmake
|
|
cd build-cmake
|
|
cmake .. ${{ matrix.additional_arguments }} ${{ matrix.cmake_params }}
|
|
cmake --build .
|
|
|
|
- name: Seutp postgres
|
|
if: contains(matrix.tests, 'posgtresql')
|
|
uses: ikalnytskyi/action-setup-postgres@v1
|
|
|
|
- name: Setup sql server
|
|
if: contains(matrix.tests, 'mssql')
|
|
uses: potatoqualitee/mssqlsuite@v1
|
|
with:
|
|
install: sqlengine
|
|
sa-password: NUT_sa_PASS_1_???
|
|
show-log: true
|
|
|
|
- name: Check sql server
|
|
if: contains(matrix.tests, 'mssql')
|
|
run: sqlcmd -S localhost -U sa -P NUT_sa_PASS_1_??? -d tempdb -Q "SELECT @@version;"
|
|
|
|
- name: Run tests with sqlite
|
|
if: contains(matrix.tests, 'sqlite')
|
|
continue-on-error: true
|
|
run: |
|
|
rm tests/auto/common/test_params.h
|
|
cp tests/auto/common/test_params_sqlite.h tests/auto/common/test_params.h
|
|
cd build-qmake
|
|
${{ matrix.make }} all
|
|
${{ matrix.make }} run-tests
|
|
|
|
- name: Run tests with posgtresql
|
|
if: false #contains(matrix.tests, 'posgtresql')
|
|
#continue-on-error: true
|
|
run: |
|
|
rm tests/auto/common/test_params.h
|
|
cp tests/auto/common/test_params_postgresql.h tests/auto/common/test_params.h
|
|
cd build-qmake
|
|
${{ matrix.make }} all
|
|
${{ matrix.make }} run-tests
|
|
|
|
- name: Run tests with mysql
|
|
if: false #contains(matrix.tests, 'mysql')
|
|
#continue-on-error: true
|
|
run: |
|
|
sudo systemctl start mysql.service
|
|
rm tests/auto/common/test_params.h
|
|
cp tests/auto/common/test_params_mysql.h tests/auto/common/test_params.h
|
|
cd build-qmake
|
|
${{ matrix.make }} all
|
|
${{ matrix.make }} run-tests
|
|
|
|
- name: Run tests with sql server
|
|
if: false #contains(matrix.tests, 'mssql')
|
|
continue-on-error: true
|
|
run: |
|
|
rm tests/auto/common/test_params.h
|
|
cp tests/auto/common/test_params_mssql.h tests/auto/common/test_params.h
|
|
cd build-qmake
|
|
${{ matrix.make }} all
|
|
${{ matrix.make }} run-tests
|
|
|
|
deploy:
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
needs: build
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
path: source
|
|
- uses: actions/setup-python@v1
|
|
- uses: Skycoder42/action-deploy-qt@master
|
|
with:
|
|
token: ${{secrets.GITHUB_TOKEN}}
|
|
version: 5.15.2
|
|
host: ${{secrets.SSHFS_HOST}}
|
|
key: ${{secrets.SSHFS_KEY}}
|
|
port: ${{secrets.SSHFS_PORT}}
|