mirror of
https://github.com/aria2/aria2.git
synced 2025-02-26 08:22:11 +00:00
103 lines
3.0 KiB
YAML
103 lines
3.0 KiB
YAML
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 update
|
|
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
|