Configure and build CMake projects on GitHub Actions
Go to file
2023-01-22 12:51:02 +07:00
.github add support to run test_c and test_cpp targets as a CMake test 2023-01-22 12:51:02 +07:00
test add support to run test_c and test_cpp targets as a CMake test 2023-01-22 12:51:02 +07:00
.gitignore add a test project for testing this action 2023-01-06 15:23:09 +07:00
action.yml add a new test-args action input for passing additional arguments during the CTest run 2023-01-22 12:44:19 +07:00
LICENSE initialize project with readme and license 2023-01-06 12:39:38 +07:00
README.md add a new test-args action input for passing additional arguments during the CTest run 2023-01-22 12:44:19 +07:00

CMake Action

latest version license test status

Configure and build a CMake project on GitHub Actions.

Usage

For more information, see action.yml and GitHub Actions guide.

Inputs

Name Value Type Description
source-dir Path Source directory of the CMake project. Defaults to current directory.
build-dir Path Build directory of the CMake project. Defaults to build directory in current directory.
targets Multiple strings List of build targets.
run-test true or false If enabled, run testing using CTest. Defaults to false.
generator String Build system generator of the CMake project.
c-compiler String Preferred executable for compiling C language files.
cxx-compiler String Preferred executable for compiling C++ language files.
c-flags Multiple strings Additional flags passed when compiling C language files.
cxx-flags Multiple strings Additional flags passed when compiling C++ language files.
args Multiple strings Additional arguments passed during the CMake configuration.
test-args Multiple strings Additional arguments passed during the CTest run.

Note: Multiple strings mean that the input could be specified with more than one value. Separate each value with a space or a new line.

Note: All inputs are optional.

Examples

name: build
on:
  push:
jobs:
  build-project:
    runs-on: ubuntu-latest
    steps:
      - name: Check out this repository
        uses: actions/checkout@v3.3.0

      - name: Configure and build this project
        uses: threeal/cmake-action@latest

Note: You can replace @latest with any version you like.

Specify the Source and the Build Directories

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    source-dir: submodules
    build-dir: submodules/build

Specify the Build Targets and Additional Options

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    targets: hello_world_test fibonacci_test
    c-flags: -Werror
    cxx-flags: -Werror
    args: |
      -DCMAKE_BUILD_TYPE=Debug
      -DBUILD_TESTING=ON      

Using Ninja as the Generator and Clang as the Compiler

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    generator: Ninja
    c-compiler: clang
    cxx-compiler: clang++

License

This project is licensed under the terms of the MIT License.

Copyright © 2023 Alfi Maulana