Split POSIX UDS Go transport implementation #40
This file contains hidden or 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: Runtime Safety | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - CMakeLists.txt | |
| - src/** | |
| - tests/** | |
| - .github/workflows/runtime-safety.yml | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - CMakeLists.txt | |
| - src/** | |
| - tests/** | |
| - .github/workflows/runtime-safety.yml | |
| schedule: | |
| - cron: "43 04 * * 2" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| asan-ubsan: | |
| name: ASAN/UBSAN | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Run ASAN/UBSAN validation | |
| run: bash tests/run-sanitizer-asan.sh | |
| tsan: | |
| name: TSAN | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Run TSAN validation | |
| run: bash tests/run-sanitizer-tsan.sh | |
| valgrind: | |
| name: Valgrind | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Install Valgrind | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends valgrind | |
| - name: Run Valgrind validation | |
| run: bash tests/run-valgrind.sh | |
| go-race: | |
| name: Go Race Detector | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Go | |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: src/go/go.mod | |
| cache: false | |
| - name: Run Go race detector | |
| run: bash tests/run-go-race.sh | |
| windows-msys: | |
| name: Windows MSYS2 Runtime | |
| runs-on: windows-latest | |
| timeout-minutes: 45 | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Go | |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: src/go/go.mod | |
| cache: false | |
| - name: Set up MSYS2 | |
| uses: msys2/setup-msys2@e9898307ac31d1a803454791be09ab9973336e1c # v2 | |
| with: | |
| msystem: MSYS | |
| update: true | |
| path-type: inherit | |
| install: >- | |
| base-devel | |
| gcc | |
| cmake | |
| ninja | |
| git | |
| - name: Build Windows runtime targets | |
| run: | | |
| set -euo pipefail | |
| windows_cargo_home="${CARGO_HOME:-}" | |
| if [[ -z "$windows_cargo_home" && -n "${USERPROFILE:-}" ]]; then | |
| windows_cargo_home="$(cygpath -u "$USERPROFILE")/.cargo" | |
| fi | |
| windows_cargo_home="${windows_cargo_home:-$HOME/.cargo}" | |
| export PATH="$windows_cargo_home/bin:$PATH" | |
| cmake -S . -B build-windows -G Ninja \ | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |
| -DCMAKE_C_COMPILER=/usr/bin/gcc \ | |
| -DCMAKE_CXX_COMPILER=/usr/bin/g++ | |
| cmake --build build-windows \ | |
| --parallel "$(getconf _NPROCESSORS_ONLN 2>/dev/null || echo 4)" \ | |
| --target \ | |
| test_named_pipe \ | |
| test_win_shm \ | |
| test_win_service \ | |
| test_win_service_payload_limits \ | |
| test_win_service_extra \ | |
| test_win_stress \ | |
| interop_named_pipe_c \ | |
| interop_named_pipe_rs \ | |
| interop_named_pipe_go \ | |
| interop_win_shm_c \ | |
| interop_win_shm_rs \ | |
| interop_win_shm_go \ | |
| interop_service_win_c \ | |
| interop_service_win_rs \ | |
| interop_service_win_go \ | |
| interop_cache_win_c \ | |
| interop_cache_win_rs \ | |
| interop_cache_win_go | |
| - name: Run Windows runtime tests | |
| run: | | |
| set -euo pipefail | |
| ctest --test-dir build-windows --output-on-failure -j1 -R "^(test_named_pipe|test_win_shm|test_win_service|test_win_service_payload_limits|test_win_service_extra|test_named_pipe_interop|test_win_shm_interop|test_service_win_interop|test_service_win_shm_interop|test_cache_win_interop|test_cache_win_shm_interop|test_win_stress)$" |