From 5d6f895c6c196cb6eb635b5ad00f76e91b64fcef Mon Sep 17 00:00:00 2001 From: MiaoHN <582418227@qq.com> Date: Fri, 10 Jan 2025 10:56:19 +0800 Subject: [PATCH] ci: add github action --- .github/workflows/cmake.yml | 42 +++++++++++++++++++++++++++++++++++++ README.md | 3 +++ 2 files changed, 45 insertions(+) create mode 100644 .github/workflows/cmake.yml diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 0000000..6a82c49 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,42 @@ +# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. +# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml +name: CMake on a single platform + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +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 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Environment + # Set up the CMake environment + run: apt-get install libyaml-cpp-dev libboost-dev ragel + + - 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 + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - 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}} diff --git a/README.md b/README.md index 1aa5ede..27f4304 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Gudov +![Travis (.com)](https://img.shields.io/travis/com/miaohn/gudov) ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/miaohn/gudov/cmake) + ![GitHub License](https://img.shields.io/github/license/miaohn/gudov) + 学习 sylar 高性能服务器的代码,对应[视频地址](https://www.bilibili.com/video/av53602631)。该框架实现了 M 对 N 的线程-协程调度模块,借助 epoll 实现定时器,并通过 hook 系统调用实现了较高的性能。 ## 第三方库