Skip to content
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

Adds github actions and doxygen #1

Merged
merged 2 commits into from
Aug 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
127 changes: 127 additions & 0 deletions .github/workflows/cmake-multi-platform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: Build and test

on:
push:
branches: [ "develop", "master" ]
pull_request:
branches: [ "develop", "master" ]

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false

# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
build_type: [Release]
c_compiler: [gcc, clang, cl]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
- os: macos-latest
c_compiler: clang
cpp_compiler: clang++
exclude:
- os: windows-latest
c_compiler: gcc
- os: windows-latest
c_compiler: clang
- os: ubuntu-latest
c_compiler: cl
- os: macos-latest
c_compiler: cl
- os: macos-latest
c_compiler: gcc

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'true'

- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"

- 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 ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-S ${{ github.workspace }}

- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}

- name: Test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest --build-config ${{ matrix.build_type }}

clangFormat:
name: clang-format-check
runs-on: ubuntu-latest
strategy:
matrix:
path:
- 'examples'
- 'include'
- 'src'
- 'tests'
fail-fast: false

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'true'

- name: Check compliance with coding standard
uses: jidicula/[email protected]
with:
clang-format-version: '17'
check-path: ${{ matrix.path }}

genDoc:
name: generate-documentation
runs-on: ubuntu-latest
strategy:
fail-fast: false

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'true'

- name: Install dependencies
run: sudo apt-get install -y doxygen

- name: Generate documentation
run: mkdir -p build; doxygen resources/doxygen/Doxyfile
28 changes: 28 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Release

on:
push:
branches: [ "master" ]

jobs:
genDoc:
name: generate-documentation
runs-on: ubuntu-latest
strategy:
fail-fast: false

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install dependencies
run: sudo apt-get install -y doxygen

- name: Generate documentation
run: mkdir -p build; doxygen resources/doxygen/Doxyfile

- name: Deploy documentation
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: build/doxygen/html
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "resources/doxygen/doxygen-awesome"]
path = resources/doxygen/doxygen-awesome
url = https://github.com/jothepro/doxygen-awesome-css.git
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ include(FetchContent)
FetchContent_Declare(
ReCpp
GIT_REPOSITORY https://github.com/pribault/ReCpp.git
GIT_TAG 20fea13044d97ef19e5e7de7b50c745e113fab5c
GIT_TAG fa725834059fe436a66e5e972db9247368cf0d0b
)
set(RSCPP_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(RSCPP_BUILD_TESTS CACHE BOOL "" FORCE)
Expand Down
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Overview

[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/pribault/ReCpp/cmake-multi-platform.yml?branch=develop)
](https://github.com/pribault/ReCpp-filesystem/actions)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/pribault/ReCpp-filesystem/graphs/commit-activity)
[![GitHub License](https://img.shields.io/github/license/pribault/ReCpp)](https://github.com/pribault/ReCpp-filesystem/blob/develop/LICENSE)
![](https://img.shields.io/badge/C%2B%2B-17-blue)

This readme is a work in progress

## Features

## Supported platforms

- Windows
- MacOS
- Ubuntu

# Getting started

## Installation

## Documentation

Explore the [Documentation](https://pribault.github.io/ReCpp-filesystem/index.html) to learn more about ReCpp.

# License

ReCpp-filesystem is licensed under the MIT License. See the [LICENSE](https://github.com/pribault/ReCpp-filesystem/blob/develop/LICENSE) file for details.

# Contributing
8 changes: 4 additions & 4 deletions examples/main.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include <recpp/filesystem/FileSystem.h>
#include <recpp/async/ThreadPool.h>
#include <recpp/async/EventLoop.h>
#include <recpp/async/ThreadPool.h>
#include <recpp/filesystem/FileSystem.h>

#include <iostream>

int main()
{
recpp::async::ThreadPool threadPool;
recpp::async::EventLoop eventLoop;
recpp::async::ThreadPool threadPool;
recpp::async::EventLoop eventLoop;
recpp::filesystem::FileSystem fileSystem(threadPool);

fileSystem.rxAbsolute("examples")
Expand Down
Loading