summaryrefslogtreecommitdiff
path: root/cmark/.github/workflows
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:41:54 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:41:54 +0300
commit3d2121f5d6555744ce5aa502088fc2b34dc26d38 (patch)
tree53f42c08746171878b57f5b6ffe1eb841da9d45d /cmark/.github/workflows
parent6bf7c5ce92ff6237c0b17c332873805018812b40 (diff)
parent64efa3b3b3d35f2ffb604b57a8a9c89047cb420b (diff)
downloadProject-Tick-3d2121f5d6555744ce5aa502088fc2b34dc26d38.tar.gz
Project-Tick-3d2121f5d6555744ce5aa502088fc2b34dc26d38.zip
Add 'cmark/' from commit '64efa3b3b3d35f2ffb604b57a8a9c89047cb420b'
git-subtree-dir: cmark git-subtree-mainline: 6bf7c5ce92ff6237c0b17c332873805018812b40 git-subtree-split: 64efa3b3b3d35f2ffb604b57a8a9c89047cb420b
Diffstat (limited to 'cmark/.github/workflows')
-rw-r--r--cmark/.github/workflows/ci.yml145
-rw-r--r--cmark/.github/workflows/fuzz.yml23
2 files changed, 168 insertions, 0 deletions
diff --git a/cmark/.github/workflows/ci.yml b/cmark/.github/workflows/ci.yml
new file mode 100644
index 0000000000..09ee0d6c3c
--- /dev/null
+++ b/cmark/.github/workflows/ci.yml
@@ -0,0 +1,145 @@
+name: CI tests
+
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ pull_request:
+ workflow_dispatch:
+
+jobs:
+
+ linter:
+
+ runs-on: ubuntu-latest
+
+ steps:
+
+ - uses: actions/checkout@v6
+ - name: Install clang-tidy
+ run: |
+ sudo apt-get install -y clang-tidy
+ - name: lint with clang-tidy
+ run: |
+ make lint
+ env:
+ CC: clang
+ CXX: clang++
+
+ posix:
+
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [linux, macos]
+ cc: [clang, gcc]
+ build_type: [shared, static]
+ sanitizers: ['', ASan]
+
+ include:
+ # Translate human readable labels
+ - os: 'linux'
+ image: 'ubuntu-latest'
+ - os: 'macos'
+ image: 'macos-latest'
+ - cc: 'clang'
+ cxx: 'clang++'
+ - cc: 'gcc'
+ cxx: 'g++'
+ - build_type: 'shared'
+ cmake_shared: 'YES'
+ - build_type: 'static'
+ cmake_shared: 'NO'
+ - sanitizers: 'ASan'
+ san_cflags: '-fsanitize=address,undefined -fno-sanitize-recover=all'
+
+ # When building shared libraries, they will be loaded
+ # dynamically from Python when testing. This means that
+ # we have to use a preloaded shared libasan.
+ - sanitizers: 'ASan'
+ os: 'linux'
+ cc: 'gcc'
+ build_type: 'shared'
+ test_env: 'LD_PRELOAD=$(gcc -print-file-name=libasan.so)'
+ - sanitizers: 'ASan'
+ os: 'linux'
+ cc: 'clang'
+ build_type: 'shared'
+ # clang defaults to -static-libsasn
+ asan_cflags: '-shared-libasan'
+ test_env: 'LD_PRELOAD=$(clang -print-file-name=libclang_rt.asan-x86_64.so)'
+
+ # We have to disable LeakSanitizer in shared library builds
+ # because we get false positives from Python.
+ - sanitizers: 'ASan'
+ build_type: 'shared'
+ asan_opts: 'detect_leaks=0'
+
+ # The static build can run with LeakSanitizer.
+ # gcc defaults to -shared-libasan and needs -static-libasan
+ - sanitizers: 'ASan'
+ cc: 'gcc'
+ build_type: 'static'
+ asan_cflags: '-static-libasan'
+
+ exclude:
+ # gcc is just an alias for clang on macOS
+ - os: 'macos'
+ cc: 'gcc'
+ # Shared libasan doesn't work with macOS system Python.
+ - os: 'macos'
+ sanitizers: 'ASan'
+ build_type: 'shared'
+
+ runs-on: ${{ matrix.image }}
+
+ env:
+ ASAN_OPTIONS: ${{ matrix.asan_opts }}
+ CC: ${{ matrix.cc }}
+ CXX: ${{ matrix.cxx }}
+ CFLAGS: '${{ matrix.san_cflags }} ${{ matrix.asan_cflags }}'
+ CXXFLAGS: '${{ matrix.san_cflags }} ${{ matrix.asan_cflags }}'
+
+ steps:
+ - uses: actions/checkout@v6
+ - name: Build and test
+ run: |
+ cmake \
+ -DBUILD_SHARED_LIBS=${{ matrix.cmake_shared }} \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -S . -B build
+ cmake --build build
+ ${{ matrix.test_env }} ctest --test-dir build --output-on-failure
+
+ windows:
+
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ build_type: [shared, static]
+ include:
+ - build_type: 'shared'
+ cmake_shared: 'YES'
+ - build_type: 'static'
+ cmake_shared: 'NO'
+
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ilammy/msvc-dev-cmd@v1
+ - name: Build and test
+ run: |
+ cmake ^
+ -DBUILD_SHARED_LIBS=${{ matrix.cmake_shared }} ^
+ -DCMAKE_BUILD_TYPE=Debug ^
+ -S . -B build
+ cmake --build build
+ ctest --test-dir build -C Debug --output-on-failure
+ shell: cmd
+ - name: Upload artifact
+ if: ${{ matrix.build_type == 'static' }}
+ uses: actions/upload-artifact@v7
+ with:
+ name: cmark windows ${{ matrix.build_type }}
+ path: build/src/Debug/cmark.exe
+ if-no-files-found: error
diff --git a/cmark/.github/workflows/fuzz.yml b/cmark/.github/workflows/fuzz.yml
new file mode 100644
index 0000000000..bbe45ee288
--- /dev/null
+++ b/cmark/.github/workflows/fuzz.yml
@@ -0,0 +1,23 @@
+name: CIFuzz
+on: [pull_request]
+jobs:
+ Fuzzing:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Build Fuzzers
+ uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
+ with:
+ oss-fuzz-project-name: 'cmark'
+ dry-run: false
+ - name: Run Fuzzers
+ uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
+ with:
+ oss-fuzz-project-name: 'cmark'
+ fuzz-seconds: 600
+ dry-run: false
+ - name: Upload Crash
+ uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: artifacts
+ path: ./out/artifacts