Explorar o código

Add GitHub Actions workflow build

Tatsuhiro Tsujikawa %!s(int64=4) %!d(string=hai) anos
pai
achega
faa6955c8d
Modificáronse 1 ficheiros con 66 adicións e 0 borrados
  1. 66 0
      .github/workflows/build.yml

+ 66 - 0
.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