Fixing pkgconfig link and unlink #497
This file contains 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: CI | |
on: [push, pull_request] | |
jobs: | |
build-notls: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev | |
- name: Build | |
run: autoreconf -ivf && ./configure --disable-tls && make -j | |
build-ubuntu: | |
strategy: | |
matrix: | |
platform: [ubuntu-latest, ubuntu-20.04] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev libssl-dev | |
- name: Build | |
run: autoreconf -ivf && ./configure --enable-code-coverage && make -j | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
architecture: x64 | |
- name: Install Python dependencies | |
run: pip install -r ./tests/test_requirements.txt | |
- name: Install Redis | |
run: | | |
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg | |
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list | |
sudo apt-get -qq update | |
sudo apt-get install redis | |
sudo service redis-server stop | |
- name: Increase connection limit | |
run: | | |
sudo sysctl -w net.ipv4.tcp_fin_timeout=10 | |
sudo sysctl -w net.ipv4.tcp_tw_reuse=1 | |
ulimit -n 40960 | |
- name: Generate TLS test certificates | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
./tests/gen-test-certs.sh | |
- name: Test OSS TCP | |
timeout-minutes: 10 | |
run: | | |
./tests/run_tests.sh | |
- name: Test OSS TCP TLS | |
if: matrix.platform == 'ubuntu-latest' | |
timeout-minutes: 10 | |
run: | | |
TLS=1 ./tests/run_tests.sh | |
- name: Test OSS TCP TLS v1.2 | |
if: matrix.platform == 'ubuntu-latest' | |
timeout-minutes: 10 | |
run: | | |
TLS_PROTOCOLS='TLSv1.2' VERBOSE=1 TLS=1 ./tests/run_tests.sh | |
- name: Test OSS TCP TLS v1.3 | |
if: matrix.platform == 'ubuntu-latest' | |
timeout-minutes: 10 | |
run: | | |
TLS_PROTOCOLS='TLSv1.3' VERBOSE=1 TLS=1 ./tests/run_tests.sh | |
- name: Test OSS-CLUSTER TCP | |
timeout-minutes: 10 | |
run: | | |
OSS_STANDALONE=0 OSS_CLUSTER=1 VERBOSE=1 \ | |
./tests/run_tests.sh | |
- name: Test OSS-CLUSTER TCP TLS | |
timeout-minutes: 10 | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
OSS_STANDALONE=0 OSS_CLUSTER=1 TLS=1 VERBOSE=1 \ | |
./tests/run_tests.sh | |
- name: Capture code coverage | |
timeout-minutes: 6 | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
make code-coverage-capture | |
bash <(curl -s https://codecov.io/bash) -f memtier_benchmark-*-coverage.info || echo "Codecov did not collect coverage reports" | |
build-macos: | |
strategy: | |
matrix: | |
openssl: ["1.1", "3.0"] | |
runs-on: macos-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: | | |
brew unlink [email protected] || true | |
brew unlink pkg-config || true | |
brew install autoconf automake libtool libevent pkg-config openssl@${{ matrix.openssl }} | |
# Handle OpenSSL 3.0 keg-only setup | |
if [ "${{ matrix.openssl }}" == "3.0" ]; then | |
echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> $HOME/.bash_profile | |
echo 'export LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib"' >> $HOME/.bash_profile | |
echo 'export CPPFLAGS="-I/opt/homebrew/opt/[email protected]/include"' >> $HOME/.bash_profile | |
echo 'export PKG_CONFIG_PATH="/opt/homebrew/opt/[email protected]/lib/pkgconfig"' >> $HOME/.bash_profile | |
source $HOME/.bash_profile | |
/opt/homebrew/opt/[email protected]/bin/c_rehash | |
fi | |
# Handle missing pkg-config or pkgconf | |
if ! brew list --versions pkgconf > /dev/null; then | |
brew install pkgconf | |
fi | |
brew unlink pkgconf && brew link pkgconf | |
- name: Build | |
run: autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix openssl@${{ matrix.openssl }}`/lib/pkgconfig ./configure && make | |
build-macos-openssl-1-0-2: | |
strategy: | |
matrix: | |
platform: [macos-latest] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: | | |
brew unlink [email protected] || true | |
brew unlink pkg-config || true | |
brew install autoconf automake libtool libevent pkg-config | |
if ! brew list --versions pkgconf > /dev/null; then | |
brew install pkgconf | |
fi | |
brew link --overwrite pkgconf | |
- name: Install openssl v1.0.2 | |
run: brew install rbenv/tap/[email protected] | |
- name: Build | |
run: autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix [email protected]`/lib/pkgconfig ./configure && make |