summaryrefslogtreecommitdiffstats
path: root/gulrak-filesystem/.github
diff options
context:
space:
mode:
Diffstat (limited to 'gulrak-filesystem/.github')
-rw-r--r--gulrak-filesystem/.github/ISSUE_TEMPLATE/bug_report.md17
-rw-r--r--gulrak-filesystem/.github/ISSUE_TEMPLATE/feature_request.md17
-rw-r--r--gulrak-filesystem/.github/workflows/build_cmake.yml197
3 files changed, 231 insertions, 0 deletions
diff --git a/gulrak-filesystem/.github/ISSUE_TEMPLATE/bug_report.md b/gulrak-filesystem/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..fc25aa4
--- /dev/null
+++ b/gulrak-filesystem/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,17 @@
+---
+name: Bug report
+about: Create a report to help us improve
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Detailed steps to reproduce the behavior.
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/gulrak-filesystem/.github/ISSUE_TEMPLATE/feature_request.md b/gulrak-filesystem/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..066b2d9
--- /dev/null
+++ b/gulrak-filesystem/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,17 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+
+---
+
+**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.
diff --git a/gulrak-filesystem/.github/workflows/build_cmake.yml b/gulrak-filesystem/.github/workflows/build_cmake.yml
new file mode 100644
index 0000000..783508b
--- /dev/null
+++ b/gulrak-filesystem/.github/workflows/build_cmake.yml
@@ -0,0 +1,197 @@
+name: CMake Build Matrix
+
+on: [ push, pull_request ]
+
+jobs:
+ build:
+ name: ${{ matrix.config.name }}
+ runs-on: ${{ matrix.config.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - name: "Ubuntu 20.04 GCC 9.3"
+ os: ubuntu-20.04
+ build_type: Release
+ packages: ninja-build
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17;cxx_std_20"
+ cc: gcc
+ cxx: g++
+
+ - name: "Ubuntu 20.04 Clang 10.0"
+ os: ubuntu-20.04
+ build_type: Release
+ packages: ninja-build
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17;cxx_std_20"
+ cc: clang-10
+ cxx: clang++-10
+
+ - name: "Ubuntu 20.04 Clang 11.0"
+ os: ubuntu-20.04
+ build_type: Release
+ packages: ninja-build clang-11 libc++-11-dev libc++abi-11-dev
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17;cxx_std_20"
+ cc: clang-11
+ cxx: clang++-11
+
+ - name: "Ubuntu 20.04 GCC 9.3 coverage"
+ os: ubuntu-20.04
+ build_type: Debug
+ packages: ninja-build lcov
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17;cxx_std_20"
+ cc: gcc
+ cxx: g++
+
+ - name: "Ubuntu 18.04 GCC 8.4"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build gcc-8 g++-8
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: gcc-8
+ cxx: g++-8
+
+ - name: "Ubuntu 18.04 GCC 7.5"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: gcc-7
+ cxx: g++-7
+
+ - name: "Ubuntu 18.04 GCC 6.5"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build gcc-6 g++-6
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: gcc-6
+ cxx: g++-6
+
+ - name: "Ubuntu 18.04 GCC 5.5"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build gcc-5 g++-5
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: gcc-5
+ cxx: g++-5
+
+ - name: "Ubuntu 18.04 Clang 9.0"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build libc++-9-dev libc++abi-9-dev
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17;cxx_std_20"
+ cc: clang
+ cxx: clang++
+
+ - name: "Ubuntu 18.04 Clang 6.0"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build clang-6.0
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: clang-6.0
+ cxx: clang++-6.0
+
+ - name: "Ubuntu 18.04 Clang 5.0"
+ os: ubuntu-18.04
+ build_type: Release
+ packages: ninja-build clang-5.0
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: clang-5.0
+ cxx: clang++-5.0
+
+ - name: "Windows MSVC 2019"
+ os: windows-latest
+ build_type: Release
+ packages: ninja
+ generator: "Visual Studio 16 2019"
+ compatibility: "cxx_std_11;cxx_std_17;cxx_std_20"
+ cc: cl
+ cxx: cl
+
+ - name: "macOS 10.15 AppleClang"
+ os: macos-10.15
+ build_type: Release
+ packages: ninja
+ generator: Ninja
+ compatibility: "cxx_std_11;cxx_std_17"
+ cc: clang
+ cxx: clang++
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: print environment
+ run: |
+ echo github.event.action: ${{ github.event.action }}
+ echo github.event_name: ${{ github.event_name }}
+
+ - name: Install dependencies on Ubuntu
+ if: startsWith(matrix.config.os, 'ubuntu')
+ shell: bash
+ run: |
+ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
+ sudo apt update
+ sudo apt install ${{ matrix.config.packages }}
+
+ - name: Install dependencies on windows
+ if: startsWith(matrix.config.os, 'windows')
+ run: |
+ choco install ${{ matrix.config.packages }}
+
+ - name: Install dependencies on macOS
+ if: startsWith(matrix.config.os, 'macos')
+ run: |
+ brew install ${{ matrix.config.packages }}
+
+ - name: Configure project
+ shell: bash
+ run: |
+ export CC=${{ matrix.config.cc }}
+ export CXX=${{ matrix.config.cxx }}
+ ninja --version
+ cmake --version
+ mkdir build
+ mkdir install
+ if [[ "${{ matrix.config.build_type }}" == "Debug" ]]; then
+ cmake -G "${{ matrix.config.generator }}" -S . -B build -DCMAKE_BUILD_TYPE=Debug -DGHC_COVERAGE=ON -DGHC_FILESYSTEM_TEST_COMPILE_FEATURES="${{ matrix.config.compatibility }}" -DCMAKE_INSTALL_PREFIX:PATH=install
+ else
+ cmake -G "${{ matrix.config.generator }}" -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGHC_FILESYSTEM_TEST_COMPILE_FEATURES="${{ matrix.config.compatibility }}" -DCMAKE_INSTALL_PREFIX:PATH=install
+ fi
+
+ - name: Build project
+ shell: bash
+ run: |
+ cmake --build build --config ${{ matrix.config.build_type }}
+
+ - name: Run tests
+ run: |
+ cd build && ctest -C ${{ matrix.config.build_type }}
+
+ - name: Collect coverage info
+ if: startsWith(matrix.config.build_type, 'Debug')
+ run: |
+ cd build
+ lcov --compat-libtool --directory . --capture --output-file coverage_output.info
+ lcov --remove coverage_output.info '/usr/*' '*/c++/*' '*.h' '*/catch.hpp' -o coverage.info
+ # sed -i 's|SF:/.*/filesystem/|SF:../|g' coverage.info
+
+ - name: Upload coverage info
+ if: startsWith(matrix.config.build_type, 'Debug')
+ env:
+ COVERALLS_DEBUG: true
+ NODE_COVERALLS_DEBUG: 1
+ uses: coverallsapp/github-action@master
+ with:
+ path-to-lcov: ${{ github.workspace }}/build/coverage.info
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+