# Copyright (C) The c-ares project and its contributors # SPDX-License-Identifier: MIT name: Ubuntu (latest) on: push: pull_request: concurrency: group: ${{ github.ref }}-ubuntu-latest cancel-in-progress: true env: TEST_FILTER: "--gtest_filter=-*LiveSearchTXT*:*LiveSearchANY*" CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -G Ninja" MAKE: make jobs: build: runs-on: ubuntu-latest name: "Ubuntu (latest)" steps: - name: Install packages uses: awalsh128/cache-apt-pkgs-action@latest with: packages: cmake ninja-build autoconf automake libtool g++ libgmock-dev pkg-config clang clang-tools lldb gdb valgrind version: 1.0 - name: Checkout c-ares uses: actions/checkout@v4 - name: "Make sure TCP FastOpen is enabled" run: | sudo sysctl -w net.ipv4.tcp_fastopen=3 - name: "CMake: build and test c-ares" env: BUILD_TYPE: CMAKE CMAKE_TEST_FLAGS: "-DCARES_BUILD_CONTAINER_TESTS=ON" TEST_DEBUGGER: gdb run: | ./ci/build.sh ./ci/test.sh - name: "Autotools: build and test c-ares" env: BUILD_TYPE: autotools TEST_DEBUGGER: gdb run: | ./ci/build.sh ./ci/test.sh ./ci/distcheck.sh - name: "CMake: (no threads) build and test c-ares" env: BUILD_TYPE: CMAKE CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -DCARES_THREADS=OFF -G Ninja" CMAKE_TEST_FLAGS: "-DCARES_BUILD_CONTAINER_TESTS=ON" TEST_DEBUGGER: gdb run: | ./ci/build.sh ./ci/test.sh - name: "CMake: (hide symbols) build and test c-ares" env: BUILD_TYPE: CMAKE CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=OFF -DCARES_SYMBOL_HIDING=ON -G Ninja" CMAKE_TEST_FLAGS: "-DCARES_BUILD_CONTAINER_TESTS=ON" TEST_DEBUGGER: gdb run: | ./ci/build.sh ./ci/test.sh - name: "CMake: UBSAN: build and test c-ares" env: BUILD_TYPE: "ubsan" CC: "clang" CXX: "clang++" CMAKE_TEST_FLAGS: "-DCARES_BUILD_CONTAINER_TESTS=ON" CFLAGS: "-fsanitize=undefined -fno-sanitize-recover" CXXFLAGS: "-fsanitize=undefined -fno-sanitize-recover" LDFLAGS: "-fsanitize=undefined" TEST_DEBUGGER: "none" run: | ./ci/build.sh ./ci/test.sh - name: "CMake: ASAN: build and test c-ares" env: BUILD_TYPE: "asan" CC: "clang" CXX: "clang++" CMAKE_TEST_FLAGS: "-DCARES_BUILD_CONTAINER_TESTS=ON" CFLAGS: "-fsanitize=address" CXXFLAGS: "-fsanitize=address" LDFLAGS: "-fsanitize=address" TEST_DEBUGGER: "none" run: | ./ci/build.sh ./ci/test.sh - name: "CMake: Static Analyzer: build c-ares" env: BUILD_TYPE: "analyze" CC: "clang" CXX: "clang++" SCAN_WRAP: "scan-build -v --status-bugs" CMAKE_TEST_FLAGS: "-DCARES_BUILD_TESTS=OFF" TEST_DEBUGGER: "lldb" run: | ./ci/build.sh ./ci/test.sh - name: "Valgrind: build and test c-ares (no TCP FastOpen)" env: BUILD_TYPE: "valgrind" TEST_WRAP: "valgrind --leak-check=full" TEST_FILTER: "--gtest_filter=-*Container*:*LiveSearchANY*:*LiveSearchTXT*" CMAKE_TEST_FLAGS: "-DCARES_BUILD_TESTS=ON" TEST_DEBUGGER: none run: | sudo sysctl -w net.ipv4.tcp_fastopen=0 ./ci/build.sh ./ci/test.sh - name: "CMake: No TCP FastOpen" env: BUILD_TYPE: CMAKE CMAKE_TEST_FLAGS: "-DCARES_BUILD_CONTAINER_TESTS=ON" TEST_DEBUGGER: gdb run: | sudo sysctl -w net.ipv4.tcp_fastopen=0 ./ci/build.sh ./ci/test.sh