qt5base-lts/.github/workflows/ninja-build.yml
Cristian Adam e6b8eb502e GitHub Actions: Fix workflow file
-no-iconv configure parameter was removed and various changes to the
configure parameters.

Change-Id: I8716388b20846cdd1ba63a715308813a312dea65
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-09-11 13:37:48 +02:00

109 lines
3.8 KiB
YAML

# Smoke builds
#
# The goal of this workflow is to finish as fast as possible. Therefore some
# choices have been made:
# - no optimizations
# - link to system-provided libraries instead of bulding
# bundled 3rd party libraries
# - ccache
name: Smoke build
on: push
defaults:
run:
shell: bash
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- name: ubuntu-18.04
os: ubuntu-18.04
deps: libgl-dev libglu-dev libpcre2-dev libz-dev libfreetype6-dev libpng-dev libjpeg-dev libsqlite3-dev
tools: ninja-build ccache
install_cmd: sudo apt-get -y install
configure_flags: -system-sqlite -system-pcre -system-zlib -system-freetype -system-libpng -system-libjpeg
- name: macos-10.15
os: macos-10.15
deps: jpeg sqlite
tools: ninja ccache pkg-config
install_cmd: brew install
# Specifically on macOS pkg_config has to be manually turned on otherwise libraries under /usr/local are not detected.
configure_flags: -feature-pkg-config -system-sqlite -system-libjpeg
- name: windows-2019
os: windows-2019
install_cmd: choco install
install_cmd_postfix: --yes --no-progress
# Chocolatey sqlite package does not come with headers, so we build with bundled sqlite.
#deps: sqlite
tools: ninja ccache
# We don't want the system headers / libraries from Strawberry Perl while compiling with MinGW 8.1.0
configure_flags: -qt-sqlite -qt-pcre -qt-zlib -qt-freetype -qt-libpng -qt-libjpeg -no-feature-sql-psql -no-feature-sql-mysql -no-feature-sql-odbc
runs-on: ${{ matrix.os }}
steps:
- name: prepare Linux
if: runner.os == 'Linux'
run: sudo apt-get update
- name: prepare Windows
if: runner.os == 'Windows'
# Header pthread.h from postgres is included and creates issues.
# Also library zlib.lib is linked instead of the system one.
run: rm -rf "C:/Program Files/PostgreSQL/"
- uses: actions/checkout@v2
- name: restore ccache
id: ccache
uses: actions/cache@v2
with:
path: ~/.ccache
# "github.run_id" is unique, which causes the cache to always get
# saved at the end of a successful run.
key: ccache-${{ matrix.os }}-${{ github.ref }}-${{ github.run_id }}
# As the unique "key" above will never be found in the cache when the
# job starts, we need these broader "restore-keys" in order to match
# and restore the most recent cache.
restore-keys: |
ccache-${{ matrix.os }}-${{ github.ref }}-
ccache-${{ matrix.os }}-refs/heads/dev-
ccache-${{ matrix.os }}-
- name: install build dependencies
run: ${{ matrix.install_cmd }} ${{ matrix.deps }} ${{ matrix.install_cmd_postfix }}
if: matrix.deps != ''
- name: install compiler tools
run: ${{ matrix.install_cmd }} ${{ matrix.tools }} ${{ matrix.install_cmd_postfix }}
- name: print versions and environment
run: |
gcc --version | head -1
cmake --version | head -1
echo Ninja `ninja --version`
{ ninja --help || true ; } 2>&1 | grep "run N jobs in parallel"
ccache --version | head -1
echo Environment:
printenv
- name: make build directory
run: mkdir build
- name: configure
working-directory: build
run: ../configure -cmake -opensource -confirm-license -ccache -no-pch \
\ -debug -nomake tests -nomake examples \
\ -qt-harfbuzz \
\ ${{ matrix.configure_flags }}
- name: ninja
working-directory: build
run: ninja
- name: various stats
# Print ccache utilization statistics, then reset them.
run: ccache -s && ccache -z