new file mode 100644
@@ -0,0 +1,63 @@
+name: KernelShark CI (CMAKE)
+
+on: [push]
+
+env:
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+ BUILD_TYPE: Release
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install Dependencies
+ shell: bash
+ run: |
+ sudo apt-get update
+ sudo apt-get install build-essential git cmake libjson-c-dev -y
+ sudo apt-get install freeglut3-dev libxmu-dev libxi-dev -y
+ sudo apt-get install qtbase5-dev libboost-all-dev -y
+ git clone https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/
+ cd libtraceevent
+ make
+ sudo make install
+ cd ..
+ git clone https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
+ cd libtracefs
+ make
+ sudo make install
+ cd ..
+ git clone git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git
+ cd trace-cmd
+ make
+ sudo make install
+ sudo make install_libs
+ - name: Create Build Environment
+ # Some projects don't allow in-source building, so create a separate build directory
+ # We'll use this as our working directory for all subsequent commands
+ run: cmake -E make_directory ${{runner.workspace}}/build
+
+ - name: Configure CMake
+ # Use a bash shell so we can use the same syntax for environment variable
+ # access regardless of the host operating system
+ shell: bash
+ working-directory: ${{runner.workspace}}/build
+ # Note the current convention is to use the -S and -B options here to specify source
+ # and build directories, but this is only available with CMake 3.13 and higher.
+ # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
+ run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_C_FLAGS_RELEASE="-Werror"
+
+ - name: Build
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ # Execute the build. You can specify a specific target with "--target <NAME>"
+ run: cmake --build . --config $BUILD_TYPE
+
+ - name: Test
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ # Execute tests defined by the CMake configuration.
+ run: ctest -C $BUILD_TYPE