Skip to content

demo: image on build dir #151

demo: image on build dir

demo: image on build dir #151

Workflow file for this run

# Copyright (c) 2019-2020-2021 Luca Cappa
# Released under the term specified in file LICENSE.txt
# SPDX short identifier: MIT
name: Build and test
on:
push:
braches : ["main", "new-feature-github-actions"]
jobs:
build-cmake:
name: Build ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
# see https://gist.github.com/NickNaso/0d478f1481686d5bcc868cac06620a60
strategy:
fail-fast: false
matrix:
config:
- {
name: "Windows MSVC",
build_dir: "windows-msvc",
os: windows-latest,
build_type: "Release",
cc: "cl",
cxx: "cl",
generators: "Ninja"
}
- {
name: "Windows MinGW",
build_dir: "windows-mingw",
os: windows-latest,
build_type: "Release",
cc: "gcc",
cxx: "g++",
generators: "Ninja"
}
- {
name: "Ubuntu GCC",
build_dir: "ubungu-gcc",
os: ubuntu-22.04,
build_type: "Release",
cc: "gcc",
cxx: "g++",
generators: "Ninja"
}
- {
name: "Ubuntu Clang",
build_dir: "ubuntu-clang",
os: ubuntu-22.04,
build_type: "Release",
cc: "clang",
cxx: "clang++",
generators: "Ninja"
}
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install conan
run: pip3 install conan==1.61.0
- name: Install cmake-format
run: pip3 install cmake-format
- name: Install clang-tidy
if: matrix.config.os == 'ubuntu-22.04'
run : sudo apt install clang-tidy
- name: Setup MSVC (optional)
if: ${{ matrix.config.cxx == 'cl' }}
uses: ilammy/msvc-dev-cmd@v1
- name: Confiure
id: runcmake
run: |
cmake -S ${{ github.workspace }} -B "${{ runner.workspace }}/build/${{ runner.config.build_dir }}" -G "${{ matrix.config.generators }}" -DCMAKE_BUILD_TYPE="${{ matrix.config.build_type }}" -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }}
- name: Build
id: runcmakebuild
run: |
cmake --build ${{ runner.workspace }}/build/${{ runner.config.build_dir }} --parallel --verbose
- name: Run static analysis
# if: matrix.config.os == 'ubuntu-22.04'
if: false
uses: JacobDomagala/StaticAnalysis@master
with:
language: c++
# don't fail build, just warn
# continue-on-error: true # Continue on error or failure
# Exclude any issues found in ${Project_root_dir}/lib
exclude_dir: lib
use_cmake: true
cmake_args: -S ${{ github.workspace }} -B "${{ runner.workspace }}/build/${{ runner.config.build_dir }}" -G "${{ matrix.config.generators }}" -DCMAKE_BUILD_TYPE="${{ matrix.config.build_type }}" -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }}
# (Optional) clang-tidy args
clang_tidy_args: -checks='*,fuchsia-*,google-*,zircon-*,abseil-*,modernize-use-trailing-return-type'
# (Optional) cppcheck args
# cppcheck_args: --enable=all --suppress=missingInclude --suppress=missingIncludeSystem
cppcheck_args: --enable=all --disable=unusedFunction,missingInclude --suppress=missingIncludeSystem --std=c++17 --language=c++
- name: Run clang format
if: matrix.config.os == 'ubuntu-22.04'
run : |
ninja -C '${{ runner.workspace }}/build/${{ runner.config.build_dir }}' clang-format
# ninja -C '${{ runner.workspace }}/build/${{ runner.config.build_dir }}' check-clang-format
- name: Run tests
run : '${{ runner.workspace }}/build/${{ runner.config.build_dir }}/bin/test-buttons'