Add dockerfile for build environment #1049
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linux | |
on: | |
push: | |
paths-ignore: | |
- 'docs/**' | |
- 'packaging/**' | |
- 'util/**' | |
- 'uml/**' | |
- '**.md' | |
- '**.svg' | |
- '**.png' | |
branches-ignore: | |
- 'noactions/*' | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
- 'packaging/**' | |
- 'util/**' | |
- 'uml/**' | |
- '**.md' | |
- '**.svg' | |
- '**.png' | |
branches-ignore: | |
- 'noactions/*' | |
jobs: | |
build-ubuntu: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Update package database | |
run: sudo apt -y update | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
max-size: "2000M" | |
- name: Install deps | |
run: sudo apt -y install git make grcov ninja-build pkg-config gcc g++ ccache cmake libyaml-cpp-dev llvm-18 clang-18 libclang-18-dev libclang-cpp18-dev clang-tools-18 clang-format-18 lcov zlib1g-dev libunwind-dev libdw-dev gnustep-back-common libgnustep-base-dev gnustep-make | |
- name: Check code formatting | |
run: | | |
make check-formatting | |
- name: Build and unit test | |
run: | | |
CC=/usr/bin/clang-18 CXX=/usr/bin/clang++-18 LLVM_VERSION=18 NUMPROC=2 CMAKE_GENERATOR=Ninja CODE_COVERAGE=ON LLVM_VERSION=18 ENABLE_CXX_MODULES_TEST_CASES=ON ENABLE_CUDA_TEST_CASES=OFF ENABLE_OBJECTIVE_C_TEST_CASES=ON FETCH_LIBOBJC2=ON CLANG_UML_ENABLE_BACKTRACE=ON make test | |
- name: Run coverage | |
run: | | |
grcov --llvm --binary-path debug --output-path coverage.info -t lcov --keep-only 'src/*' --source-dir . --ignore src/main.cc --ignore src/common/generators/generators.cc . | |
lcov --ignore-errors inconsistent -l coverage.info | |
- name: Upload coverage | |
uses: codecov/codecov-action@v3 | |
with: | |
files: coverage.info | |
disable_search: true | |
name: clang-uml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false |