diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..58b7b4e2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,66 @@ +name: build + +on: push + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-20.04, macos-10.15] + compiler: [gcc, clang] + + steps: + - uses: actions/checkout@v2 + - name: Linux setup + if: runner.os == 'Linux' + run: | + sudo apt-get install \ + g++-8 \ + autoconf \ + automake \ + autotools-dev \ + autopoint \ + libtool \ + pkg-config \ + libssl-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 + if: matrix.compiler == 'clang' + run: | + echo 'CC=clang' >> $GITHUB_ENV + echo 'CXX=clang++' >> $GITHUB_ENV + - name: Setup gcc + if: runner.os == 'Linux' && matrix.compiler == 'gcc' + run: | + echo 'CC=gcc-8' >> $GITHUB_ENV + echo 'CXX=g++-8' >> $GITHUB_ENV + - name: Libtool + run: | + autoreconf -i + - name: Configure autotools (Linux) + if: runner.os == 'Linux' + run: | + ./configure \ + CPPFLAGS="-fsanitize=address" LDFLAGS="-fsanitize=address" + - name: Configure autotools (macOS) + if: runner.os == 'macOS' + run: | + ./configure \ + --without-openssl --without-gnutls --with-appletls \ + --disable-nls \ + CPPFLAGS="-fsanitize=address" LDFLAGS="-fsanitize=address" + - name: Build aria2 + run: | + make + make check