diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:41:54 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:41:54 +0300 |
| commit | 3d2121f5d6555744ce5aa502088fc2b34dc26d38 (patch) | |
| tree | 53f42c08746171878b57f5b6ffe1eb841da9d45d /cmark/.github/workflows | |
| parent | 6bf7c5ce92ff6237c0b17c332873805018812b40 (diff) | |
| parent | 64efa3b3b3d35f2ffb604b57a8a9c89047cb420b (diff) | |
| download | Project-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.yml | 145 | ||||
| -rw-r--r-- | cmark/.github/workflows/fuzz.yml | 23 |
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 |
