-
Notifications
You must be signed in to change notification settings - Fork 1
feat: Github Actions CI (#2) #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| name: CMake + Conan (GCC 10) | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ "master" ] | ||
| pull_request: | ||
| branches: [ "master" ] | ||
|
|
||
| env: | ||
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | ||
| BUILD_TYPE: Release | ||
| CC: gcc-10 | ||
| CXX: g++-10 | ||
|
|
||
| jobs: | ||
| build: | ||
| # 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 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suggest switching to Fedora. Ubuntu LTS has very outdated GCC and Clang versions.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed, but I'm thinking on compromise decision: make an Ubuntu 22.04, Fedora-latest and some another Windows/macos CI workloads |
||
|
|
||
| steps: | ||
| - uses: actions/checkout@v3 | ||
|
|
||
| # Install conan | ||
| - name: Get Conan | ||
| uses: turtlebrowser/get-conan@v1.0 | ||
|
|
||
| # Install dependencies in the same build folder as will be used in CMake. This path also will be used for CMake's find_package() mode | ||
| # via CMAKE_MODULE_PATH and CMAKE_PREFIX_PATH. | ||
| - name: Install dependencies | ||
| run: conan install . --build=missing -if ${{github.workspace}}/build -s build_type=${{env.BUILD_TYPE}} | ||
|
|
||
| - name: Configure CMake | ||
| # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
| # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
| # Also set PREFIX and MODULE paths for find_package() via CMAKE_MODULE_PATH and CMAKE_PREFIX_PATH variables. | ||
| # See https://cmake.org/cmake/help/latest/command/find_package.html?highlight=find_package for search modes. | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_PREFIX_PATH=${{github.workspace}}/build -DCMAKE_MODULE_PATH=${{github.workspace}}/build | ||
|
|
||
| - name: Build | ||
| # Build your program with the given configuration | ||
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
|
|
||
| - name: Test | ||
| working-directory: ${{github.workspace}}/build | ||
| # Execute tests defined by the CMake configuration. | ||
| # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
| run: ctest -C ${{env.BUILD_TYPE}} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move BUILD_TYPE, CXX and C from ENV to the cmake configuration step.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, but I'm thinking about env matrix, if it applicable to this case 🤔