add windows support #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | ||
on: | ||
push: | ||
branches: | ||
- master | ||
paths-ignore: | ||
- "*.md" | ||
- "*.txt" | ||
- "doxyfile" | ||
pull_request: | ||
branches: | ||
- master | ||
paths-ignore: | ||
- "*.md" | ||
- "*.txt" | ||
- "doxyfile" | ||
workflow_dispatch: | ||
concurrency: | ||
group: ci-${{ github.head_ref }} | ||
cancel-in-progress: true | ||
jobs: | ||
ubuntu-latest: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
sanitizer: [none, address] | ||
type: [RelWithDebInfo, Release] | ||
compiler: [g++, clang++] | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Build | ||
run: | | ||
export cxx="/usr/bin/${{ matrix.compiler }}" | ||
if [ "${{ matrix.sanitizer }}" = "none" ]; then | ||
./build.sh -t "${{ matrix.type }}" | ||
else | ||
./build.sh -t "${{ matrix.type }}" -o "-DCMAKE_CXX_FLAGS=-fsanitize=${{ matrix.sanitizer }}" | ||
fi | ||
- name: Run tests | ||
run: | | ||
git lfs install | ||
git lfs pull | ||
./test/testrunner.sh | ||
macos-latest: | ||
runs-on: macos-latest | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
sanitizer: [none, address] | ||
type: [RelWithDebInfo, Release] | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Collect dependencies | ||
run: brew install llvm | ||
- name: Build | ||
run: | | ||
if [ "${{ matrix.sanitizer }}" = "none" ]; then | ||
./build.sh -t "${{ matrix.type }}" | ||
else | ||
./build.sh -t "${{ matrix.type }}" -o "-DCMAKE_CXX_FLAGS=-fsanitize=${{ matrix.sanitizer }}" | ||
fi | ||
- name: Run tests | ||
run: | | ||
git lfs install | ||
git lfs pull | ||
./test/testrunner.sh | ||
windows-latest: | ||
runs-on: windows-latest | ||
needs: [ubuntu-latest, macos-latest] | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
sanitizer: [none, address] | ||
type: [RelWithDebInfo, Release] | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Build | ||
run: | | ||
if [ "${{ matrix.sanitizer }}" = "none" ]; then | ||
bash build.sh -t "${{ matrix.type }}" | ||
else | ||
bash build.sh -t "${{ matrix.type }}" -o "-DCMAKE_CXX_FLAGS=-fsanitize=${{ matrix.sanitizer }}" | ||
fi | ||
shell: bash | ||
- name: Run tests | ||
run: | | ||
git lfs install | ||
git lfs pull | ||
bash test/testrunner.sh | ||
shell: bash | ||
generate-docs: | ||
runs-on: ubuntu-latest | ||
needs: [ubuntu-latest, macos-latest, windows-latest] | ||
steps: | ||
- name: Clone | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Install Dependencies | ||
run: sudo apt install findutils doxygen graphviz | ||
- name: Update doc branch with current master | ||
run: | | ||
git config --local user.name $USER_NAME | ||
git config --local user.email "[email protected]" | ||
git branch -D doc &>/dev/null || true | ||
git checkout -b doc | ||
env: | ||
USER_NAME: matekelemen | ||
- name: Generate Docs | ||
run: | | ||
cd docs | ||
python3 prepareDocs.py | ||
doxygen doxyfile | ||
cd .. | ||
- name: Generate root index.html | ||
run: echo "<meta http-equiv=\"refresh\" content=\"0; docs/html/index.html\">" > index.html | ||
- name: Update Remote | ||
run: | | ||
git add index.html docs/html -f | ||
git commit -m "update docs" | ||
git push -f https://$USER_NAME:[email protected]/matekelemen/mcgs.git doc | ||
env: | ||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | ||
USER_NAME: matekelemen |