|
|
|
# Copyright (C) The c-ares project and its contributors
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
name: Solaris
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
pull_request:
|
|
|
|
|
|
|
|
concurrency:
|
|
|
|
group: ${{ github.ref }}-solaris
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
test:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
name: "Solaris Build and Test"
|
|
|
|
env:
|
|
|
|
DIST: SOLARIS
|
|
|
|
BUILD_TYPE: "cmake"
|
|
|
|
CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON"
|
|
|
|
CMAKE_TEST_FLAGS: "-DCMAKE_PREFIX_PATH=/usr/local/ -DCARES_BUILD_TESTS=ON -DCMAKE_CXX_FLAGS=-DGTEST_HAS_PTHREAD=0"
|
|
|
|
TEST_FILTER: "--gtest_filter=-*Live*"
|
|
|
|
# Due to the ancient GDB version in the repo right now, we can't run it through GDB
|
|
|
|
TEST_DEBUGGER: "none"
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Solaris Build and Test
|
|
|
|
id: solaris
|
|
|
|
uses: vmactions/solaris-vm@v1
|
|
|
|
with:
|
|
|
|
envs: 'DIST BUILD_TYPE CMAKE_FLAGS CMAKE_TEST_FLAGS TEST_FILTER CXXFLAGS TEST_DEBUGGER'
|
|
|
|
usesh: true
|
|
|
|
# package list: http://pkg.oracle.com/solaris/release/en/catalog.shtml
|
|
|
|
prepare: |
|
|
|
|
pkg install -v --no-refresh cmake gcc pkg-config gnu-make git gdb
|
|
|
|
# We have to jump through a lot of hoops with google test.
|
|
|
|
# - We need to max out at v1.13.x because this solaris VM is old and
|
|
|
|
# only has cmake 3.9
|
|
|
|
# - We have to compile google test ourselves because it isn't available.
|
|
|
|
# - We have to forcibly compile google test without threading because
|
|
|
|
# solaris throws an exception for some unknown reason.
|
|
|
|
# - The forcible threading disablement doesn't appear to propagate to
|
|
|
|
# proper cflags with compiling c-ares tests so we need to set a
|
|
|
|
# CXX flag to let google test know it was compiled without threading.
|
|
|
|
run: |
|
|
|
|
git clone --depth=1 -b v1.13.x https://github.com/google/googletest googletest
|
|
|
|
cd googletest
|
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_GMOCK=ON -DINSTALL_GTEST=ON -Dgtest_disable_pthreads=ON -DCMAKE_VERBOSE_MAKEFILE=ON .
|
|
|
|
gmake
|
|
|
|
gmake install
|
|
|
|
cd ..
|
|
|
|
./ci/build.sh
|
|
|
|
./ci/test.sh
|