Refresh packages: 2026 #3
Workflow file for this run
This file contains hidden or 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 GCC CMake build | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
| BUILD_TYPE: Release | |
| BUILD_DEV_ALL_PRESET: gcc_dev_all | |
| BUILD_FOLDER_DEV_ALL: _build_gcc_dev_all | |
| BUILD_DEV_SINGLE_PRESET: gcc_dev_single | |
| BUILD_FOLDER_DEV_SINGLE: _build_gcc_dev_single | |
| BUILD_DEV_INTERFACE_PRESET: gcc_dev_interface | |
| BUILD_FOLDER_DEV_INTERFACE: _build_gcc_dev_interface | |
| jobs: | |
| build_all: | |
| name: GCC single and interface Lib | |
| # The CMake configure and build commands are platform agnostic and should work equally | |
| # well on Windows or Mac. You can convert this to a matrix build if you need | |
| # cross-platform coverage. | |
| # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: System Packages | |
| run: | | |
| sudo apt-get install ninja-build doxygen graphviz cppcheck clang-tidy | |
| - name: Check environment | |
| run: | | |
| cmake --version | |
| gcc --version | |
| clang --version | |
| ninja --version | |
| doxygen --version | |
| cppcheck --version | |
| clang-tidy --version | |
| - name: Configure CMake | |
| run: | | |
| cmake --list-presets | |
| cmake --preset=${{env.BUILD_DEV_ALL_PRESET}} | |
| - name: Static Analysis | |
| working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| run: cmake --build . --target cppcheck_static_analysis | |
| - name: Build Release | |
| working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| run: | | |
| cmake --build . --parallel 2 --config Debug | |
| ctest --parallel 2 -C Debug | |
| cmake --build . --parallel 2 --config Release | |
| # - name: Bootstrap through CMake | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_buildcc_lib_bootstrap_linux_gcc --config Release | |
| # - name: BuildExe Layout setup | |
| # working-directory: ${{github.workspace}}/.. | |
| # run: | | |
| # mkdir buildcc_home | |
| # export BUILDCC_HOME="${{github.workspace}}/../buildcc_home" | |
| # echo $BUILDCC_HOME | |
| # cd buildcc_home | |
| # mkdir buildcc | |
| # mkdir libs | |
| # mkdir extensions | |
| # cd .. | |
| # ls | |
| # - name: BuildExe IM example tiny-process-library | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # export BUILDCC_HOME="${{github.workspace}}/../buildcc_home" | |
| # echo $BUILDCC_HOME | |
| # cmake --build . --target run_buildexe_im_tpl_linux_gcc --config Release | |
| - name: CPack Release | |
| working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| run: | | |
| cpack -C Release -G ZIP | |
| - name: Upload CPack | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: "BuildExe_Linux" | |
| path: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}}/BuildCC-0.1.1-Linux.zip | |
| # - name: Install | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # sudo cmake --install . --config Release | |
| # - name: AfterInstall Example | |
| # working-directory: ${{github.workspace}}/example/gcc/AfterInstall | |
| # run: | | |
| # cmake -B build -G "Ninja Multi-Config" | |
| # cmake --build build --parallel 2 --config Release | |
| # ./build/Release/build | |
| # - name: Hybrid Single Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_single_example --config Release | |
| # - name: Hybrid Simple Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_simple_example_linux --config Release | |
| # - name: Hybrid Foolib Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_foolib_example_linux --config Release | |
| # - name: Hybrid External Lib Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_externallib_example_linux --config Release | |
| # - name: Hybrid Custom Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_customtarget_example_linux --config Release | |
| # - name: Hybrid Generic Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_generic_example --config Release | |
| # - name: Hybrid PCH Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_pch_example_linux --config Release | |
| # - name: Hybrid Dep Chaining Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_depchaining_example_linux --config Release | |
| # - name: Hybrid Target Info Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_ALL}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_targetinfo_example_linux --config Release | |
| # build_single: | |
| # name: GCC single lib | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: System Packages | |
| # run: | | |
| # sudo apt-get install ninja-build doxygen graphviz cppcheck clang-tidy | |
| # - name: Install LCOV | |
| # run: | | |
| # git clone -b v1.15 https://github.com/linux-test-project/lcov.git | |
| # ls | |
| # cd lcov | |
| # sudo make install | |
| # lcov --version | |
| # - name: Check environment | |
| # run: | | |
| # cmake --version | |
| # gcc --version | |
| # clang --version | |
| # ninja --version | |
| # doxygen --version | |
| # cppcheck --version | |
| # clang-tidy --version | |
| # - name: Configure CMake | |
| # run: | | |
| # cmake --list-presets | |
| # cmake --preset=${{env.BUILD_DEV_SINGLE_PRESET}} | |
| # - name: Static Analysis | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: cmake --build . --target cppcheck_static_analysis | |
| # - name: Build Debug and test | |
| # # Linux has 2 cores | |
| # run: | | |
| # cmake --build --list-presets | |
| # cmake --build --preset=${{env.BUILD_DEV_SINGLE_PRESET}} --parallel 2 --config Debug | |
| # ctest --preset=${{env.BUILD_DEV_SINGLE_PRESET}} --parallel 2 -C Debug | |
| # - name: Codecov | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target lcov_coverage | |
| # cat ../codecov.yml | curl --data-binary @- https://codecov.io/validate | |
| # bash <(curl -s https://codecov.io/bash) -f coverage_truncated.info || echo "Codecov did not collect coverage reports" | |
| # - name: Build Release for example | |
| # run: | | |
| # cmake --build --preset=${{env.BUILD_DEV_SINGLE_PRESET}} --parallel 2 --config Release | |
| # - name: Bootstrap through CMake | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_buildcc_lib_bootstrap_linux_gcc --config Release | |
| # - name: BuildExe Layout setup | |
| # working-directory: ${{github.workspace}}/.. | |
| # run: | | |
| # mkdir buildcc_home | |
| # export BUILDCC_HOME="${{github.workspace}}/../buildcc_home" | |
| # echo $BUILDCC_HOME | |
| # cd buildcc_home | |
| # mkdir buildcc | |
| # mkdir libs | |
| # mkdir extensions | |
| # cd .. | |
| # ls | |
| # - name: BuildExe IM example tiny-process-library | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # export BUILDCC_HOME="${{github.workspace}}/../buildcc_home" | |
| # echo $BUILDCC_HOME | |
| # cmake --build . --target run_buildexe_im_tpl_linux_gcc --config Release | |
| # # - name: TODO, BuildExe SM simple hyrid example | |
| # - name: Install | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # sudo cmake --install . --config Release | |
| # - name: AfterInstall Example | |
| # working-directory: ${{github.workspace}}/example/gcc/AfterInstall | |
| # run: | | |
| # cmake -B build -G "Ninja Multi-Config" | |
| # cmake --build build --parallel 2 --config Release | |
| # ./build/Release/build | |
| # - name: Hybrid Single Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_single_example --config Release | |
| # - name: Hybrid Simple Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_simple_example_linux --config Release | |
| # - name: Hybrid Foolib Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_foolib_example_linux --config Release | |
| # - name: Hybrid External Lib Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_externallib_example_linux --config Release | |
| # - name: Hybrid Custom Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_customtarget_example_linux --config Release | |
| # - name: Hybrid Generic Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_generic_example --config Release | |
| # - name: Hybrid PCH Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_pch_example_linux --config Release | |
| # - name: Hybrid Dep Chaining Target Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_depchaining_example_linux --config Release | |
| # - name: Hybrid Target Info Example | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_SINGLE}} | |
| # run: | | |
| # cmake --build . --target run_hybrid_targetinfo_example_linux --config Release | |
| # build_interface: | |
| # name: GCC interface lib | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: System Packages | |
| # run: | | |
| # sudo apt-get install ninja-build doxygen graphviz cppcheck clang-tidy | |
| # - name: Check environment | |
| # run: | | |
| # cmake --version | |
| # gcc --version | |
| # clang --version | |
| # ninja --version | |
| # doxygen --version | |
| # cppcheck --version | |
| # clang-tidy --version | |
| # - name: Configure CMake | |
| # run: | | |
| # cmake --list-presets | |
| # cmake --preset=${{env.BUILD_DEV_INTERFACE_PRESET}} | |
| # - name: Static Analysis | |
| # working-directory: ${{github.workspace}}/${{env.BUILD_FOLDER_DEV_INTERFACE}} | |
| # run: cmake --build . --target cppcheck_static_analysis | |
| # - name: Build Debug | |
| # # Linux has 2 cores | |
| # run: | | |
| # cmake --build --list-presets | |
| # cmake --build --preset=${{env.BUILD_DEV_INTERFACE_PRESET}} --parallel 2 --config Debug | |
| # - name: Test | |
| # run: | | |
| # ctest --preset=${{env.BUILD_DEV_INTERFACE_PRESET}} --parallel 2 -C Debug |