Merge branch 'aria2:master' into master #202
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: build | |
on: [push, pull_request] | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, macos-11] | |
compiler: [gcc, clang] | |
crypto: [openssl, gnutls] | |
bittorrent: [with-bt, without-bt] | |
exclude: | |
- os: macos-11 | |
crypto: gnutls | |
- crypto: openssl | |
bittorrent: without-bt | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Linux setup | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get install \ | |
g++-12 \ | |
clang-15 \ | |
autoconf \ | |
automake \ | |
autotools-dev \ | |
autopoint \ | |
libtool \ | |
pkg-config \ | |
libssl-dev \ | |
libgnutls28-dev \ | |
libc-ares-dev \ | |
zlib1g-dev \ | |
libsqlite3-dev \ | |
libssh2-1-dev \ | |
libcppunit-dev | |
- name: MacOS setup | |
if: runner.os == 'macOS' | |
run: | | |
brew install cppunit gettext openssl libssh2 c-ares sqlite3 \ | |
autoconf automake pkg-config libtool | |
- name: Setup clang (Linux) | |
if: runner.os == 'Linux' && matrix.compiler == 'clang' | |
run: | | |
echo 'CC=clang-15' >> $GITHUB_ENV | |
echo 'CXX=clang++-15' >> $GITHUB_ENV | |
- name: Setup clang (MacOS) | |
if: runner.os == 'macOS' && matrix.compiler == 'clang' | |
run: | | |
echo 'CC=clang' >> $GITHUB_ENV | |
echo 'CXX=clang++' >> $GITHUB_ENV | |
- name: Setup gcc (Linux) | |
if: runner.os == 'Linux' && matrix.compiler == 'gcc' | |
run: | | |
echo 'CC=gcc-12' >> $GITHUB_ENV | |
echo 'CXX=g++-12' >> $GITHUB_ENV | |
- name: Setup gcc (MacOS) | |
if: runner.os == 'macOS' && matrix.compiler == 'gcc' | |
run: | | |
echo 'CC=gcc' >> $GITHUB_ENV | |
echo 'CXX=g++' >> $GITHUB_ENV | |
- name: Libtool | |
run: | | |
autoreconf -i | |
- name: Setup compiler flags | |
run: | | |
asanflags="-fsanitize=address,undefined -fno-sanitize-recover=undefined" | |
CPPFLAGS="$asanflags -g3" | |
LDFLAGS="$asanflags" | |
echo 'CPPFLAGS='"$CPPFLAGS" >> $GITHUB_ENV | |
echo 'LDFLAGS='"$LDFLAGS" >> $GITHUB_ENV | |
- name: Disable BitTorrent | |
if: matrix.bittorrent == 'without-bt' | |
run: | | |
FEATURE_FLAGS="$FEATURE_FLAGS --disable-bittorrent" | |
echo 'FEATURE_FLAGS='"$FEATURE_FLAGS" >> $GITHUB_ENV | |
- name: Configure autotools (Linux, gnutls) | |
if: runner.os == 'Linux' && matrix.crypto == 'gnutls' | |
run: | | |
./configure --with-gnutls --without-openssl $FEATURE_FLAGS | |
- name: Configure autotools (Linux, openssl) | |
if: runner.os == 'Linux' && matrix.crypto == 'openssl' | |
run: | | |
./configure --without-gnutls --with-openssl $FEATURE_FLAGS | |
- name: Configure autotools (macOS) | |
if: runner.os == 'macOS' | |
run: | | |
./configure \ | |
--without-openssl --without-gnutls --with-appletls \ | |
--disable-nls | |
- name: Build aria2 | |
run: | | |
make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)" check |