This commit is contained in:
bing
2026-04-02 23:18:28 +08:00
commit 6198e1b53c
112 changed files with 20893 additions and 0 deletions

76
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: CI
on:
# Run the jobs on either push or a pull_request, but not both.
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build-linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- compiler: gcc
config: cmake
- compiler: clang
config: cmake
- compiler: clang
config: asan
- compiler: clang
config: tsan
- compiler: clang
config: format
- compiler: clang
config: scan-build
- compiler: clang
config: framing
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Prerequisites
shell: bash
run: |
sudo apt update
sudo apt install -y ninja-build libpopt-dev
- name: Configure Build & Test
shell: bash
env:
CC: ${{ matrix.compiler }}
run: ./travis.sh ${{ matrix.config }}
build-macox:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Prerequisites
shell: bash
run: brew install ninja popt
- name: Configure Build & Test
shell: bash
run: ./travis.sh macos
build-win32:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Configure Build & Test
shell: bash
run: |
cmake -E make_directory build/
cmake -S . -B build/ -DBUILD_EXAMPLES=ON -DCMAKE_C_FLAGS=" /W4"
cmake --build build/ --config Debug --target INSTALL
ctest -V ./build/

32
.github/workflows/cifuzz.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: CIFuzz
on: [pull_request]
jobs:
Fuzzing:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sanitizer: [address, undefined, memory]
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'rabbitmq-c'
dry-run: false
language: c
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'rabbitmq-c'
dry-run: false
language: c
fuzz-seconds: 300
sanitizer: ${{ matrix.sanitizer }}
- name: Upload Crash
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: ${{ matrix.sanitizer }}-artifacts
path: ./out/artifacts

50
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '18 10 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Install Prerequisites
shell: bash
run: sudo apt install -y ninja-build libpopt-dev
- name: Build
shell: bash
run: |
mkdir $PWD/build
cmake -S . -B build -GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_EXAMPLES=ON \
-DBUILD_TOOLS=ON
cmake --build build
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3